Sun Firex4140に物理的なSLES11 SP2サーバーがあり、再起動時にネットワークに問題が発生します。 NICはオンボードです。
起動中はネットワークは成功しているように見えますが、nfsなどのネットワークサービスは失敗します。これは、eth0とeth1が両方とも同じ構成を受け取り、両方ともifupされているためです。すべてがタイムアウトし、コンソールにアクセスすると、ifconfigは、eth0とeth1が稼働していて、同じIPで実行されていることを示します。そのサブネット内の何かにpingを実行しようとすると失敗します。ネットワークサービスを再起動すると、問題が修正されます。
eth0は正しいNICであり、MACアドレスごとにプライマリとして設定する必要があります。
質問:eth1がeth0と同じ構成で起動される原因は何ですか??
Eth1用に設定スクリプトを設定していません。
banjer@harp:~> ls -la /etc/sysconfig/network/
total 104
drwxr-xr-x 6 root root 4096 Jun 11 12:21 .
drwxr-xr-x 6 root root 4096 Apr 10 09:46 ..
-rw-r--r-- 1 root root 13916 Apr 10 09:32 config
-rw-r--r-- 1 root root 9952 Apr 10 09:36 dhcp
-rw------- 1 root root 180 Jun 11 12:21 ifcfg-eth0
-rw------- 1 root root 180 Jun 11 12:21 ifcfg-eth3
-rw------- 1 root root 172 Feb 1 08:32 ifcfg-lo
-rw-r--r-- 1 root root 29333 Feb 1 08:32 ifcfg.template
drwxr-xr-x 2 root root 4096 Apr 10 09:32 if-down.d
-rw-r--r-- 1 root root 239 Feb 1 08:32 ifroute-lo
drwxr-xr-x 2 root root 4096 Apr 10 09:33 if-up.d
drwx------ 2 root root 4096 May 5 2010 providers
-rw-r--r-- 1 root root 25 Nov 16 2010 routes
drwxr-xr-x 2 root root 4096 Apr 10 09:36 scripts
ちなみに、eth3も別のサブネットのIPで構成されていますが、これによって問題が発生することはありません。参考までに、使用されているカーネルモジュールはforcedeth
です。
banjer@harp:~> Sudo cat /etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='172.21.64.25/20'
MTU=''
NAME='MCP55 Ethernet'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'
ONBOOT="yes"
あなたがそれを見る必要がある場合のeth3はここにあります:
banjer@harp:~> Sudo cat /etc/sysconfig/network/ifcfg-eth3
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='172.11.200.4/24'
MTU=''
NAME='MCP55 Ethernet'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'
ONBOOT="yes"
おそらくudevに関連するものですか? 70-persistent-net-rules
は私には問題ないように見えますが、完全には理解できない場合があります。
banjer@harp:~> cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x10de:0x0373 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:18:4f:8d:85:4d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
# PCI device 0x1077:0x3032 (qla3xxx)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c1:dd:0e:34:6c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
これを引き起こす原因について他に何か考えはありますか?
UPDATE 1
提案に従って、使用されていない他のすべてのNICnot(eth1およびeth2)に構成を指定しました。ここにeth1があります。
banjer@harp:/etc/sysconfig/network> Sudo cat ifcfg-eth1
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME='MCP55 Ethernet'
NETMASK='255.255.255.0'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='off'
ONBOOT='no'
USERCONTROL='no'
そして、実際に接続されているNIC(eth0およびeth3)に特定のHWADDR
を追加しました。テストの再起動中に、ネットワークが期待どおりに起動し、eth1とeth2が期待どおりに「スキップ」と表示されます。ただし、eth1はまだeth0の構成で起動されています。
udev_log="debug"
に/etc/udev/udev.conf
を設定すると、/var/log/messages
に多数のデバッグメッセージが表示されます。 ここに貼り付けがありますgrep eth1 /var/log/messages
ですが、他のethのgrepと比較したときに目立つものは何もありません。
UPDATE 2
これはudevの問題だと思って、/lib/udev/rules.d/75-persistent-net-generator.rules
に変更を加え、rm /etc/udev/rules.d/70-persistent-net.rules
を実行しました。
# device name whitelist
#KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"
KERNEL!="eth[03]|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"
再起動後、これは私が望んでいたこと(eth0、eth3のルールを生成)を正確に実行しましたが、問題は解決しませんでした。 eth1はまだ起動しています。ブートプロセス全体をデバッグする方法はありますか? strace?これがどこから来ているのかわかりません。
バンドエイドとして、ブートプロセスの後半にネットワークを再起動するためのrcスクリプトを追加しています。
2つのNICが起動時に同じIPとサブネットを構成するというこの謎の背後にある原因を特定できませんでした。
ただし、この問題の最終的な解決策は、ケーブルを最初のNICから2番目のNIC、つまりeth0からeth1に移動することでした。次に、ifcfg-eth1を構成し、ifcfg-eth0を「未構成」にしました。 。これで、ネットワークとネットワークに依存するサービスが完全に機能します。
forcedeth
モジュールまたはBIOSの問題である可能性があると感じますが、最近はまったく異なるハードウェアでサーバーを構築し、から移行しているため、これ以上時間を費やすことはありません。 SLESからCentOSまでなので、問題が再び発生することはないと思います。
eth1の設定スクリプトがないと言います。何故なの?設定されているのでしょうか?もしそうなら、それはどのIPを持っているはずです。静的割り当てまたはdhcp?
これらはあなたが考えるための質問です、ところで、必ずしもここで答える必要はありません。
ONBOOT = "no"を使用した最小限の構成であっても、eth1の構成を作成してみてください。構成ファイルがない場合、suseは非常識なデフォルトのautomagicがらくたを実行している可能性があります。
設定ファイルをより具体的にすることは助けになるはずです。次のディレクティブをifcfg-ethXファイルに追加します。
DEVICE=eth0
HWADDR=00:18:4f:8d:85:4a
すすぎ、泡立て、eth3などで繰り返します
Eth1などの設定ファイルを追加することもできます(すべきですか?):
DEVICE=eth1
HWADDR=00:18:4f:8d:85:4b
ONBOOT=no
追加してみてください:
HWADDR='00:18:4f:8d:85:4a'
/etc/sysconfig/network-scripts/ifcfg-eth0
へ。次のようなものを含むifcfg-eth1
を作成することもできます。
DEVICE='eth1'
BOOTPROTO='none'
HWADDR='00:18:4f:8d:85:4b'
USERCONTROL='no'
ONBOOT='yes'
少なくとも、IP構成なしでインターフェイスを起動するだけのRHELでは、ネットワーク初期化スクリプトはSuSE 11でも同様に見えます。SuSEネットワーク構成に関する他の解決策は、次のようなもので70-persistent-net.rules
をクリアすることです。
cat < /dev/null > /etc/udev/rules.d/70-persistent-net.rules
これにより、udevルールがクリアされ、インターフェイスの識別にifcfg-eth *ファイルを使用するようにinitに指示されます。