Intereting Posts
ldd показывает, что библиотека существует и связана, программа не находит ее ptrace: операция не допускается при присоединении к процессу зомби перечисление файлов с шаблоном с началом и окончанием Как поймать все после префиксной фразы с SED? Как установить Windows 8 после арки? Проблема с кодировкой url в debian sources.list Неожиданное поведение отступов, когда я устанавливаю терминал в режим raw – почему это происходит? Разница между `ls -c` и` ls -t` Приоритет процесса и скорость процессора Почему загрузка высока, несмотря на то, что ни процессор, ни диск не используются Sudo su issue на ubuntu 14.04 lts: / root / zsh не может быть найден Невозможно прочитать файл / proc / pid / stack даже с соответствующими разрешениями Дата входа пользователя и время входа в систему Нет встроенного звука на Dell Optiplex SX-280 после установки Linux Mint Petra Найти первое появление каждого из этих шаблонов с помощью grep

порядок обработки правил в цепочках iptables

Разве порядок обработки правил в iptables не сверху вниз? Учитывая следующий пример;

Chain DOCKER (2 references) target prot opt source destination RETURN all -- anywhere anywhere DNAT tcp -- anywhere anywhere tcp dpt:5000 to:172.19.0.2:5000 

Второе правило (DNAT) никогда не должно обрабатываться, так как первое правило (RETURN) будет соответствовать каждому пакету, и поскольку у этого правила есть цель, которая является завершающим действием (RETURN), последующие правила будут пропущены, что приведет к перейти к следующему правилу предыдущей цепочки.

Но это работает. Я могу подключиться к хосту через порт 5000, который затем DNAT его к контейнеру 172.19.0.2:5000. Как? Насколько я понимаю, это не должно работать, поскольку правило DNAT никогда не должно вызываться, так как все пакеты будут соответствовать первому правилу.

Вот полный вывод iptables-save -c :

 # Generated by iptables-save v1.6.1 on Tue Sep 4 07:46:28 2018 *mangle :PREROUTING ACCEPT [223887:255226234] :INPUT ACCEPT [222119:254095862] :FORWARD ACCEPT [1246:1112414] :OUTPUT ACCEPT [146355:28000095] :POSTROUTING ACCEPT [149233:29175672] COMMIT # Completed on Tue Sep 4 07:46:28 2018 # Generated by iptables-save v1.6.1 on Tue Sep 4 07:46:28 2018 *nat :PREROUTING ACCEPT [98:6639] :INPUT ACCEPT [19:3259] :OUTPUT ACCEPT [1784:495831] :POSTROUTING ACCEPT [1784:495887] :DOCKER - [0:0] [3:687] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER [11:660] -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER [12:684] -A POSTROUTING -s 172.19.0.0/24 ! -o docker0 -j MASQUERADE [0:0] -A POSTROUTING -s 172.19.0.2/32 -d 172.19.0.2/32 -p tcp -m tcp --dport 5000 -j MASQUERADE [0:0] -A DOCKER -i docker0 -j RETURN [0:0] -A DOCKER ! -i docker0 -p tcp -m tcp --dport 5000 -j DNAT --to-destination 172.19.0.2:5000 [2:120] -A DOCKER ! -i docker0 -p tcp -m tcp --dport 5001 -j DNAT --to-destination 172.19.0.2:5001 COMMIT # Completed on Tue Sep 4 07:46:28 2018 # Generated by iptables-save v1.6.1 on Tue Sep 4 07:46:28 2018 *filter :INPUT ACCEPT [222119:254095862] :FORWARD DROP [0:0] :OUTPUT ACCEPT [146355:28000095] :DOCKER - [0:0] :DOCKER-ISOLATION - [0:0] :DOCKER-USER - [0:0] [1246:1112414] -A FORWARD -j DOCKER-USER [1246:1112414] -A FORWARD -j DOCKER-ISOLATION [618:1075408] -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT [0:0] -A FORWARD -o docker0 -j DOCKER [628:37006] -A FORWARD -i docker0 ! -o docker0 -j ACCEPT [0:0] -A FORWARD -i docker0 -o docker0 -j ACCEPT [0:0] -A DOCKER -d 172.19.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 5000 -j ACCEPT [1246:1112414] -A DOCKER-ISOLATION -j RETURN [1246:1112414] -A DOCKER-USER -j RETURN COMMIT # Completed on Tue Sep 4 07:46:28 2018