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

Как я могу назначить IP для интерфейса моста

Из того, что я читал, мост происходит ниже уровня IP, но как я могу назначить IP интерфейсу моста?

brctl addbr br0
ifconfig br0 IP promisc up

Что делает ОС? похоже, что он предоставляет мне сетевой стек IP поверх br0.

Могут ли правила iptable работать поверх этого интерфейса?

Спасибо. PS: не интересует ebtables. Меня больше интересует концепция того, что происходит под капотом, когда я назначаю IP интерфейсу моста.

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

В целом процесс выглядит следующим образом:

  1. brctl addbr br0
  2. brctl addif br0 eth0
  3. brctl addif br0 eth1

Теперь вы, как обычно, используете другие команды для добавления интерфейсов. Автоконфигурация каждого дистрибутива работает немного по-разному, например, в RHEL6.x

cat /etc/sysconfig/network-scripts/ifcfg-eth0
...
IPADDR="0.0.0.0"
BRIDGE="br0"
...

cat /etc/sysconfig/network-scripts/ifcfg-br0
...
DEVICE="br0"
TYPE="Bridge"
IPADDR="10.0.0.1"

Вот хорошая статья с более подробной информацией, для CentOS

Вот официальная документация ядра для brctl.

iptables
Теперь, когда основы разложены, мост в Linux действительно очень важен. Мостовое соединение происходит на более низком уровне в сетевом стеке, и, таким образом, с этими кадрами уже что-то делается, еще до того, как они пересекут iptables. Это тема wiiiiide, поэтому вот хорошая страница с множеством диаграмм.

http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html

Да, вы можете использовать iptables поверх моста, однако ebtables - более правильный способ сделать это.