Dje*_*jee 10 linux nat iptables
我的目的是通过这种方式对所有端口和协议上到达 eth0 的所有 IP 地址进行 NAT(转换):192.168.55.x -> 192.168.42.x(我启用了 ip 转发,192.168.42.0/24 子网位于 eth1 上)。我可以为每对这样的一行一台主机执行此操作,例如 x=20:
iptables -t nat -A PREROUTING -i eth0 -d 192.168.55.20 -j DNAT --to 192.168.42.20
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.42.20 -j SNAT --to 192.168.55.20
Run Code Online (Sandbox Code Playgroud)
但是我找不到一种方法来翻译所有 253 个可能的主机。我试过这个:
iptables -t nat -A PREROUTING -i eth0 -d 192.168.55.0/24 -j DNAT --to 192.168.42.0-192.168.42.255
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.42.20/24 -j SNAT --to 192.168.55.0-192-168.55.255
Run Code Online (Sandbox Code Playgroud)
这会导致随机主机转换。用于负载平衡。但是如何获得简单的一对一翻译呢?
谢谢你。
A.B*_*A.B 17
来自man iptables-extensions
:
NETMAP
此目标允许您将整个地址网络静态映射到另一个地址网络。它只能在 nat 表中的规则中使用。
所以只需要一个规则:
iptables -t nat -A PREROUTING -d 192.168.55.0/24 -i eth0 -j NETMAP --to 192.168.42.0/24
Run Code Online (Sandbox Code Playgroud)
如果您还希望正确地看到最初从“42”网络开始的连接,请完成第二条规则:
iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o eth0 -j NETMAP --to 192.168.55.0/24
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7927 次 |
最近记录: |