Nat问题!

Nat问题!

各位高人!
  本菜鸟学习NAT时遇到一些问题,请各位指教。
  有两台计算机,第一台(A)有两张网卡――NETCARD AI(210.77.168.223),NETCARD AII
(192.168.0.1);第二台(B)有一张网卡NETCARD BI(192.168.0.2)
我运行了如下命令:  
#iptables -t nat -A PREROUTING -s 127.0.0.1 -p icmp -d 192.168.0.1 -j DNAT --to 210.77.168.1
并没有出现任何错误提示,但是看起来好象并没有什么作用。
我想实现的是当我从B ping A的时候,ping到的是210.77.168.1――当然这只是个实验而已。
我不知道我什么没有做对。 :(
  值得一提的是,我并没有编译过内核,但是我感觉内核并不是不支持iptables。因为
我的其他实验是成功了的。
比如
## 拒绝来自A的ping
#iptables -A INPUT -s 192.168.0.1 -p icmp -j DROP
## 拒绝除本机外的所有ping
#iptables -A INPUT -s ! 127.0.0.1 -p icmp -j DROP
## 禁止B ping A
#iptables -A OUTPUT -s 127.0.0.1 -d 192.168.01 -p icmp -j DROP
  这些都是成功了的……
  谁能告诉我这是为什么啊?


  我还有一些疑问。我们可以通过命令‘iptables -L’查看链的rules,我能否知道
能否查看nat表的内容呢?比如,运行
#iptables -t nat -A PREPOSTING -s 127.0.0.1 -d 192.168.0.1 -p icmp -j DNAT --to 210.77.168.1
后,我怎么知道它是否存在呢?有没有类似‘iptables -L’的命令呢?
  我已经读过iptalbes的man-page, NAT-HOWTO和Packet-Filtering-HOWTO了,但是我
不能找到我想要的答案。:(
  静候回复。THX!!!      
1.查看nat链:  //当然得选定目标啦.

  #> iptables -t nat -L
   
   2.你可以再看看netfilter的处理过程及方法.
   用iptables实现NAT
   防火墙软件Netfilter之NAT技术

   #> #iptables -t nat -A PREROUTING -s 127.0.0.1 -p icmp -d 192.168.0.1 -j DNAT --to 210.77.168.1
    你应该把 "-s" 改成 "-d",描述成所有到本机的icmp包重新路由到210.77.168.1去.      
谢谢walte的回复!
不果看起来我还是不很明白
把 "-s" 改成 "-d"后,我还是没有成功啊

我又作了这个:但是结果仍然是失败的
当我访问www.sina.com.cn的时候,仍然访问的是新浪,而不是210.77.168.1
iptables -t nat -A PREROUTING -s 127.0.0.1 -d www.sina.com.cn -p tcp -j DNAT --to 210.77.168.1
[root@franklinux frank]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       icmp --  franklinux           www.cqioc.cq.cn    to:210.77.168.3
DNAT       tcp  --  franklinux           www.cqioc.cq.cn    to:210.77.168.5
DNAT       tcp  --  franklinux           202.106.184.200    to:210.77.168.1
DNAT       tcp  --  franklinux           202.106.184.220    to:210.77.168.1
DNAT       tcp  --  franklinux           sina37-40.sina.com.cnto:210.77.168.1
DNAT       tcp  --  franklinux           sina35-210.sina.com.cnto:210.77.168.1

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)      
忘了一点:
    -s 127.0.01是没有经过prerouting的. "-d 127.0.0.1"当然就更不对了,不是要你要的事呀!
   
    改成"-d"后,当然地址也得变,如果你要网络所以的包都这样,那就不要-d和-s,如果你想这个规则用于某台机器,当然就"-s 想限制的主机ip".