Даже STP включается через brctl stp включить
в закольцованной сети пакеты не могут быть успешно перенаправлены. Обратите внимание, что если шлейфа в сети нет, то все ок.
Проблема описана следующим образом.
У меня есть три платы Linux (т. е. SW1, SW2, SW3) с кольцевой топологией, как показано:
SW1
/ \
SW2 — SW3
Конфигурации IP:
SW1: 192.168.20.2
SW2: 192.168.20.3
SW3:192.168.20.4
Каждая плата Linux имеет 4 физических порта, а соединения следующие:
SW1.swp2 <---> SW2.swp2
SW1.swp0 <---> SW3.swp1
SW2.swp3 <---> SW3.swp3
Конфигурация моста SW1 показана ниже, остальные такие же, за исключением IP-адреса «коммутатора».
ifconfig switch 192.168.20.2 # "192.168.20.2" - это IP SW1,
ip link set переключаться вверх
ip link set swp0 master switch && ip link set swp0 up
ip link set swp1 master switch && ip link set swp1 up
ip link set swp2 master switch && ip link set swp2 up
ip link set swp3 master switch && ip link set swp3 up
маршрут добавить по умолчанию gw 192.168.20.1
brctl stp включить
ip link настроить коммутатор разработчика
STP успешно включен:
brctl показать переключатель
имя моста идентификатор моста интерфейсы с поддержкой STP
коммутатор 8000.06f5bc4466d2 да swp0
swp1
своп2
swp3
Статус STP для SW1:
переключатель brctl showstp
выключатель
идентификатор моста 8000.06f5bc4466d2
назначенный корень 8000.067b22fa77a2
корневой порт 1 стоимость пути 4
максимальный возраст 20.00 бридж максимальный возраст 20.00
привет время 2.00 мост привет время 2.00
задержка пересылки 15.00 задержка пересылки моста 15.00
время старения 300.00
привет таймер 0.00 tcn таймер 0.00
таймер изменения топологии 0.00 gc timer 239.55
флаги
swp0 (1)
идентификатор порта 8001 состояние переадресации
назначенный корень 8000.067b22fa77a2 стоимость пути 4
назначенный мост 8000.067b22fa77a2 таймер возраста сообщения 19,82
назначенный порт 8002 таймер задержки пересылки 0.00
назначенная стоимость 0 таймер удержания 0.00
флаги
своп1 (2)
состояние порта 8002 отключено
назначенный корневой путь 8000.06f5bc4466d2 стоимость пути 100
назначенный мост 8000.06f5bc4466d2 таймер возраста сообщения 0,00
назначенный порт 8002 таймер задержки пересылки 0.00
назначенная стоимость 0 таймер удержания 0.00
флаги
своп2 (3)
идентификатор порта 8003, состояние переадресации
назначенный корень 8000.067b22fa77a2 стоимость пути 4
назначенный мост 8000.06f5bc4466d2 таймер возраста сообщения 0,00
назначенный порт 8003 таймер задержки пересылки 0,00
назначенная стоимость 4 таймер удержания 1.41
флаги
своп3 (4)
идентификатор порта 8004 состояние отключено
назначенный корневой путь 8000.06f5bc4466d2 стоимость пути 100
назначенный мост 8000.06f5bc4466d2 таймер возраста сообщения 0,00
назначенный порт 8004 таймер задержки пересылки 0,00
назначенная стоимость 0 таймер удержания 0.00
Статус STP для SW2:
переключатель brctl showstp
выключатель
идентификатор моста 8000.9a32d1ec24fe
назначенный корень 8000.067b22fa77a2
корневой порт 4 стоимость пути 4
максимальный возраст 20.00 бридж максимальный возраст 20.00
привет время 2.00 мост привет время 2.00
задержка пересылки 15.00 задержка пересылки моста 15.00
время старения 300.00
привет таймер 0.00 tcn таймер 0.00
таймер изменения топологии 0.00 gc timer 58.07
флаги
swp0 (1)
идентификатор порта 8001 состояние отключено
указанный корневой путь 8000.9a32d1ec24fe стоит 100
назначенный мост 8000.9a32d1ec24fe таймер возраста сообщения 0,00
назначенный порт 8001 таймер задержки пересылки 0,00
назначенная стоимость 0 таймер удержания 0.00
флаги
своп1 (2)
состояние порта 8002 отключено
указанный корневой путь 8000.9a32d1ec24fe стоит 100
назначенный мост 8000.9a32d1ec24fe таймер возраста сообщения 0,00
назначенный порт 8002 таймер задержки пересылки 0.00
назначенная стоимость 0 таймер удержания 0.00
флаги
своп2 (3)
идентификатор порта 8003 блокируется
назначенный корень 8000.067b22fa77a2 стоимость пути 4
назначенный мост 8000.06f5bc4466d2 таймер возраста сообщения 19.43
назначенный порт 8003 таймер задержки пересылки 0,00
назначенная стоимость 4 таймер удержания 0.00
флаги
своп3 (4)
идентификатор порта 8004, состояние переадресации
назначенный корень 8000.067b22fa77a2 стоимость пути 4
назначенный мост 8000.067b22fa77a2 таймер возраста сообщения 19.43
назначенный порт 8004 таймер задержки пересылки 0,00
назначенная стоимость 0 таймер удержания 0.00
флаги
Статус STP для SW3:
переключатель brctl showstp
выключатель
идентификатор моста 8000.067b22fa77a2
назначенный корень 8000.067b22fa77a2
корневой порт 0 стоимость пути 0
максимальный возраст 20.00 бридж максимальный возраст 20.00
привет время 2.00 мост привет время 2.00
задержка пересылки 15.00 задержка пересылки моста 15.00
время старения 300.00
привет таймер 0.62 tcn таймер 0.00
таймер изменения топологии 0.00 gc timer 98.80
флаги
swp0 (1)
идентификатор порта 8001 состояние переадресации
назначенный корень 8000.067b22fa77a2 стоимость пути 4
назначенный мост 8000.067b22fa77a2 таймер возраста сообщения 0,00
назначенный порт 8001 таймер задержки пересылки 0,00
назначенная стоимость 0 таймер удержания 0.00
флаги
своп1 (2)
идентификатор порта 8002 состояние переадресации
назначенный корень 8000.067b22fa77a2 стоимость пути 4
назначенный мост 8000.067b22fa77a2 таймер возраста сообщения 0,00
назначенный порт 8002 таймер задержки пересылки 0.00
назначенная стоимость 0 таймер удержания 0.00
флаги
своп2 (3)
идентификатор порта 8003, состояние переадресации
назначенный корень 8000.067b22fa77a2 стоимость пути 19
назначенный мост 8000.067b22fa77a2 таймер возраста сообщения 0,00
назначенный порт 8003 таймер задержки пересылки 0,00
назначенная стоимость 0 таймер удержания 0.00
флаги
своп3 (4)
идентификатор порта 8004, состояние переадресации
назначенный корень 8000.067b22fa77a2 стоимость пути 4
назначенный мост 8000.067b22fa77a2 таймер возраста сообщения 0,00
назначенный порт 8004 таймер задержки пересылки 0,00
назначенная стоимость 0 таймер удержания 0.00
флаги
В SW1 я пингую SW2:
пинг 192.168.20.3
PING 192.168.20.3 (192.168.20.3): 56 байт данных
64 байта из 192.168.20.3: seq=9 ttl=64 time=0,330 мс
64 байта из 192.168.20.3: seq=37 ttl=64 time=0,291 мс
64 байта из 192.168.20.3: seq=63 ttl=64 time=0,289 мс
64 байта из 192.168.20.3: seq=90 ttl=64 time=0,310 мс
64 байта из 192.168.20.3: seq=117 ttl=64 время=0,305 мс
64 байта из 192.168.20.3: seq=145 ttl=64 время=0,286 мс
64 байта из 192.168.20.3: seq=172 ttl=64 время=0,311 мс
Как мы видим, пакеты ping не могут передаваться непрерывно.
Есть ли хорошая идея? Опять же, когда я отключил шлейф, пинг в порядке.