Xen-4.0 のネットワーク ブリッジ構成で domU にネットワークがない

Xen-4.0 のネットワーク ブリッジ構成で domU にネットワークがない

ネットワーク ブリッジ構成で非常に標準的な Xen-4.0 domU を作成しました。ただし、仮想マシンからブリッジ (peth0) が接続されているネットワークにパケットが送信されません。ゲストからハイパーバイザーに ping することはできますが、その外部に ping することはできません。

IP アドレス:

  • x.x.x.121-- ハイパーバイザー ブッダ
  • x.x.x.162-- 仮想マシン、xen6

何が起こっているのでしょうか? これは非常に標準的なネットワーク構成です。別のハイパーバイザーではまったく同じ構成 (同じ OS、同じバージョン、同じ構成) が機能しますが、他のボックスでは機能しません。

症状は次のようなものに似ているこれただし、ネットワーク構成は問題ないようです。何かアイデアはありますか?

xen6:~$ ping -c 1 xxx121
PING xxx121 (xxx121) 56(84)バイトのデータ。
xxx121 からの 64 バイト: icmp_req=1 ttl=64 time=0.093 ms

--- xxx121 ping 統計 ---
送信パケット 1 個、受信パケット 1 個、パケット損失 0%、時間 0 ミリ秒
rtt 最小/平均/最大/平均偏差 = 0.093/0.093/0.093/0.000 ミリ秒
buddha$ sed -n '/^[^#].*\(\(network\)\|\(vif\)\)/p' xend-config.sxp
(ネットワーク スクリプト ネットワーク ブリッジ)
(vif-script vif-bridge)
仏陀# ifconfig -a
eth0 リンク カプセル化:イーサネット HWaddr 00:30:48:5a:05:fa  
          inet アドレス:xxx121 Bcast:xxx255 マスク:255.255.255.0
          inet6 アドレス: fe80::230:48ff:fe5a:5fa/64 スコープ:リンク
          アップブロードキャスト 実行中マルチキャスト MTU:1500 メトリック:1
          RXパケット:6082 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
          TXパケット:1138 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
          衝突:0 送信キュー:0
          RX バイト:573467 (560.0 KiB) TX バイト:230756 (225.3 KiB)

lo リンクカプセル化:ローカルループバック  
          inet アドレス:127.0.0.1 マスク:255.0.0.0
          inet6 アドレス: ::1/128 スコープ:ホスト
          アップループバック実行中 MTU:16436 メトリック:1
          RXパケット:26 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
          TXパケット:26 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
          衝突:0 送信キュー:0
          RX バイト:2428 (2.3 KiB) TX バイト:2428 (2.3 KiB)

peth0 リンク encap:イーサネット HWaddr 00:30:48:5a:05:fa  
          inet6 アドレス: fe80::230:48ff:fe5a:5fa/64 スコープ:リンク
          アップブロードキャスト実行中 Promisc マルチキャスト MTU:1500 メトリック:1
          RXパケット:6218 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
          TX パケット:1141 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
          衝突:0 送信キュー数:1000
          RX バイト:693978 (677.7 KiB) TX バイト:235320 (229.8 KiB)
          割り込み:26

vif1.0 リンク encap:イーサネット HWaddr fe:ff:ff:ff:ff:ff  
          inet6 アドレス: fe80::fcff:ffff:feff:ffff/64 スコープ:リンク
          アップブロードキャスト実行中 Promisc マルチキャスト MTU:1500 メトリック:1
          RXパケット:3 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
          TXパケット:4369 エラー:0 ドロップ:43 オーバーラン:0 キャリア:0
          衝突:0 送信キュー数:32
          RX バイト:84 (84.0 B) TX バイト:487332 (475.9 KiB)
buddha# xm ネットワークリスト xen6
Idx BE MAC アドレス ハンドル状態 evt-ch tx-/rx-ring-ref BE-path
0 0 00:16:3E:F3:0F:D9 0 4 15 769 /768 /local/domain/0/backend/vif/1/0

仏陀# brctl ショー
ブリッジ名 ブリッジID STP対応インターフェース
eth0 8000.0030485a05fa いいえ peth0
                                        ビフ1.0
