web-dev-qa-db-ja.com

eth0とeth1は両方とも起動時に同じIPを割り当てました

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スクリプトを追加しています。

1
Banjer

2つのNICが起動時に同じIPとサブネットを構成するというこの謎の背後にある原因を特定できませんでした。

ただし、この問題の最終的な解決策は、ケーブルを最初のNICから2番目のNIC、つまりeth0からeth1に移動することでした。次に、ifcfg-eth1を構成し、ifcfg-eth0を「未構成」にしました。 。これで、ネットワークとネットワークに依存するサービスが完全に機能します。

forcedethモジュールまたはBIOSの問題である可能性があると感じますが、最近はまったく異なるハードウェアでサーバーを構築し、から移行しているため、これ以上時間を費やすことはありません。 SLESからCentOSまでなので、問題が再び発生することはないと思います。

0
Banjer

eth1の設定スクリプトがないと言います。何故なの?設定されているのでしょうか?もしそうなら、それはどのIPを持っているはずです。静的割り当てまたはdhcp?

これらはあなたが考えるための質問です、ところで、必ずしもここで答える必要はありません。

ONBOOT = "no"を使用した最小限の構成であっても、eth1の構成を作成してみてください。構成ファイルがない場合、suseは非常識なデフォルトのautomagicがらくたを実行している可能性があります。

2
cas

設定ファイルをより具体的にすることは助けになるはずです。次のディレクティブをifcfg-ethXファイルに追加します。

DEVICE=eth0
HWADDR=00:18:4f:8d:85:4a

すすぎ、泡立て、eth3などで繰り返します

Eth1などの設定ファイルを追加することもできます(すべきですか?):

DEVICE=eth1
HWADDR=00:18:4f:8d:85:4b
ONBOOT=no
2
fukawi2

追加してみてください:

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に指示されます。

1
d34dh0r53