2つのオンボードBroadcom NetXtreme II BCM5708 1000Base-T NICを搭載したHP ML 350 G5でRHEL 6.4、kernel-2.6.32-358.el6.i686を実行しています。私の目標は、2つのインターフェイスをmode=1
フェールオーバーペアにチャネルボンディングすることです。
私の問題は、ボンドが設定されて受け入れられているという証拠はあるものの、ケーブルをプライマリから引き抜くことNICによってすべての通信が停止することです。
まず、ifcfg-eth0:
DEVICE=eth0
HWADDR=00:22:64:F8:EF:60
TYPE=Ethernet
UUID=99ea681d-831b-42a7-81be-02f71d1f7aa0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
次に、ifcfg-eth1:
DEVICE=eth1
HWADDR=00:22:64:F8:EF:62
TYPE=Ethernet
UUID=92d46872-eb4a-4eef-bea5-825e914a5ad6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
私のボンドの設定ファイル:
DEVICE=bond0
IPADDR=192.168.11.222
GATEWAY=192.168.11.1
NETMASK=255.255.255.0
DNS1=192.168.11.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=1 miimmon=100"
このように入力された/etc/modprobe.d/bonding.conf
ファイルがあります。
alias bond0 bonding
結合が起動し、結合のIPアドレスを介してサーバーのパブリックサービスにアクセスできます。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope Host lo
inet6 ::1/128 scope Host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.222/24 brd 192.168.11.255 scope global bond0
inet6 fe80::222:64ff:fef8:ef60/64 scope link
valid_lft forever preferred_lft forever
...ロードされます:
# cat /proc/modules | grep bond
bonding 111135 0 - Live 0xf9cdc000
/sys/class/net
ファイルシステムは良いことを示しています:
cat /sys/class/net/bonding_masters
bond0
cat /sys/class/net/bond0/operstate
up
cat /sys/class/net/bond0/slave_eth0/operstate
up
cat /sys/class/net/bond0/slave_eth1/operstate
up
cat /sys/class/net/bond0/type
1
ログファイルに問題はありません。実際、すべてがかなり幸せに見えます。
Jun 15 15:47:28 rhsandbox2 kernel: Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth0.
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: using MSI
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: making interface eth0 the new active one.
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: first active interface up!
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth0 as an active interface with an up link.
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth1.
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: using MSI
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth1 as a backup interface with an up link.
Jun 15 15:47:28 rhsandbox2 kernel: 8021q: adding VLAN 0 to HW filter on device bond0
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: NIC Copper Link is Up, 1000 Mbps full duplex
Eth0からネットワークケーブルをヤンクすると、すべての通信が暗くなります。問題は何であり、これをトラブルシューティングするためにどのような手順を踏む必要がありますか?
ネットワークは単一のサブネットであり、単一のVLAN ProCurve 1800-8Gスイッチによって提供されます。primary=eth0
をifcfg-bond0
に追加してネットワークサービスを再起動しましたが、動作を変更しました。/sys/class/net/bond0/bonding/primary
を追加する前と追加した後の両方でprimary=eth1
をチェックしたところ、null値があり、それが良いか悪いかはわかりません。
/var/log/messages
のケーブルが取り外されたときにeth1
をテーリングすると、次のように表示されます。
Jun 15 16:51:16 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Down
Jun 15 16:51:24 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex
use_carrier=0
をifcfg-bond0
のBONDING_OPTS
セクションに追加して、MII/ETHTOOL ioctlを使用できるようにしました。ネットワークサービスを再起動した後、症状に変化はありませんでした。 eth0
からケーブルを引っ張ると、すべてのネットワーク通信が停止します。もう一度、そのポートのリンクがダウンしたという通知のために、/var/log/messages
のエラーは保存されません。
そしてそれが失敗すると...
ifcfg-bond0
?いいえ、あなたは理解していますifcfg-bond0
?
滑りやすいペンギンの世界で何がmiimmon=100
?
ああ、すみません、という意味ですかmiimon=100
?
ええ、あなたはmiimon
ではなくmiimmon
を意味していたと思います。
また、大きな景品は、ネットワークサービスを再起動すると次のようになることです。
service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: ./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory
./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory
[ OK ]
入力するすべてに注意を払い、避けられない入力ミスを犯した場合は、表示されるすべての出力に注意を払ってください。
あなたは悪い人であり、あなたは気分が悪いはずです。
NICSの1つをプライマリスレーブとして指定してみてください。
DEVICE=bond0
IPADDR=192.168.11.222
GATEWAY=192.168.11.1
NETMASK=255.255.255.0
DNS1=192.168.11.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=1 miimmon=100 primary=eth0"
[〜#〜] rh [〜#〜] からの詳細なドキュメント:
primary =プライマリデバイスのインターフェース名(eth0など)を指定します。プライマリデバイスは、最初に使用されるボンディングインターフェイスであり、障害が発生しない限り破棄されません。この設定は、ボンディングインターフェイスの1つのNICが高速であり、したがって大きな負荷を処理できる場合に特に役立ちます。この設定は、ボンディングインターフェイスがアクティブバックアップモードの場合にのみ有効です。詳細については、/ usr/share/doc/kernel-doc-/Documentation/networking/bonding.txtを参照してください。
Ethに失敗したことが検出された後、ethに失敗したミリ秒に次のボンディングオプションdowndelay = xxxxを追加し、プライマリスレーブを残りに設定します。このパラメーターがbinding_optにない場合、ボンドは障害を検出します(miimom = yyyyが含まれているため)が、eth0は失敗しません。/proc/net/bonding/bondXファイルを見ると、この状況を確認できます。
とにかく、RHEL 6.3(あなたのものとほぼ同じバージョン)では、フェイルバック、スイッチから見た重複したMACアドレスに関連するボンディングに関する他のいくつかの問題があります。
幸運を。