Route-eth0が無視され、route-eth1が無視されないのはなぜですか? eth0がDHCPを使用していて、eth1が静的に構成されているためでしょうか?
いくつかの静的ルートが構成されています
[16:20:06][root@zserver2:/etc/sysconfig/network-scripts]$ ls -al ro*
-rw-r--r-- 1 root root 104 Dec 6 15:49 route-eth0
-rw-r--r-- 1 root root 106 Dec 6 15:49 route-eth1
service network restart
eth1のルートはアクティブ化されますが、eth0のルートはアクティブ化されません。
ifup eth0
もそれらを無視しますが、ifup-routes eth0
で結構です。それを活性化させる最良の方法は何ですか?
[16:18:36][root@zserver2:/etc/sysconfig/network-scripts]$ service network restart
Shutting down interface eth0: Device state: 3 (disconnected)
[ OK ]
Shutting down interface eth1: Device state: 3 (disconnected)
[ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/28
state: activated
Connection activated
[ OK ]
Bringing up interface eth1: Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/29
[ OK ]
[16:18:50][root@zserver2:/etc/sysconfig/network-scripts]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.15.10 192.168.15.11 255.255.255.255 UGH 1 0 0 eth1
192.168.15.11 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
192.168.15.11 192.168.15.91 255.255.255.255 UGH 1 0 0 eth1
192.168.15.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 192.168.15.1 0.0.0.0 UG 0 0 0 eth0
[16:19:03][root@zserver2:/etc/sysconfig/network-scripts]$ ifup eth0
Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/30
state: activated
Connection activated
[16:19:35][root@zserver2:/etc/sysconfig/network-scripts]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.15.10 192.168.15.11 255.255.255.255 UGH 1 0 0 eth1
192.168.15.11 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
192.168.15.11 192.168.15.91 255.255.255.255 UGH 1 0 0 eth1
192.168.15.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 192.168.15.1 0.0.0.0 UG 0 0 0 eth0
[16:19:56][root@zserver2:/etc/sysconfig/network-scripts]$ ./ifup-routes eth0
[16:20:00][root@zserver2:/etc/sysconfig/network-scripts]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.15.1 192.168.15.90 255.255.255.255 UGH 5 0 0 eth0
192.168.15.10 192.168.15.11 255.255.255.255 UGH 1 0 0 eth1
192.168.15.10 192.168.15.1 255.255.255.255 UGH 5 0 0 eth0
192.168.15.11 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
192.168.15.11 192.168.15.91 255.255.255.255 UGH 1 0 0 eth1
192.168.15.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 192.168.15.1 0.0.0.0 UG 0 0 0 eth0
構成ファイルは次のとおりです。
ifcfg-eth
[16:30:26][root@zserver2:/etc/sysconfig/network-scripts]$ cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=76ef8242-9e22-4a29-93f3-a142d1460c87
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=00:25:90:86:71:E0
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=1386361279
ifcfg-eth1
[16:30:35][root@zserver2:/etc/sysconfig/network-scripts]$ cat ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
UUID=647f66bd-67b2-4e9a-b5a5-4280ad677b9a
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
IPADDR=192.168.15.91
PREFIX=32
HWADDR=00:25:90:86:71:E1
LAST_CONNECT=1386361279
問題はおそらくタイミングです。とりわけ、ifup
スクリプトはこれを実行します。
eth0
を「アップ」状態にするdhclient
を開始しますroute-eth0
から静的ルートを読み込みます問題は、静的ルートをロードする前にifup
がdhclient
がIPアドレスを取得するのを待たず、カーネルがIPアドレスのないインターフェースのルートをインストールしないことです。それに構成されています。
DHCPを使用する必要がある場合の1つの解決策は、dhclient
にルートを追加させることです。 CentOS 6.5の dhclient-script(8) のマンページによると:
Dhclientが新しいIPアドレス、サブネットマスク、およびルートを使用してインターフェースを起動した直後に、REBOOT/BOUND状態で、実行可能ファイルの存在を確認します*/ etc/dhcp/dhclient- up-hooksスクリプトを使用し、見つかった場合はそれを入手します。このスクリプトは、デフォルトでは処理されない環境のDHCPオプションを処理できます。インターフェースごと/ etc/dhcp/dhclient-$ {IF} -up-hooksスクリプトは、汎用スクリプトをオーバーライドし、インターフェース$ IFが起動されたときに読み込まれます。
以下を含む/etc/dhcp/dhclient-eth0-up-hooks
スクリプトを作成することで、この作業を行うことができるはずです。
/etc/sysconfig/network-scripts/ifup-routes eth0
それも私の結論です。 DHCP i/fはDHCPサーバーからルーティング情報を取得するため、これらのファイルは無視されます。
NetworkManagerを通過し、UIを介して追加のルートを追加できるはずです。