デバッグのために、Linux仮想インターフェイスでトラフィックをキャプチャしたいと思います。veth
、tun
およびdummy
インターフェイスの種類を試しています。3つすべてで、tcpdump
何かを表示するのに苦労しています。
ダミーインターフェイスの設定方法は次のとおりです。
ip link add dummy10 type dummy
ip addr add 99.99.99.1 dev dummy10
ip link set dummy10 up
1つの端末で、次のように監視しtcpdump
ます。
tcpdump -i dummy10
すぐに、次の方法で試聴しますnc
。
nc -l 99.99.99.1 2048
3番目では、次を使用してHTTP要求を作成しますcurl
。
curl http://99.99.99.1:2048/
ターミナル2ではcurl
リクエストからのデータを見ることができますが、からは何も表示されませんtcpdump
。
A TUN / TAPチュートリアル明確化カーネルは実際には1つのローカルインターフェイス上で動作しているすべてのパケットを送信しないことがあり、いくつかの状況:
tsharkの出力を見ると、何もありません。インターフェイスを通過するトラフィックはありません。これは正しいです。インターフェイスのIPアドレスにpingを送信しているため、オペレーティングシステムはパケットを「有線」で送信する必要がないと正しく判断し、カーネル自体がこれらのpingに応答しています。考えてみると、別のインターフェイスのIPアドレス(たとえばeth0)にpingを実行した場合に発生することです。パケットは送信されません。これは明白に聞こえるかもしれませんが、最初は混乱の原因になる可能性があります(私にとっては)。
ただし、これがTCPデータパケットにどのように適用されるかを確認するのは困難です。
たぶん、tcpdump
別の方法インタフェースにバインドする必要がありますか?