Это полное переписывание первоначального вопроса, главным образом из-за большой путаницы, вызванной моим первоначальным невежеством. Это замешательство было настолько серьезным, что я решил, что первоначальный вопрос должен быть удален, чтобы не вводить в заблуждение будущих искателей.
Коробки "OUT1" и "OUT2" хотят общаться друг с другом. Это все, что я знаю о них, кроме того факта, что им нужен разъем GigE Cat5e, и что они не будут использовать более 50 Мбит / с (в любом случае, в дуплексном режиме). Я не знаю, какие ОС они запускают (это могут быть Arduinos или Crays, насколько я знаю). Я не знаю, будут ли они использовать IPv4 или IPv6 (или оба), и я не знаю, какой диапазон адресов они используют, и я не знаю, какие протоколы более высокого уровня они могут использовать. OUT1 и OUT2 могут связываться друг с другом любым желаемым способом.
Насколько я знаю, OUT1 и OUT2 могут быть портами на коммутаторах, к которым подключены десятки машин, и все они хотят общаться друг с другом любым желаемым способом.
Единственные доступные подключения - это блоки Linux "A" и "B" в моей сети, к которым были добавлены выделенные интерфейсы для OUT1 и OUT2 для подключения.
Мне нужно направить весь трафик между OUT1 и OUT2, и по умолчанию ни один из моих интерфейсов не должен иметь IP-адрес (просто выглядеть как простой коммутатор).
Пока что это звучит как работа для моста (brctl
, без набора IP-адресов) в сочетании с некоторой формой туннелирования между A и B, хотя я не уверен, какой туннель будет самым простым.
Вот красивая картинка:
+------+ +---+ /\/\/\/\/\/\/\/\/\/\ +---+ +------+
| OUT1 |---| A |---<My Internal network >---| B |---| OUT2 |
+------+ +---+ \/\/\/\/\/\/\/\/\/\/ +---+ +------+
\ /
\_____ Looks like a cable _____/
Для дальнейшего обсуждения, скажем, внутренние интерфейсы на A & B - eth0
, а внешние интерфейсы (к OUT1 и OUT2) - eth1
.
Но подождите, это еще не все!
Владельцы OUT1 и OUT2 хотели бы настроить поведение A и B и путь между ними для таких вещей, как QoS. При запросе (через автоматически анализируемое электронное письмо) нам необходимо временно предоставить доступ к веб-серверу (работающему на другом компьютере) на А и В с IP-адресом IPv4, с которым могут взаимодействовать OUT1 и OUT2. В электронном письме-запросе будет указан IPv4-адрес для использования. Для OUT1 и OUT2, похоже, что веб-сервер работает на "коммутаторе".
Еще одна красивая картинка:
+------+ +---+ /\/\/\/\/\/\/\/\/\/\ +---+ +------+
| OUT1 |---| A |---<My Internal network >---| B |---| OUT2 |
+------+ +---+ \/\/\/\/\/\/\/\/\/\/ +---+ +------+
|
+---+
| C | webserver
+---+
Сам по себе веб-сервер и анализ электронной почты работают нормально, но его появление в точках A и B при желании, а затем исчезновение - проблема.
Я догадываюсь, что brctl
не подходит для этой задачи (по крайней мере, не в одиночку). Поиски говорят мне, что нам может понадобиться что-то вроде возможности ip
команды macvlan
либо в дополнение, либо вместо. Но это только предположение из довольно невежественного поиска.
Два вопроса:
Как я должен реализовать возможность переключения между внешними интерфейсами на A & B?
Как я должен заставить веб-сервер появляться и исчезать на внешних интерфейсах A & B?