tl;dr
哪麼,具體應該怎麼做呢?
給raw表的prerouting和output鍊設定合适的規則。
以追蹤udp作為例子。
首先,确認哪個日志子產品可用
繼而,加載日志子產品,并且配置之
最後一步,給raw設定規則(可以進一步限制,比如對什麼協定執行追蹤等)
我們具體測試下建議方案的效果。測試拓撲圖如下
我們在虛拟機forwarder中啟動docker,并且将docker的udp端口10370開放出來(其實我們開放的端口不止一個)
預設ubuntu鏡像中沒有我們需要的軟體包,是以,我們做些必要的安裝。
現在啟動echo server
而後,我們在虛拟機forwarder上捕捉進出的網絡包。
而後,我們在虛機trigger上建立到虛機forwarder的連接配接
最後,我們在虛機trigger上分别發送1483位元組、1485位元組和1498位元組的資料。
接下來的工作,就是分析捕捉到的資料了。
進一步,讓我們看下相關的核心日志
注意,執行追蹤後,因為預設加載的nf_conntrack*子產品會有限制,最好重新開機下恢複到改動前狀态。
<a href="http://inai.de/documents/perfect_ruleset.pdf">towards the perfect ruleset</a>
<a href="http://backreference.org/2010/06/11/iptables-debugging/">iptables debugging</a>
<a href="https://serverfault.com/questions/385937/how-to-enable-iptables-trace-target-on-debian-squeeze-6">how to enable iptables trace target on debian squeeze (6)</a>