执行ip netns exec route_br_ens192_0 iptables -nL POSTROUTING -t nat --line-numbers
输出如下:
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 SNAT all -- 0.0.0.0/0 192.168.1.15 to:192.168.1.20
这是一个iptables的POSTROUTING链的规则列表,它用于在数据包离开系统后,但在网络设备上发送到目标之前对数据包进行处理。
第一行是规则的编号(num)。这是规则在链中的位置,可以用来引用或删除规则。
target 列列出了规则的目标。在这里,目标是 SNAT,意味着这是一个源地址转换规则。
prot 指定了规则应用的协议。这里是 all,表示匹配所有协议。
source 指定了匹配的数据包的源地址。在这里是 0.0.0.0/0,表示匹配所有来源的数据包。
destination 指定了数据包的目标地址。这里是 192.168.1.15,表示目标地址是 192.168.1.15。
to: 后面是 SNAT 规则的动作。这里是 192.168.1.20,表示源地址会被替换成 192.168.1.20。
总结一下,这条规则的作用是将所有从 192.168.1.15 发出的数据包的源地址替换为 192.168.1.20。
# 查询网络空间
ip netns list
# 查询网络空间中的DNAT SNAT映射关系
ip netns exec route_br_ens192_2 iptables -nL PREROUTING -t nat --line-numbers
ip netns exec route_br_ens192_2 iptables -nL POSTROUTING -t nat --line-numbers
# 根据编号删除对应映射关系
ip netns exec {netnsName} iptables -D PREROUTING 1 -t nat
ip netns exec {netnsName} iptables -D POSTROUTING 1 -t nat
# 添加新的映射关系
ip netns exec {netnsName} iptables -t nat -A PREROUTING -d {eip} -j DNAT --to {vmIP}
ip netns exec {netnsName} iptables -t nat -A POSTROUTING -d {vmIP} -j SNAT --to {ip}
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 DNAT all -- 0.0.0.0/0 10.0.11.200 to:192.168.1.15
ip netns exec route_br_ens192_0 iptables -nL PREROUTING -t nat --line-numbers