
Примечание: я не смог найти прямого ответа ни в одном из дубликатов, отмеченных для этого вопроса. Проблема в том, что «правильный ответ», похоже, очень сильно зависит от того, какой релиз вы используете и есть ли у вас профиль рабочего стола или сервера. У меня есть немного и того, и другого, потому что я установил lubuntu-core для предоставления некоторой базовой удаленной функциональности X, и, похоже, NetworkManager также был установлен, но мы предпочитаем редактировать нашу сетевую конфигурацию вручную, а не использовать инструменты GUI.
Ситуация такова: у меня есть удаленный сервер Ubuntu 14.04, на котором мне нужно перенастроить сеть. Мне нужно безопасно добавить мостовой интерфейс eth1
к удаленной системе, не разрывая удаленное подключение. У меня есть новый файл /etc/network/interfaces, который я хочу загрузить, но поскольку у меня нет эквивалентной машины для его тестирования или физического доступа к серверу, у меня есть несколько вопросов о моей новой конфигурации:
- Соответствуют ли конфигурация шлюза и метрика в файле ниже тому, что я пытаюсь сделать, и,
- Будет ли сетевой менеджер переопределять или вмешиваться в то, что я делаю здесь? В настоящее время, когда я
ifup eth1
сетевой менеджер просто автоматически его отключает. Я боюсь отключать NM, так как он может убить удаленное соединение, и - Если я перезагружу систему с обновленным файлом и моей текущей конфигурацией, сможет ли она получить удаленное SSH-подключение, когда снова заработает?
На сервере в данный момент запущен NetworkManager, однако он мне не нужен. Меня волнует только то, что используется конфигурация в /etc/network/interfaces и что машина остается доступной для удаленного входа по SSH на всех этапах реконфигурации (т. е. я не хочу быть заблокированным из-за неправильной конфигурации или отключения обоих интерфейсов без скрипта или перезагрузки автоматически и корректного их включения).
eth0
это интерфейс по умолчанию для трафика хоста. eth1
будет мостом для виртуальной машины KVM с собственным внешним IP-адресом. Оба интерфейса подключаются к одному и тому же физическому коммутатору и совместно используют подсеть XXX0/24. Насколько я понимаю, мне нужен мост, чтобы это работало, НО мне также нужно быть осторожным со своими шлюзами и метриками, поскольку у меня 2 интерфейса в одной сети.
В настоящее время хост имеет следующий статус NetworkManager:
# nmcli d status
DEVICE TYPE STATE
eth1 802-3-ethernet unavailable
eth0 802-3-ethernet unmanaged
И конфигурация в NetworkManager.conf:
[ifupdown]
managed=false
Я создал новую конфигурацию ниже:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address X.X.X.4
netmask 255.255.255.0
network X.X.X.0
broadcast X.X.X.255
gateway X.X.X.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers X.X.X.2
dns-search example.com
# Interfaces with lower values get used first
metric 10
### NEW BRIDGED INTERFACE ON ETH1 ###
auto eth1
iface eth1 inet static
address X.X.X.7
netmask 255.255.255.0
network X.X.X.0
broadcast X.X.X.255
# do I need gateway here or will it conflict with eth0 ?
# gateway X.X.X.1
metric 20
auto br0
iface br0 inet static
address X.X.X.200
netmask 255.255.255.0
network X.X.X.0
broadcast X.X.X.255
gateway X.X.X.1
bridge_ports eth1
bridge_stp off
bridge_maxwait 5
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers X.X.X.2
dns-search example.com
metric 30
Как я уже сказал, с этой новой конфигурацией, только что добавленной на сервер, она ifup eth1
работает только до тех пор, пока NM не решит ее удалить. Это делает тестирование чего-либо проблематичным, но я беспокоюсь, что простое отключение NM может быть намного хуже.
решение1
В конце концов я просто заменил конфигурацию eth1 на
auto eth1
iface eth1 inet manual
... скрестил пальцы и запустил reboot
. Система вернулась с правильными интерфейсами eth0 и br0, хотя это "решение" меня совсем не устраивало, и я уверен, что есть лучший ответ.