仮想インターフェイスからトラフィックをキャプチャする方法は?

仮想インターフェイスからトラフィックをキャプチャする方法は?

デバッグ目的でLinux仮想インターフェイスからトラフィックをキャプチャしたいと思います。私は3つすべてでvethtunそしてdummyインターフェースタイプを試してきましたが、何も表示するのが難しいですtcpdump

仮想インターフェイスを設定する方法は次のとおりです。

ip link add dummy10 type dummy
ip addr add 99.99.99.1 dev dummy10
ip link set dummy10 up

端末で次のコマンドを使用して視聴してください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

チューニング/タブチュートリアルローカルインターフェイスで動作するときにカーネルが実際にパケットを送信しない可能性があるいくつかのケースを明確にしました。

tsharkの出力を見ると、何も表示されません。このインターフェイスを通過するトラフィックはありません。そうですね。インターフェイスのIPアドレスに対してpingを送信しているため、オペレーティングシステムは「オンライン」でパケットを送信する必要がないと正しく決定し、カーネル自体はこれらのpingに応答しています。考えてみると、他のインターフェイス(eth0など)のIPアドレスをpingすると、次のことが起こります。つまり、パケットは送信されません。これは当然聞こえるかもしれませんが、最初は混乱する可能性があります。

しかし、これがTCPパケットにどのように適用されるかを知ることは困難です。

たぶんtcpdumpインターフェイスに異なるバインディングが必要ですか?

ベストアンサー1

トラフィックはインターフェイスを通って流れますlo

IPがボックスに追加されると、そのアドレスへのパスが「ローカル」テーブルに追加されます。このテーブルのすべてのルートは、ループバックインターフェイスを介してトラフィックをルーティングします。

次のコマンドを使用して、「ローカル」テーブルの内容を表示できます。

ip route show table local

私のシステムでは、次のようになります。

local 10.230.134.38 dev tun0  proto kernel  scope host  src 10.230.134.38 
broadcast 10.230.134.38 dev tun0  proto kernel  scope link  src 10.230.134.38 
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 172.17.0.0 dev docker0  proto kernel  scope link  src 172.17.42.1 
local 172.17.42.1 dev docker0  proto kernel  scope host  src 172.17.42.1 
broadcast 172.17.255.255 dev docker0  proto kernel  scope link  src 172.17.42.1 
broadcast 192.168.0.0 dev enp6s0  proto kernel  scope link  src 192.168.0.20 
local 192.168.0.20 dev enp6s0  proto kernel  scope host  src 192.168.0.20 
broadcast 192.168.0.255 dev enp6s0  proto kernel  scope link  src 192.168.0.20 

10.230.134.38したがって、基本的にトラフィック127.0.0.0/8127.0.0.1(追加の)172.17.42.1または192.168.0.20、IPが実際に別のインターフェイスにある場合でも、トラフィックはループバックインターフェイスを介してルーティングされます。

おすすめ記事