Route
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覆蓋對網路配置文件的更改,我在 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
我不確定是什麼產生了這條額外的路線,我如何檢查是什麼產生了它並阻止它?
看起來您正在通過 DHCPv4 獲取 IP 地址。在這種情況下,預設情況下,預設網關將根據 DHCP 伺服器發送的任何內容進行設置。如果您在兩個不同的介面上使用 DHCP,就像您在此處所做的那樣,您可能會獲得兩個網關 - 在這種情況下會發生衝突。
您可以通過顯式配置連接來告訴 NetworkManager 忽略其中一個網關,如下所示。
例如(將連接的實際名稱替換為
em2
):nmcli c mod em2 ipv4.never-default yes
這將導致 DHCP 伺服器的預設網關被忽略。等效的 GUI 選項是:“僅將此連接用於其網路上的資源”。
此外,我懷疑當它啟動網路介面(使用 dhcp)時,您的神秘額外路由來自 dracut。您應該考慮在核心命令行上手動配置
em2
介面,而不是使用 DHCP。最後,您應該與您的網路人員就為什麼在您的儲存網路上發布預設網關進行長時間的交談。