Saya memiliki masalah jaringan di mana frame dengan MAC sumber yang cocok dengan salah satu MAC sumber host saya tiba di host - MAC duplikat yang jelas, atau loop, atau masalah L2 lainnya.
Saya percaya ini adalah situasinya karena tabel MAC (CAM tables) dari linux linux saya mendaftarkan MAC lokal (untuk mesin virtual yang dihosting) sebagai port upstream, dan log kernel menunjukkan kesalahan:
bridgename: received packet on bond0.2222 with own address as source address
Saya ingin mendapatkan detail lebih lanjut tentang paket / bingkai "nakal" ini, tapi saya tidak tahu bagaimana cara membidiknya. Dengan tcpdump Anda dapat memfilter pada sumber MAC tertentu ('eter src MAC'), tetapi ini didasarkan pada byte dalam bingkai - bukan apakah frame itu "dikirim" versus "diterima dalam". Kami biasanya menganggap frame dengan sumber kami MAC berarti kami mengirimkannya, tetapi jika frame duplikat diterima, isinya akan terlihat persis sama dengan filter.
Bagaimana kita bisa mengamati apakah frame diterima versus ditransmisikan dalam paket capture?
tcpdump -i <interface> inbound
(atau "keluar") berfungsi?tcpdump -L
untuk melihat antarmuka yang didukung,ngrep -d dev
Jawaban:
Gunakan
--direction
opsi untuk tcpdump:sumber
tcpdump
halaman manual di Ubuntu 14.04, dan ada pilihan dengan deskripsi yang sama persis ada, tetapi disebut-P
bukan-Q
(dan formulir panjang tidak disebutkan).Dengan iptables, Anda memiliki 'rantai' berbeda untuk paket masuk dan keluar. Dari halaman manual iptables (8):
iptables dapat melakukan logging (-l), yang mungkin menunjukkan apa yang Anda butuhkan. Mungkin juga dapat meneruskan salinan paket ke antarmuka untuk masuk dengan alat lain, tapi saya belum punya alasan untuk melakukan itu.
sumber