似たような質問がある人もいるようですが、特に具体的だと思います。私は一般的な問題にぶつかるかもしれないと思う。Linuxのデバイスをタップしても、ARP/IPパケットが正しく渡されませんか?
Linux(Cで作成)に別のネットワークに接続されたTAPデバイスがあり、このTAPデバイスを介してコンピュータが他のネットワークと通信できるようにします。
私はariパケットがwiresharkではっきりと来るのを見ることができますが、私のカーネルは応答しません。私はブリッジを設定し、ブリッジのIPアドレスを無駄に設定しようとしました。私はまた、物理的なハードウェアへのブリッジを試みました。何らかの理由で、Linuxはデータを他のNICに渡すようには見えません。
私が静的なARPルートを設定した場合、このLinuxボックスは、そのデバイスのpingに応答しないようです。
# ifconfig tap0 up
# brctl addbr br0
# brctl addif br0 tap0
# brctl addif br0 eth9
# ifconfig br0 up
br0、eth9、またはtap0をIPに設定できますが、pingまたはarpsには応答がありません。私が橋を破壊しても、何もない。
"ふりをする"というインターフェースがほしいと思っています。 "これは偽のイーサネットカード"のように、そのことを話しています。私はそれがタップで可能であるべきであるように感じる。
同様の問題:
Linux TUN/TAP: Unable to read data back from TAP devices
Why aren't ARP or ICMPv6 packets processed by a Linux TAP device
ARPはレイヤ2ブロードキャストをルーティングできないため、ルーティング(レイヤ2フレームはレイヤ3に到達する前に取り除かれ、例えばルーティング)されていません。 ARPはブリッジすることができるが、ブリッジはレイヤ3を理解しない。 IP。 2つの異なるIPネットワークを橋渡しするべきではありません。ネットワーク層やTUN/TAPの目的を誤解していると思います。 –