ネットワークインターフェイスに永続的なルートを設定するのに問題があります。
私の設定の下:
ETH0:172.23.137.27ネットマスク/ 25-255.255.255.128ゲートウェイ– 192.168.126.126
ETH1:トランクVLAN-VLAN ID:305 172.21.107.123ネットマスク/ 28-255.255.255.240ゲートウェイ– 172.21.107.113
インターフェース設定は次のとおりです:
cat ifcfg-eth0 DEVICE = eth0 HWADDR = 2C:59:E5:42:CB:EC TYPE = Ethernet #UUID = eefb4ac8-42ba-4fc3-9918-08aae7edef3b ONBOOT = yes #NM_CONTROLLED = no BOOTPROTO = static IPADDR = 192.168.126.27 NETMASK = 255.255.255.128 GATEWAY = 192.168.126.126 #USERCTL = no cat ifcfg-eth1 DEVICE = eth1 HWADDR = 2C:59:E5:42:CB:ED UUID = 68f6c45e-48ba-4b33-8da7-d4d7979eb72d ONBOOT = yes BOOTPROTO =なし NM_CONTROLED = no cat ifcfg-eth1.305 DEVICE = eth1.305 VLAN = yes ONBOOT =はい BOOTPROTO = static TYPE = Ethernet IPADDR = 172.21.107.123 NETMASK = 255.255.255.240 GATEWAY = 172.21.107.113 #NM_CONTROLLED = no route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.21.107.112 0.0.0.0 255.255.255.240 U 0 0 0 eth1.305 192.168.126.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0 192.168.192.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3 0.0.0.0 172.21.107.113 0.0.0.0 UG 0 0 0 eth1.30
デフォルトルートは、手動で挿入した場合にのみ機能します。route del default gw 192.168.126.126 eth0
しかし、/ etc/sysconfig/network-scriptsの下のroute-eth0を使用しても機能しませんでした
デフォルトゲートウェイではないネットワークデバイスについては、通常、デフォルトルートフラグをnoに設定します。
DEFROUTE="no"
これは、複数のネットワークインターフェイスを持つサーバーでは問題なく動作するようです。その後、ネットワークサービスまたはインターフェースを再起動すると、ルートをチェックして、これが実際に機能していることを確認できるはずです。
/sbin/route -n
うまくいけば、これが役立ちます。
/ etc/sysconfig/networkファイルのデフォルトゲートウェイは、次のように独自の行で指定できます。GATEWAY=192.168.0.1
複数のゲートウェイが必要な場合は、次のようなシェルスクリプトを作成できます。
#!/bin/sh
ip rule add from 172.21.107.112/28 pref 200 lookup 201
ip route add default via 172.21.107.113 dev eth1 table 201
ip rule add from 192.168.126.0/25 pref 200 lookup 202
ip route add default via 192.168.126.126 dev eth0 table 202
ip route add default nexthop via 192.168.126.126 dev eth0
ip route append default nexthop via 172.21.107.113 dev eth0
ip route flush cache
ファイルをchmod + xして、その呼び出しを/etc/init.d/networkファイルに追加します。
指定できるGATEWAYは1つだけです。両方のインターフェースファイルにGATEWAYを追加した場合、より大きいインターフェース番号のGATEWAYがケースeth1のように使用されます。これは、表示されたroute -nから正しいものです。
複数のゲートウェイを使用する場合は、前の回答で提案されているように、ポリシールーティングを使用する必要があります。