xen6# ifconfig -a
eth0 リンク カプセル化:イーサネット HWaddr 00:16:3e:f3:0f:d9  
          inet アドレス:xxx162 Bcast:xxx255 マスク:255.255.255.0
          inet6 アドレス: fe80::216:3eff:fef3:fd9/64 スコープ:リンク
          アップブロードキャスト 実行中マルチキャスト MTU:1500 メトリック:1
          RXパケット:6870 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
          TX パケット:209 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
          衝突:0 送信キュー数:1000
          RX バイト:628821 (614.0 KiB) TX バイト:31636 (30.8 KiB)
          割り込み:17

lo リンクカプセル化:ローカルループバック  
          inet アドレス:127.0.0.1 マスク:255.0.0.0
          inet6 アドレス: ::1/128 スコープ:ホスト
          アップループバック実行中 MTU:16436 メトリック:1
          RXパケット:1 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
          TX パケット:1 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
          衝突:0 送信キュー:0
          RXバイト:80 (80.0 B) TXバイト:80 (80.0 B)
xen6:~$ ping -c 1 xxx121
PING xxx121 (xxx121) 56(84)バイトのデータ。
xxx121 からの 64 バイト: icmp_req=1 ttl=64 time=0.081 ms

--- xxx121 ping 統計 ---
送信パケット 1 個、受信パケット 1 個、パケット損失 0%、時間 0 ミリ秒
rtt 最小/平均/最大/平均偏差 = 0.081/0.081/0.081/0.000 ミリ秒

イーサネット コントローラーは次のとおりです。

02:05.0 イーサネット コントローラ: Broadcom Corporation NetXtreme BCM5704 ギガビット イーサネット (rev 10)
    サブシステム: Super Micro Computer Inc デバイス 1648
    フラグ: バス マスター、66MHz、中規模デバイス、レイテンシ 64、IRQ 26
    fc9f0000 のメモリ (64 ビット、プリフェッチ不可) [サイズ = 64K]
    拡張ROMが[無効]
    機能: [40] PCI-X非ブリッジデバイス
    機能: [48] 電源管理バージョン2
    機能: [50] 重要な製品データ
    機能: [58] MSI: 有効 - カウント=1/8 マスク可能 - 64ビット以上
    使用中のカーネル ドライバー: tg3

どこかで (どこだったか思い出せませんが)、IPMI がネットワークに問題を引き起こすと読みました。そのため、IPMI を無効にしました。

motiejus@buddha> uname -a
Linux buddha 2.6.32-5-xen-amd64 #1 SMP 月曜日 1月 16 20:48:30 UTC 2012 x86_64 GNU/Linux
motiejus@buddha> lsb_release -a
ディストリビュータID: Debian
説明: Debian GNU/Linux 6.0.4 (squeeze)
リリース: 6.0.4
コードネーム: スクイーズ

pastebin-data からの更新 (ルーティング情報と ping 結果):

Xen6:
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface  
x.x.x.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0   
0.0.0.0         x.x.x.1    0.0.0.0         UG        0 0          0 eth0   

Buddha:
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface    
x.x.x.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0     
0.0.0.0         x.x.x.1    0.0.0.0         UG        0 0          0 eth0     

xen6:~$ ping -c1 x.x.x.1
PING x.x.x.1 (x.x.x.1) 56(84) bytes of data.

--- x.x.x.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

buddha# tcpdump -nni eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode                    
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes                      
22:51:01.977068 IP x.x.x.162 > x.x.x.1: ICMP echo request, id 2632, seq 1, length 64

However, x.x.x.1 does not receive the ICMP request.

buddha# ping -c1 x.x.x.1
PING x.x.x.1 (x.x.x.1) 56(84) bytes of data.         
64 bytes from x.x.x.1: icmp_req=1 ttl=255 time=0.403 ms   

--- x.x.x.1 ping statistics ---                           
1 packets transmitted, 1 received, 0% packet loss, time 0ms    
rtt min/avg/max/mdev = 0.403/0.403/0.403/0.000 ms 

答え1

「MAC ベース」のセキュリティはネットワーク部門によって有効化されていますか? 物理回線上の最初の発信 MAC のみが受け入れられているように思えます。

答え2

私の記憶では、問題は同じでした。ARP キャッシュをオンにすると問題は解決しました。あなたにも効果があるかもしれません。

次の行を挿入します/etc/sysctl.conf:

net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.proxy_arp = 1

ルーティングされたネットワークを使用しているため、 はありません。peth0おそらく、これを有効にする必要があります。

net.ipv4.conf.peth0.proxy_arp = 1

関連情報