Нужен ли мосту между двумя интерфейсами TAP IP-адрес?

Нужен ли мосту между двумя интерфейсами TAP IP-адрес?

Я пытаюсь настроить openvpn на машине так, чтобы у меня было 2 разных интерфейса tap (tap0 и tap1), а затем мост, соединяющий эти интерфейсы. Openvpn настроен с конфигурацией сервер-мост для каждого интерфейса TAP. Идея в том, что клиент на tap0 сможет общаться с клиентом на tap1 и наоборот.

В мосту нет физической сетевой карты, а интерфейс моста настроен без IP/сетевой маски/трансляции. Просто вызван одним "ifconfig brX up"

Я могу выполнить ping между двумя клиентами, когда они оба подключены к серверу OpenVPN, каждый к своему собственному интерфейсу TAP, упомянутому выше. Однако я не вижу трафика при попытке выполнить tcpdump интерфейса моста.

Я немного запутался в некоторых вещах:

  1. Нужно ли мне вообще настраивать IP на интерфейсе моста? Я не совсем понимаю, зачем это нужно, так как все, что он делает, это заставляет виртуальные интерфейсы общаться друг с другом

  2. Является ли тот факт, что интерфейсу моста не назначен IP-адрес/маска сети/трансляция причиной того, что я не могу увидеть трафик ping на интерфейсе моста при выполнении tcpdumping этого интерфейса?

  3. Если ответ на номер 2 - Да, я предполагаю, что невозможно использовать iptables для блокировки/разрешения трафика на этом интерфейсе, верно? Если так, есть ли другой способ сделать то, что можно было бы сделать с iptables на таком интерфейсе?

решение1

Нужно ли мне вообще настраивать IP на интерфейсе моста? Я не совсем понимаю, зачем это нужно, так как все, что он делает, это заставляет виртуальные интерфейсы общаться друг с другом

Нет, чистый мост работает только на уровне Ethernet – он даже не смотрит на заголовок IP. Когда вы назначаете IP-адрес br0, вы на самом деле назначаете его хостовой ОС, которая подключена к этому мосту.

Однако вы ничего не сказали о фактическом добавлении tapинтерфейсов какпорты моста. Вам необходимо явно указать мосту, какими портами он управляет:

  • brctl addif br0 tap0

  • ip link set tap0 master br0

Является ли тот факт, что интерфейсу моста не назначен IP-адрес/маска сети/трансляция причиной того, что я не могу увидеть трафик ping на интерфейсе моста при выполнении tcpdumping этого интерфейса?

Нет.

Но возможно, что мост все еще находится в режиме «обучения»; по умолчанию он все еще равен 30 секундам – проверьте с помощью brctl showstp br0. Возможно, что порты не были добавлены в мост (см. выше). Возможно, что сами интерфейсы портов все еще отключены.

(И еще, дорогие боги,почему люди думают, что им нужно устанавливать широковещательные адреса.На самом деле, ОС уже может вычислить его из IP | ~сетевой маски. Практически никогда не бывает полезно настраивать широковещательный адрес вручную, просто становится проще случайно получить егонеправильный.)

Если ответ на номер 2 - Да, я предполагаю, что невозможно использовать iptables для блокировки/разрешения трафика на этом интерфейсе, верно? Если так, есть ли другой способ сделать то, что можно было бы сделать с iptables на таком интерфейсе?

Да, вам необходимо ebtablesфильтровать трафик; он не проходит через IP-брандмауэр.

(Хотя, я полагаю, это не всегда так. Например, брандмауэр Untangle, похоже, работает в режиме кросс-бридингового маршрутизатора/моста, что несколько сбивает с толку.)

Связанный контент