LINUX.ORG.RU
решено ФорумAdmin

nftables проброс портов, dnat

 ,


0

1

Доброго времени суток.

Пришло время переходить на nftables, но в инете информации не очень много, так что, пришел за советом.

Есть машинка (МАШ1) с единственной сетевой «ens18». Допустим у машинки ip адрес 192.168.0.30.
Так же в сети присутствует устройство (УСТ2) с ip адресом 192.168.0.40.

необходимо сделать, что бы все входящие запросы с любых ip адресов, приходящих на любой сетевой интерфейс на машинку МАШ1 перенаправлялись на устройство УСТ2.

Раньше это делалось с помощью iptables, если мне не изменяет память, достаточны было на МАШ1 сделать правило:

iptables -t nat -A PREROUTING -j DNAT --to-destination 192.168.0.40

Но на nftables это не работает.

Преобразовал правило через iptables-translate

iptables-translate -t nat -A PREROUTING -j DNAT --to-destination 192.168.0.40
nft add rule ip nat prerouting counter dnat to 192.168.0.40
Создал таблицы, цепочки, добавил правила:
nft add table nat
nft 'add chain nat prerouting { type nat hook prerouting priority -100; }'
nft add rule ip nat prerouting counter dnat to 192.168.0.40

Ничего не работает.

Очистил правила. Попробовал по официальному мануалу пробросить хотя бы 80 порт:

nft add table nat
nft 'add chain nat prerouting { type nat hook prerouting priority -100; }'
nft 'add rule nat prerouting iif ens18 tcp dport { 80 } dnat to 192.168.0.40'
И всё равно не работает.

Кто уже изучил nftables? Можете подсказать?

Заранее спасибо всем откликнувшимся.


PS форвардинг включен:

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

★★★★★

Следующим шагом я бы посмотрел, как включать логирование для правил. Конкретнее не подскажу, сам пока только издалека смотрю на nftables :)

anonymous
()

Ошибку нашел.[br] Не был загружен модуль ядра, выполнив «modprobe nft_nat» - все заработало. Интересно, что Debian 11 сам не подгружал модуль, и служба nftables его так же не подгружает.

О том, что модуль надо отдельно подгружать, и что модуль ничто не подгружает, хотя в правилах указан nat - лично для меня не очевидно. Раньше этим не нужно было страдать. Спасибо журналу «Хакер» за подсказку.

ivanlex ★★★★★
() автор топика
Ответ на: комментарий от ivanlex

Теперь другая проблема.

На полноценном ПК или VM загрузить модуль не составит проблем. А как повторить тот же фокус в LXC контейнере в ProxMox?

ivanlex ★★★★★
() автор топика
Ответ на: комментарий от ivanlex

насколько я помню, модули ядра нужно подгружать на хосте. ABI должен быть совместимым на хосте и гостевой системе.

Bloody ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.