web-dev-qa-db-ja.com

L3トラフィックではなくL2を渡すブリッジの問題

皆さん、ここの誰かが私を助けてくれることを願っています。

Ubuntuシステムに、KVM内で実行しているVMに接続するためのブリッジを設定しました。ブリッジはARP要求と応答を送信できるため、双方向のトラフィックがありますが、IPトラフィックは通過できません。

ネットワーキングは次のとおりです。vnet0-> bridge-> eth1-> VLAN pingしようとしているホストと

Eth1をトラバースしようとすると、pingがすべて失敗します。 vnet0、bridge、eth1インターフェイスでTCPDUMPを実行しました。問題は、vnet0から送信されたときにeth1を離れるIPパケットがなく、ブリッジインターフェイスをうまく通過しているように見えることです。また、この接続にはUSB 3.0ギガビットアダプターを使用しています。

これまでのトラブルシューティング:

  1. Sysctl.confを介してIPv6を無効にしました。
  2. USBアダプターを別のUSBポートに移動しました
  3. ブリッジを複数回削除および作成しました
  4. 再起動

困った。なぜL2だけが通過できるのか、考えはありますか?私のVMは、arpを介してeth1を介してシステムのMACアドレスを学習しますが、IPパケットを送信できません。

ありがとう

2
Livewireorg

さらに1時間ほど机に頭を打ちつけた後、私はそれを理解しました。 14.04を実行していた別のマシンで作業していたものから/ etc/network/interfaces configを作成しました。関連するビットのみを示す壊れたインターフェイスファイル:

自動eth1
iface eth1 inetマニュアル
up ifconfig eth1 up

自動E-MGMT-ブリッジ
iface E-MGMT-Bridge inetマニュアル
bridge_stp off
bridge_fd 0
bridge_ports eth1

16.04では、ARP、CDP、STPフレームなどのレイヤー2トラフィックを許可しながら、レイヤー3を何らかの形で破壊します。非常に奇妙な。 16.04で動作させるには、eth1スタンザを削除し、ブリッジを定義するだけで、ブリッジが参照する物理インターフェイスを定義する必要はありません。

自動E-MGMT-ブリッジ
iface E-MGMT-Bridge inetマニュアル
bridge_stp off
bridge_fd 0
bridge_ports eth1

再起動する必要があり、ブリッジを介してスイッチに接続されている実際のネットワークにVMからpingを実行できました。他の誰かがこれに遭遇したかどうか、または私が幸運かどうかはわかりません。

1
Livewireorg

ARPだけが表示され、「実際の」トラフィックが表示されない場合は、iptablesが問題の可能性があります。 iptablesのFORWARDINGポリシーがACCEPTに設定されているかどうかを確認してください。代わりにポリシーDROPを使用する場合は、KVMトラフィックを許可するための転送ルールが追加されているかどうかを確認してください。

0
scai