stillfarmer 发表于 2014-05-05 16:46

netfilter, nf_conntrack问题

路由器配置了一条DNAT规则修改目的IP, WAN侧抓包, TCP三次握手正常完成, 目的地址, 源地址均作了替换。 但之后的HTTP链接只替换了目的地址, 没有替换源地址。 请问问题可能出在何处?

规则: iptables -t nat -p tcp-d 192.168.1.1 --dport 80 -j DNAT --to-destination 10.10.10.10:80

WAN侧 正常抓包(TCP): ip.src == 10.10.10.14(路由器WAN侧IP), ip.dest == 10.10.10.10

WAN侧 错误抓包(HTTP): ip.src == 192.168.1.18(LAN侧PCIP地址, 源地址没有替换成路由器WAN侧IP), ip.dest == 10.10.10.10

瀚海书香 发表于 2014-05-05 19:23

回复 1# stillfarmer
你的描述别人很难看懂你在说什么。。。。

先把网络拓扑图画整上来吧。
   

lokyes 发表于 2014-05-07 22:32

的确,你应该说你出你的datapath怎么样走的,从pc到路由器到server吗

zimang 发表于 2014-05-08 09:53

iptables -t nat -p tcp-d 192.168.1.1 --dport 80 -j DNAT --to-destination 10.10.10.10:80?这句话可以执行?

guanglongxishui 发表于 2014-05-20 23:08

因为你没有给出组网拓扑,我从你问题中看出你有一些理解错误的地方

1、从wan侧看,DNAT只能替换目的IP地址,不能替换源IP地址。
WAN侧 正常抓包(TCP): ip.src == 10.10.10.14(路由器WAN侧IP), ip.dest == 10.10.10.10
这是你路由器发给wan侧的报文,被你抓到了,肯定不是经过DNAT替换后的报文。

WAN侧 错误抓包(HTTP): ip.src == 192.168.1.18(LAN侧PCIP地址, 源地址没有替换成路由器WAN侧IP), ip.dest == 10.10.10.10
这个才是正常的经过DNAT后的报文。

一般网络重定向没必要替换源IP为路由IP的,要是想替换,可以使用SNAT。
页: [1]
查看完整版本: netfilter, nf_conntrack问题