
ネットワーク ブリッジ構成で非常に標準的な 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