У меня сеть из трех компьютеров, на каждом из которых по два порта. У меня нет сетевого коммутатора (три порта - 10GbE, а коммутаторы сейчас слишком дороги).
Я хотел бы соединить три так, чтобы любой из них мог разговаривать с другим (*), но без зависимости от строгого сопоставления между тем, какой порт пары должен быть подключен к какому партнеру. Другими словами, мне нужна достаточно стабильная конфигурация, чтобы я мог поменять местами пару кабелей, подключенных к одному компьютеру, и, по крайней мере, после перезагрузки всех трех узлов ожидать, что связь будет работать нормально.
Простая схема:
+---------+
| Node A |
| |eth0}-----+
| |? | +---------+
| |eth1}-+ | | Node C |
+---------+ | +-{eth0| |
| ?| |
| +-{eth1| |
| | +---------+
+---------+ | |
| Node B | | |
| |eth0}-+ |
| |? |
| |eth1}-----+
+---------+
Кроме того, я ожидал бы, что любая такая конфигурация должна быть конфигурацией с одним переходом, включение моста (например) не будет адекватным решением.
Обратите внимание, что среди узлов есть фиксированный мастер, хотя я не думаю, что это будет необходимым компонентом решения.
Есть такая конфигурация? Если да, то как я могу его настроить? Насколько я понимаю, использование нескольких идентичных маршрутов с разными интерфейсами может быть недостаточно надежным. Я предпочитаю не использовать такие решения, как iptables
или tc
если только они не являются единственными подходящими инструментами для этой конкретной задачи.
(*) «поговорить с другим» означает инициирование TCP-соединений в любом направлении, UDP + ICMP-трафик и т. д.
Конфигурация, которая удовлетворяет большинству ваших требований, должна включать мостовое и связующее дерево на всех трех серверах.
Если вы можете жить без необходимости иметь возможность произвольно менять местами сетевые порты, самое простое - это просто настроить статические IP-адреса для каждого интерфейса с тремя разными подсетями.
Не существует конфигураций, удовлетворяющих всем вашим требованиям.
Насколько я понимаю, нужно увеличивать пропускную способность. Так почему бы не использовать объединение / объединение, такое как LACP: http://en.wikipedia.org/wiki/Link_Aggregation_Control_Protocol, который поддерживается довольно многими коммутаторами?