3

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

В мосте нет физического сетевого адаптера, а интерфейс моста настроен без ip/netmask/broadcast. Только что с одним "ifconfig brX up"

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

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

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

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

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

1 ответ1

5

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

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

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

  • brctl addif br0 tap0

  • ip link set tap0 master br0

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

Нет.

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .