Автор Тема: bridge нескольких интерфейсов не работает  (Прочитано 4336 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
bridge нескольких интерфейсов не работает
« : Вторник, 13 Марта, 2018, 16:35:40 »
Есть необходимость сделать бридж средствами linux. Имею сетевые карты, установлен пакет bridge-utils.
В /etc/network/interface
~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto enp0s7
iface enp0s7 inet dhcp

auto enx000000000001
iface enx000000000001 inet manual

auto enx0050748300ab
iface enx0050748300ab inet manual

auto br00
iface br00 inet static
bridge_ports enx000000000001 enx0050748300ab
address 192.168.10.10
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255

~$ brctl show
bridge name bridge id STP enabled interfaces
br00 8000.000000000001 no enx000000000001
enx0050748300ab
Экзотические названия интерфейсов - это usb сетевухи так определились в системе, менять не стал. Система ubuntu 16-32 server.

Как я понимаю, в данном случае подключив два компа к этим сетевухам я должен как минимум пинги видеть между компами? На мой взгляд трафик не ходит через этот бридж. Как забороть данную тему? У всех отмеченных гуглом похоже все работает без проблем :(
PS
адрес бриджу уже так добавил, на всякий, так сказать. При этом если выставить адрес из бриджовой сети, комп этот бридж пингует и дает через него ssh подключиться к убунту сервер.
Прохождение трафика между интерфейсами в /etc/sysctl.conf тоже пробовал включать наудачу :). Не помогло.
Мне нужен свич.

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: bridge нескольких интерфейсов не работает
« Ответ #1 : Воскресенье, 08 Апреля, 2018, 17:04:52 »
Давно не заходил на форум. Если ещё актуально, то можно попробовать на одном из компов запустить прослушивание интерфейса и посмотреть, проходит ли arp-широковещание, когда с противоположного компа запускается пинг. Естественно, ip-адреса на компах в разных подсетях пинговаться не будут, поскольку работа в бридже идёт на 2-м уровне. Чтобы на этом уровне осуществить пересылку пакетов между сетями, нужно включить трансляцию адресов (аналог NAT) на 2-м уровне посредством ebtables.
(на 3-ем же уровне это делается через iptables и включение FORWARD в ядре: # echo 1 > /proc/sys/net/ipv4/ip_forward )

Дополнительно можно на мосте посмотреть таблицу мак-адресов, собранных ядром по интерфейсам:

# brctl showmacs br00
Следующий этап - удостовериться, что прохождение пакетов не запрещается на 2-м уровне - это надо копать в сторону ebtables.

Как-то раз экспериментировал с бриджами - попробовал, всё получилось с 3-мя сетевухами, а практическое применение линукс-коммутатору пока не нашёл. На этом и остановился.
*nix - свобода мысли, свобода творчества!