Используя 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.
Наконец, вам следует долго поболтать с людьми из вашей сети о том, почему в вашей сети хранения вообще рекламируется шлюз по умолчанию.