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

Отсутствует переход RETURN в пользовательской цепочке iptables - что происходит?

Я совершенно не могу понять, каковы последствия отсутствия правила RETURN в конце определенных пользователем цепочек iptables. Очевидно, что ключевые слова «iptables [missing] return [jump]» действительно плохие.

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

iptables -N userchainA
iptables -A INPUT -j userchainA
iptables -N userchainB
iptables -A INPUT -j userchainB
iptables -A INPUT -j ACCEPT

iptables -A userchainA ... # anything here, that DOES NOT MATCH
#### no explicit return from userchainA!

iptables -A userchainB ... # anything here, that DOES NOT MATCH
iptables -A userchainB -j RETURN 

С учетом этих правил все работает нормально. Пакеты проходят через все цепочки и, наконец, попадают в ACCEPT from INPUT как будто (отсутствует) -j RETURN из userchainA будет сделано неявно. Так ли это?

Почему это работает? Я бы ожидал какой-то ошибки или хотя бы сообщения журнала о падении выполнения цепочки.