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

Iptables - мостовая и прямая цепь

Я установил мост Ethernet br0 который содержит два интерфейса eth0 и tap0

brctl addbr br0
brctl addif eth0
brctl addif tap0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 

Мой по умолчанию FORWARD политика сети DROP

iptables -P FORWARD DROP

Когда я не добавляю следующее правило, трафик не проходит через мост.

iptables -A FORWARD -p all -i br0 -j ACCEPT

Насколько я понимаю iptables отвечает только за уровень IP.

ebtables должен отвечать за фильтрацию трафика на мосту Ethernet.

Итак, почему мне нужно добавить правило ACCEPT в цепочку FORWARD iptable?

Из-за кода br-nf, который доступен как патч для Linux 2.4 и используется в Linux 2.6:

Код br-nf заставляет IP-фреймы / пакеты проходить через цепочки iptables. Ebtables фильтрует на уровне Ethernet, а iptables фильтрует только IP-пакеты.

Поскольку трафик, с которым вы работаете, - это ip, iptables правила все еще применяются из-за бр-нф передача мостовых пакетов в iptables.

это отличный ресурс, чтобы прочитать о взаимодействии и вот этот подробно описывает функциональность бр-нф код, в том числе, как отключить все или некоторые функции (т.е. не передавать трафик моста в iptables).

Вы можете отключить это поведение (разрешив iptables обрабатывать мостовые пакеты), набрав:

echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables

(видеть http://ebtables.sourceforge.net/documentation/bridge-nf.html)

Если у вас нет необходимости использовать iptables с мостом в вашей системе, вы можете навсегда отключить его, используя одно из следующих действий:

  1. Добавление правила iptables:

iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT

  1. Или отредактируйте /etc/sysctl.conf:

net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0

Цепочки ebtables не будут видеть фреймы, поступающие через порт моста без пересылки. Можете взглянуть на это: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html