Назад | Перейти на главную страницу

NetworkManager добавляет дополнительный шлюз по умолчанию

Используя NetworkManager, я пытаюсь настроить несколько интерфейсов в разных VLAN; первичный интерфейс em1 используется в разрабатываемой VLAN; вторичный интерфейс находится в выделенной iSCSI VLAN.

Я использую аргументы ядра для запуска хоста с диска iSCSI:

GRUB_CMDLINE_LINUX="netroot=iscsi:@172.16.250.250::3260:em2:::iqn.2000-01.com.example.san:disk rd.iscsi.initiator=iqn.2000-01.com.example.node:root rd.lvm.lv=centos/root

Предотвращать дракута от переопределения изменений в файлах конфигурации сети я добавил переопределение в файл конфигурации dracut, перестроенный:

echo 'omit_dracutmodules+="ifcfg"' >> /etc/dracut.conf

dracut -f
grub2-mkconfig -o /boot/grub2/grub.cfg

После перезагрузки использовал nmtui Для настройки адаптеров в этот файл конфигурации были встроены следующие параметры:

DEVICE=        em1        em2
ONBOOT=        yes        yes
BOOTPROTO=     dhcp       dhcp
DEFROUTE=      yes        no
PEERDNS=                  no
PEERROUTES=               no

я нуждаюсь em1 быть основным интерфейсом / интерфейсом по умолчанию, em2 предназначен для iSCSI; Однако проблема в том, что em2 все еще добавляет маршруты по умолчанию. После перезагрузки:

$ ip route show
default via 172.16.250.1 dev em2       <-- WRONG
default via 172.16.100.1 dev em1 proto dhcp metric 100
172.16.100.0/24 dev em1 proto kernel scope link src 172.16.100.100
172.16.100.0/24 dev em1 proto kernel scope link src 172.16.100.100 metric 100
172.16.250.0/24 dev em2 proto kernel scope link src 172.16.250.100
172.16.250.0/24 dev em2 proto kernel scope link src 172.16.250.100 metric 101

Нет маршрут файлы конфигурации.

Вот некоторые связанные параметры nmcli:

$ nmcli c show $if | grep ipv4

                           em1          em2
ipv4.routes                --           --
ipv4.route-metric          -1           -1
ipv4.route-table           0 (unspec)   0 (unspec)
ipv4.routing-rules         --           --
ipv4.ignore-auto-routes    no           yes
ipv4.ignore-auto-dns       no           yes
ipv4.never-default         no           yes

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

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

Вы можете указать NetworkManager игнорировать один из шлюзов, явно настроив соединение, как показано здесь.

Например (замените фактическое имя вашего подключения на em2):

nmcli c mod em2 ipv4.never-default yes

Это приведет к игнорированию шлюза по умолчанию от DHCP-сервера. Эквивалентная опция GUI: «Использовать это соединение только для ресурсов в своей сети».


Вдобавок я подозреваю, что ваши загадочные дополнительные маршруты исходят от dracut, когда он вызывает сетевой интерфейс (с dhcp). Вам следует подумать о настройке вручную em2 интерфейс в командной строке ядра вместо использования DHCP.


Наконец, вам следует долго поболтать с людьми из вашей сети о том, почему в вашей сети хранения вообще рекламируется шлюз по умолчанию.