Есть 3 хоста, в каждом установлены 2-портовые сетевые адаптеры 10гб. Коммутатора 10гб нет.
Хочется объединить все 3 хоста в один l2 домен, чтобы каждому хосту были доступны другие 2 напрямую.
Мне представляется, что это можно сделать, соединив хосты "каждый с каждым" (как бы в кольцо), объединив оба порта каждого сетевого адаптера в бридж, но тогда в бридже нужно запретить транслировать широковещательный трафик. Как это сделать?
Или как-то иначе можно соединить 3 хоста без коммутатора?
(Дополнение: Мне эти хосты не просто так нужны в одной сети. На хостах проксмоксы. Сейчас мигрировать ВМки между хостами по 1Гб сети утомительно. А Migration Network должна быть одна.)
В обычном linux‑bridge broadcast off не прокатит, придётся мутить ebtables-правило DROP BROADCAST или тащить Open vSwitch и на портах ставить flood=off. Либо проще запилить софт‑свич на одном хосте, чтоб остальные без лишнего треша гоняли трафик
Ух, спасибо. Честно говоря, не знал о существовании ebtables :)
А почему "придется мутить" ? Разве недостаточно одного правила DROP в цепочке FORWARD? По идее, при таком физическом соединении "каждый с каждым" никакой FORWARD не нужен и будет являться паразитным. Или я неправильно понимаю правила ebtables?
Добавил на каждом хосте правила типа
ebtables -A FORWARD -i enp2s0f0 -o enp2s0f1 -d ff:ff:ff:ff:ff:ff -j DROP
ebtables -A FORWARD -i enp2s0f1 -o enp2s0f0 -d ff:ff:ff:ff:ff:ff -j DROP
заработало как положено! Паразитного броадкаста нет, iperf показывает скорость 9,7Гбит/с
Спасибо за решение!
Попробовал включить STP. Провел эксперимент, получилось как и ожидал - трафик начинает ходить через 1 узел (выбранный по алгоритму STP). Например, трафик с узла 1 идет напрямую на узел 2, а с узла 1 на узел 3 - так же через узел 2, а не напрямую. Т.е. с тем же успехом можно разорвать "кольцо", убрав соединение узлов 1-3.
Так что все же надо как-то заблокировать ретрансляцию броадкаста. Узел-источник броадкаста гарантировано первым же хопом доставит сообщеине всем узлам сети. Если принудительно установить широковещательным пакетам ttl=1, задача по-идее будет решена.
Отключил STP, добавил правила ebtables, работает как надо!
Но за идею спасибо! При включенном STP скорость была 8-9,7Гбит/с, что гораздо выше, чем когда паразитный бродкаст гонялся по кольцу :)
Не совсем понятно настойчивое желание отказаться от свитча. Чисто экономически выгода от подключения хостов "в кольцо" весьма невелика. 3 дополнительных пары SFP+ модулей с пачтами выйдет ненамного дешевле приобретения 4-х портового 10 Гб свитча. Например CRS305-1G-4S+IN. Бонусом вы получаете нормальную локалку с управляемым свитчем и всеми вытекающими.
Какие ж тут дополнительные пары SFP+ модулей с патчами? 3 хоста объединяются в "кольцо" 3мя хвостами. 2х-головые сетевые карты с патчами и SFP+ модулями куплены на авито за 15 тыс руб. Покупать дополнительно коммутатор за 20+ тыс на том же авито кажется избыточным, хотя, конечно, снимающим вопросы всякого шаманства.
SlavaVrnRu, Не знаю что у вас в рублях, но как по мне, 100 евро просто смешная цена для того чтобы раз и навсегда "снять вопросы всякого шаманства" и построить нормальную сеть.
Это не промышленная среда, а домашняя лаба. Так что всякие "сделать троллейбус из буханки хлеба" тут вполне допустимы, в том числе и из спортивного интереса. Видите вот, я узнал что такое ebtables. А иначе и не узнал бы :)