В Linux Centos7 у меня есть некоторый трафик, который направляется статическими маршрутами с одного интерфейса на другой.
Я заметил, что при активированном firewalld оба интерфейса добавляются в зону, и в этой зоне ничего не разрешено, весь трафик по-прежнему маршрутизируется без каких-либо ограничений.
Я попытался настроить ip_forward=0 : тогда трафик больше не маршрутизировался.
Затем я добавил правила FORWARD в firewalld direct.xml: трафик был маршрутизирован и отфильтрован.
Мои вопросы:
- Параметр ядра ip_forward «обходит» firewalld?
- Почему на разных форумах поясняется, что ip_forward обязателен для перенаправления трафика с одного интерфейса на другой, если использование iptable FORWARD работает с отключенной этой настройкой?
Я нашел очень мало объяснений отношений между firewalld и ядром ip_forward, и я хотел бы понять, что я здесь упускаю.
РЕДАКТИРОВАТЬ: маскарад включен в зоне firewalld
EDIT2: я провел другие тесты, и похоже, что речь идет не о настройке ip_filter, а о маскараде. Меня обманул тот факт, что «firewall-cmd --reload» заставляет ip_forward установить значение 1.
Вот как воспроизвести мой случай:
Свежая ОС Centos7. Конфигурация двух интерфейсов eth1 и eth2 с ip адресами X и Y
--> @X CENTOS @Y --> @Z -------
dst_IP = А dst_IP = А
src_IP = B dst_IP = B
отредактируйте /etc/firewalld/zones/TEST.xml, добавьте два интерфейса, активируйте masquerade.
добавьте маршрут следующим образом:
GenMask целевого шлюза
А З 255.255.255.255
Затем активируйте ip forward и деактивируйте rp_filter :
sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.eth1.rp_filter=2
sysctl net.ipv4.conf.eth2.rp_filter=2
В этой настройке пакеты передаются на @Z, но в firewalld нет правила, настроенного на их прием, и я не понимаю, почему