Рейтинг:0

Настройка виртуальной среды для тестирования STP

флаг ml

Я хочу создать тестовую среду для STP/RSTP. в конце концов я пришел эта почта который предложил использовать пространства имен. Похоже, это было именно то, что я хотел создать простейшую среду STP. В итоге я написал такой скрипт:

#!/бин/баш
 
если [ "$EUID" -ne 0 ]
затем эхо "Пожалуйста, запустите как root"
    выход
фи
 
# Первый случай: попробуйте одну пару veth
ip netns добавить синий
 
ip link add veth0 type veth peer veth1 netns blue
IP-ссылка добавить тип veth2 veth peer veth3 netns blue
 
IP-ссылка установлена ​​​​veth0 вверх
ip netns exec blue ip link set veth1 up
IP-ссылка настроена veth2 вверх
ip netns exec blue ip link set veth3 up
 
IP-ссылка добавить мост типа mybridge
ip link set veth0 master mybridge
ip link set veth2 master mybridge
 
ip netns exec blue ip link добавить мост типа bluebridge
ip netns exec blue ip link set veth1 master bluebridge
ip netns exec blue ip link set veth3 master bluebridge

IP-адрес добавить 10.200.0.1/24 dev mybridge
 
#brctl stp mybridge включен
ip link set mybridge type bridge stp_state 1

ip link настроить mybridge

# начинаем здесь записывать пакеты
echo "Начать запись пакетов. Нажмите любую клавишу, чтобы продолжить"
читать -n 1

ip netns exec blue ip addr add 10.200.0.2/24 dev bluebridge

#ip netns exec blue brctl stp bluebridge на
ip netns exec blue ip link set тип bluebridge мост stp_state 1

ip netns exec blue ip link set bluebridge up

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

Я надеюсь, что само ядро ​​(4.19.128, работающее в WSL 2.0 для моего текущего теста) сможет обнаружить их и... не вызвать бурю. Кроме того, я надеюсь, что смогу использовать программу RSTP пользовательского пространства, такую ​​как mstpd (commit f55f783610e65149), на одном или обоих этих мостах и ​​расширять сетевую архитектуру, перехватывая пакеты на любом из интерфейсов по пути.

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

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

Для тех, кто играет дома, простой скрипт для отмены всех интерфейсов:

#!/бин/баш

если [ "$EUID" -ne 0 ]
затем эхо "Пожалуйста, запустите как root"
    выход
фи

# Убить синего
ip netns exec blue ip link del bluebridge
ip netns exec blue ip link del veth1
ip netns exec blue ip link del veth3

ip netns дель синий

IP-ссылка на mybridge

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.