Понимание правила snat в iptables из openstack
Это не вопрос 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" означает в 3-м правиле
Спасибо
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.