Hata ayıklama amacıyla Linux sanal arabirimlerindeki trafiği yakalamak istiyorum. Ben deneyler yapıyorlar veth
, tun
ve dummy
türleri arayüzü; her üçünde de bir tcpdump
şey göstermekte zorlanıyorum .
Sahte arayüzü nasıl ayarlayacağım:
ip link add dummy10 type dummy
ip addr add 99.99.99.1 dev dummy10
ip link set dummy10 up
Bir terminalde aşağıdakileri izleyin tcpdump
:
tcpdump -i dummy10
Bir saniye içinde şununla dinle nc
:
nc -l 99.99.99.1 2048
Üçte birinde, aşağıdakilerle bir HTTP isteği yapın curl
:
curl http://99.99.99.1:2048/
Terminal 2'de curl
istekten gelen verileri görebilsek de , hiçbir şey görünmüyor tcpdump
.
Bir Tun / Tap öğreticisi , yerel bir arabirimde çalışırken çekirdeğin gerçekten paket göndermeyebileceği bazı durumları açıklar:
Tshark'ın çıktısına baktığımızda, hiçbir şey görmüyoruz. Arayüzden trafik gelmiyor. Bu doğrudur: arayüzün IP adresine ping attığımız için, işletim sistemi "kabloda" hiçbir paketin gönderilmesine gerek olmadığına ve çekirdeğin kendisi bu ping'lere yanıt verdiğine doğru karar verir. Bunu düşünürseniz, başka bir arayüzün IP adresine (örneğin eth0) ping attığınızda tam olarak ne olur: hiçbir paket gönderilmez. Bu kulağa bariz gelebilir, ama ilk başta bir karışıklık kaynağı olabilir (benim içindi).
Ancak bunun TCP veri paketleri için nasıl geçerli olabileceğini görmek zordur.
Belki tcpdump
arayüze farklı bir şekilde bağlanmalıdır?