Linux ブリッジは Tap インターフェイスの UDP パケットをブロックします。

Linux ブリッジは Tap インターフェイスの UDP パケットをブロックします。

紹介する:私はワイヤレスセンサーネットワーク用の6lowPANプロジェクトを進めています。デフォルトでは、Linuxホスト(Contiki OS)で実行されるノードのセットがあります。各ノードには、br0にブリッジされた独自のTapインターフェースがあります。ブリッジの内部では、すべてがうまく機能します。ノードは要求を送信し、ネイバー交換を正しく受信できます。すべてのスイッチは6lowPAN(IPV6適用)を使用します。

質問今、私が興味を持っているのは、ホストからノードに要求を送信することです。したがって、br0にbbbb :: 64をターゲットとするルーティングルールを追加しました。ホストLinuxですべてのノードをpingできますが、残念ながらUDP要求は失敗します。私はFirefoxを使用して(Copperプラグインを介して)UDPパケットを送信しています。 UDPパケットはノードで正しく受信され処理されますが、応答はブリッジで拒否され、ホストに接続できないと応答します(ポートに接続できません)。

質問: ブリッジとそのホスト間のルーティングルールに制限や特定の動作がありますか?パケットがFirefoxソケットに転送されない理由を確認するために、Linux IPスタックに関する追加のログ情報を取得するにはどうすればよいですか?

調査:

  • netstatFirefoxが正しい応答ポートで効果的にリッスンしていることを確認しました。 [確認]
  • ncホストがUDP IPv6交換を許可していることを確認しました。 [確認]
  • ファイアウォールルールなし[OK]
  • ルーティングルールを有効または無効にしてIPV6アドレスをbr0 bbbb :: 1/64に手動で追加しましたが、機能しません(pingはまったく機能しません)[ok]
  • 探検できる他の多くのエキゾチックな場所

基本構成:

brctl addbr br0
ip tuntap add dev br0 mode tap
brctl addif br0 tapXXX
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
ip -6 route add bbbb::/64 dev br0
ping6 ff02::1 -I br0 [OK]
ping6 bbbb::ff02:1:2:3 [OK]
firefox on coap://[bbbb::ff02:1:2:3]/hello <= FAILED (response is blocked by br0 bridge)

丸太:

設定されている場合

br0       Link encap:Ethernet  HWaddr e2:81:42:77:bf:10  
          inet6 addr: fe80::28bf:62ff:fed7:54ac/64 Scope:Link

netstat -p6

AIC Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
udp6       0      0 fe80::28bf:62ff:f:46939 bbbb::ff:fe00:1%1:5683  ESTABLISHED 2544/firefox  

ワイヤーシャーク

fe80::28bf:62ff:fed7:54ac   bbbb::ff:fe00:1       COAP     73     Confirmable, GET, /hello1  
fe80::ff:fe00:1             fe80::28bf:62ff:fed7:54ac COAP     83     Acknowledgment, 2.05  
fe80::28bf:62ff:fed7:54ac   fe80::ff:fe00:1       ICMPv6   131    Destination Unreachable (Port unreachable)  

ベストアンサー1

おすすめ記事