通过 iptables 配置 NAT

通过 iptables 配置 NAT

我想改变这一点:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
178.212.120.5   192.168.1.254   255.255.255.255 UGH   0      0        0 eth2.2
208.67.222.222  192.168.1.254   255.255.255.255 UGH   0      0        0 eth2.2
192.168.1.0     *               255.255.255.0   U     0      0        0 eth2.2
192.168.10.0    *               255.255.255.0   U     0      0        0 br0
239.0.0.0       *               255.0.0.0       U     0      0        0 br0
default         192.168.1.254   0.0.0.0         UG    0      0        0 eth2.2

变成这样:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
178.212.120.5   192.168.1.254   255.255.255.255 UGH   0      0        0 ra0
208.67.222.222  192.168.1.254   255.255.255.255 UGH   0      0        0 ra0
192.168.1.0     *               255.255.255.0   U     0      0        0 ra0
192.168.10.0    *               255.255.255.0   U     0      0        0 br0
239.0.0.0       *               255.0.0.0       U     0      0        0 br0
default         192.168.1.254   0.0.0.0         UG    0      0        0 ra0

并按以下方式配置 NAT:

  1. 公共 NAT 接口带有ra0IP192.168.1.3
  2. NAT 内部子网已192.168.10.0/24开启br0

我遇到的问题是我知道如何使用 Linuxrouteifconfig命令,但我对 一无所知iptables

答案1

一个“粗略而现成的”答案是使用 route 和 ifconfig 来设置 ra 接口和路由,然后发出 iptables 命令 -

/sbin/iptables -t nat -I POSTROUTING -o ra0 -j MASQUERADE

这将伪装(所有)从 ra0 发出的流量,但不伪装从 br0 发出的流量。但我注意到,ra0 的“NAT 接口”实际上不是真实世界的 IP 地址,因此要么您正在进行双重 nat,要么该 IP 地址不正确。

相关内容