了解 openstack 中 iptables 中的 snat 规则

了解 openstack 中 iptables 中的 snat 规则

这不是一个 OpenStack 问题,而是一个 iptables 问题。请考虑 NAT 表中的以下链

Chain nova-network-POSTROUTING (1 references)
pkts bytes target     prot opt in     out     source               destination         
0     0 ACCEPT     all  --  any    any     172.16.100.0/24      10.128.0.223        
0     0 ACCEPT     all  --  any    any     172.16.100.0/24      172.16.100.0/24      ! ctstate DNAT
0     0 SNAT       all  --  any    any     172.16.100.6         anywhere             ctstate DNAT to:10.128.0.161

有人能告诉我 1) 第二条规则中的“!ctstate DNAT”是什么意思,以及 2) 第三条规则中的“ctstate DNAT to:10.128.0.161”是什么意思

谢谢

答案1

第一条规则使用连接跟踪扩展 ctstate 并反转动态网络地址转换协议! - 我相信规则是说,当源来自 172.16.100.0/24 并且目的地是同一网络时,不要对源进行 NAT(因此,如果这是一个虚拟路由器,那么这将是 dhcp 提供等,也是该子网上的任何主机到主机通信) - 第二部分 172.16.100.6 到任何地方都应该动态 NAT 为 10.128.0.161。因此,如果 172.16.100.6 是您的 openstack 外部路由器,conntrack 模块将匹配规则 2 以进行内部流量,匹配规则 3 以进行其他所有流量,即 - 路由器和主机将始终首先匹配规则 2 以进行内部流量,但一台主机在离开网段时会特别将其源 NAT,或者换句话说,代理服务器,因为默认路由可能是 172.16.100.6。

相关内容