Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

ブリッジに接続する active-backup ボンディングにおける ARP 監視が有効ではない

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 5 (RHEL5)

  • active-backup ボンディングモード (モード 1)

  • ボンディングデバイスに接続されるブリッジ

  • ARP 監視 (arp_ip_target)

Issue

ブリッジインターフェイスが、ARP 監視を使用するボンディングインターフェイスに接続している場合は、ホストの eth0/eth1 が常にダウンしていると検出されるため、ネットワークパスが機能しません。
ボンディングインターフェイスを MII モードで設定していると、仮想マシンへのネットワークパスが機能します。
ボンディングを、関連するブリッジインターフェイスなしで使用すると、ARP 監視モードが機能します。

Resolution

RHEL5 では、この問題の解決策はありません。

回避方法

ARP 監視の代わりに MII 監視を使用するか、ボンディングモード 802.3ad (有効なスイッチサポートが必要) を使用するとこの問題を回避できます。

Root Cause

BZ (https://bugzilla.redhat.com/show_bug.cgi?id=584872) が関連しています。

Diagnostic Steps

この問題は以下のように再現できます。

/etc/modprobe.conf:

alias bond0 bonding

/etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

/etc/sysconfig/network-scripts/ifcfg-eth1:

DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

/etc/sysconfig/network-scripts/ifcfg-bond0:

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 arp_ip_target=192.168.0.254 arp_interval=1000 arp_validate=3"
BRIDGE=br0

/etc/sysconfig/network-scripts/ifcfg-br0:

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
ONBOOT=yes
  • "miimon" をリンク監視方法として使用している場合、設定には問題ありません。
  • ARP 監視をブリッジなしで使用する場合も、設定には問題ありません。

出力結果:

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave:None
Currently Active Slave:None
MII Status: down
MII Polling Interval (ms):0
Up Delay (ms):0
Down Delay (ms):0
ARP Polling Interval (ms):800
ARP IP target/s (n.n.n.n form):192.168.0.254

Slave Interface: eth0
MII Status: down
Link Failure Count:1
Permanent HW addr:00:16:17:3b:c3:0f

Slave Interface: eth1
MII Status: down
Link Failure Count:1
Permanent HW addr:00:0a:5e:78:cc:3c

ただし、192.168.0.254 の tcpdump (arp_ip_target) は、~1000 ms ごとに入力 ARP 要求を表示します。

target# tcpdump
15:05:56.708749 arp who-has 192.168.0.254 tell 0.0.0.0
15:05:56.708757 arp reply 192.168.0.254 is-at 00:1e:37:d2:c7:e0 (oui Unknown)
15:05:57.507652 arp who-has 192.168.0.254 tell 0.0.0.0
15:05:57.507661 arp reply 192.168.0.254 is-at 00:1e:37:d2:c7:e0 (oui Unknown)

そして、要求 2 つに対して 1 つの応答を受け取りますが、192.168.0.100 の tcpdump は ARP トラフィックを表示します。

server# tcpdump
15:06:20.369887 arp who-has 192.168.0.254 tell 0.0.0.0
15:06:21.170003 arp who-has 192.168.0.254 tell 0.0.0.0
15:06:21.170178 arp reply 192.168.0.254 is-at 00:1e:37:d2:c7:e0 (oui Unknown)

以下のように、VLAN を上述の設定に追加した場合:

/etc/sysconfig/network-scripts/ifcfg-bond0:

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 arp_ip_target=192.168.0.254 arp_interval=1000 arp_validate=3"

/etc/sysconfig/network-scripts/ifcfg-bond0.100:

DEVICE=bond0.100
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br0.100
VLAN=yes
DELAY=0

/etc/sysconfig/network-scripts/ifcfg-br0.100:

DEVICE=br0.100
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
ONBOOT=yes

以下のメッセージは、arp_interval のたびに /var/log/messages (と /dev/console) のログに記録されます。

kernel: bonding: bond0: no path to arp_ip_target 192.168.0.254 via rt.dev br0.100

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments