iptables 规则中的 NAT 表和 SNAT

iptables 规则中的 NAT 表和 SNAT

我是 iptables 的新手,希望能得到一些帮助来理解路由器 nat 表中的特定规则。路由器的外部接口是 vlan2 (111.111.111.111),内部接口是 br0 (192.168.1.1)。这是 nat 部分,每条规则前面都有行号。

    (1) *nat
    (2) -A PREROUTING -d 111.111.111.111 -j WANPREROUTING
    (3) -A PREROUTING -i vlan2 -d 192.168.1.1/255.255.255.0 -j DROP
    (4) -A WANPREROUTING -p tcp  --dport 22 -j DNAT --to-destination 192.168.1.12:22
    (5) -A POSTROUTING  -o vlan2 -j MASQUERADE
    (6) -A POSTROUTING -o br0 -s 192.168.1.1/255.255.255.0 -d 192.168.1.1/255.255.255.0 -j SNAT --to-source 192.168.1.1
    (7) COMMIT
  1. 有问题的规则位于第 6 行。我很难理解为什么需要它。看起来它正在将通过 br0 接口路由的每个数据包的源地址重写为内部路由器的地址 192.168.1.1,但我不确定。

  2. 这部分可以重写为

    (1) *nat
    (2) -A PREROUTING -i vlan2 -d 192.168.1.1/255.255.255.0 -j DROP
    (3) -A PREROUTING -i vlan2 -p tcp  --dport 22 -j DNAT --to-destination 192.168.1.12:22
    (4) -A POSTROUTING  -o vlan2 -j MASQUERADE
    (5) -A POSTROUTING -o br0 -s 192.168.1.1/255.255.255.0 -d 192.168.1.1/255.255.255.0 -j SNAT --to-source 192.168.1.1
    (6) COMMIT
    

通过删除 WANPREROUTING 链?

谢谢!

相关内容