-1

Я пытаюсь настроить сетевую конфигурацию нескольких виртуальных машин, консул и т.д. Я использую vagrant и настроил виртуальные машины для использования в частной сети. Это создает интерфейс eth1 в дополнение к соединению NAT с хостом на eth0. Консул по умолчанию использует первый интерфейс, eth0. Конечно, это все портит, потому что обе виртуальные машины регистрируются с одним и тем же IP-адресом, который принадлежит не частной сети, а соединению хоста.

Все идет нормально. Я могу изменить, какой консул IP использует, но меня это удивляет:

Есть ли лучшая эвристика для поиска "основного" интерфейса, чем "использовать первый"?

Поскольку это попытка автоматизировать настройку сети и DNS, я хотел бы какое-то общее решение, но я не уверен, как это сделать. В идеале это будет тот, где живут другие консул-агенты. Чем более неоднороден такой кластер, тем менее вероятно, что интерфейс одинаков для всех узлов кластера.

По сути, я ищу "делай, что я имею в виду (X)" для сетей. ;-)

1 ответ1

1

Вы можете обеспечить согласованное именование при перезагрузке с помощью udev. На самом деле, это было одной из основных (не единственных) причин развития udev.

Предположим, у вас есть два интерфейса Ethernet: один с MAC aa: bb: cc: dd: ee: ff, который вы хотите вызвать wan0, другой с mac-адресом 00: 11: 22: 33: 44: 55, который вы хотите вызвать local1.

Затем вы можете отредактировать файл /etc/udev/rules.d/70-persistent-net.rules, расположив строку следующим образом:

 # PCI device 0x8086:0x1502 (e1000e)
 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:ff", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Это правило присваивает устройству PCI с кодом поставщика 8086 и кодом продукта 1502 и MAC-адресом aa:bb:cc:dd:ee:ff имя eth0. Измените eth0 на wan0, и у вас есть правило, которое всегда дает этому NIC одно и то же имя. Аналогично для другого интерфейса.

Замените aa:bb:cc:dd:ee:ff над MAC-адресом, соответствующим интерфейсу, взаимодействующему с хостом, и 00:11:22:33:44:55 MAC-адрес сетевого адаптера, разговаривающего с другими гостями. и все готово.

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