Назад | Перейти на главную страницу

Понимание правила 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" означает в третьем правиле

Спасибо

Первое правило использует расширение отслеживания соединений 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'ed, когда он покидает сегмент, или, другими словами, прокси-сервер, поскольку маршрут по умолчанию, скорее всего, 172.16.100.6.