Jump и goto nftables: одинаковая цель не означает одинаковое продолжение

Запросить

Фотография конкретного исполнения не приложена.

Разделение большого firewall на обычные цепочки помогает организации правил, но меняет поток управления. Jump и goto передают обработку к указанной цепочке по-разному. Их нельзя считать просто двумя вариантами записи перехода без последствий для оставшихся правил вызывающей стороны.

По справочнику jump сохраняет позицию возврата. После окончания вызванной цепочки либо return выполнение продолжается после этого вызова. Goto позицию не сохраняет. Дальнейший return использует уже имеющийся стек, а при его отсутствии завершает текущий базовый путь с политикой base chain.

Обычная цепочка не становится самостоятельным входом из сетевого стека только потому, что содержит правила. Для участия нужен предусмотренный вызов из подключённой цепочки. Вызывать таким способом можно обычные цепочки той же таблицы; базовая цепочка имеет другое назначение.

В приёмке рисуют путь для разрешённого пакета, запрещённого и случая без совпадения. Особенно проверяют вложенные сочетания jump и goto, где фактический возврат легко принять за продолжение не того уровня. Успешное добавление правил подтверждает их допустимость для системы, но не доказывает, что после завершения вложенной ветви выполняется задуманный участок политики.

Основание — Official nft(8) HTML snapshot; exact release1.1.7 archive not obtained, разделы OVERALL EVALUATION; jump/goto/return; regular chains. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — сохранённый HTML-справочник nft(8); это снимок изменяемой страницы, а не руководство из архива 1.1.7. Фактические версии nft, ядра и рабочие правила не проверялись; команды фильтрации не выполнялись.

Все разборы

Россия Казахстан
sales@radio4you.ru

Все запросы только на email