1

У меня есть машина (имя хоста foo) с двумя проводными сетевыми интерфейсами, eth0 и eth1. Когда я подключаю другую хост- bar к одному из них (eth0), я вижу в любом из NetworkManager, что он использует режим «Только для локальной связи»:

Это прекрасно работает - я могу мгновенно обмениваться данными между двумя хостами только с помощью ping foo.local или ping bar.local .

Однако, как только я подключаю второй хост к eth1, foo.local и bar.local становятся недоступными друг для друга из-за наличия нескольких перекрывающихся маршрутов 169.254.0.0/16. Как это исправить навсегда, чтобы мне не нужно было повторять некоторые ip заклинания на каждом хосте каждый раз, когда я подключаю хост, а также минимизировать количество статической конфигурации IP, которую я должен сделать (я хотел бы решить эту проблему в самом ZeroConfNetworking - иным способом возможно)? FWIW все машины работают под управлением Ubuntu 12.04.

1 ответ1

0

Единственный простой способ - соединить оба интерфейса Ethernet (в основном, если ваш компьютер работает как коммутатор). Тогда у вас будет только один маршрут через мост br0 , и он будет использовать изученные MAC-адреса, чтобы решить, какой порт Ethernet использовать для каждого хоста.

Если вы хотите разделить интерфейсы, хороших решений на самом деле нет. IPv6 делает это несколько проще, так как распознаватель (Avahi) может дополнительно вернуть интерфейс (идентификатор области видимости) как часть адресов AF_INET6 ... к сожалению, getaddrinfo () из glibc отбрасывает его по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .