天天看點

系統診斷小技巧(7):利用Iptables進行排查和診斷的簡易方案

tl;dr

系統診斷小技巧(7):利用Iptables進行排查和診斷的簡易方案

哪麼,具體應該怎麼做呢?

給raw表的prerouting和output鍊設定合适的規則。

以追蹤udp作為例子。

首先,确認哪個日志子產品可用

繼而,加載日志子產品,并且配置之

最後一步,給raw設定規則(可以進一步限制,比如對什麼協定執行追蹤等)

我們具體測試下建議方案的效果。測試拓撲圖如下

系統診斷小技巧(7):利用Iptables進行排查和診斷的簡易方案

我們在虛拟機forwarder中啟動docker,并且将docker的udp端口10370開放出來(其實我們開放的端口不止一個)

預設ubuntu鏡像中沒有我們需要的軟體包,是以,我們做些必要的安裝。

現在啟動echo server

而後,我們在虛拟機forwarder上捕捉進出的網絡包。

而後,我們在虛機trigger上建立到虛機forwarder的連接配接

最後,我們在虛機trigger上分别發送1483位元組、1485位元組和1498位元組的資料。

接下來的工作,就是分析捕捉到的資料了。

系統診斷小技巧(7):利用Iptables進行排查和診斷的簡易方案

進一步,讓我們看下相關的核心日志

注意,執行追蹤後,因為預設加載的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>