Linux核心分析

來源:互聯網
上載者:User

核心版本:2.6.34

前面章節介紹過Netfilter的架構,地址見: http://blog.csdn.net/qy532846454/article/details/6605592,本章節介紹的串連跟蹤就是在Netfilter的架構上實現的,連 接跟蹤是實現DNAT,SNAT還有有狀態的防火牆的基礎。它的本質就是記錄一條串連,具體來說只要滿足一來一回兩個過程的都可 以算作串連,因此TCP是,UDP是,部分IGMP/ICMP也是,記錄串連的作用需要結合它的相關應用(NAT等)來理解,不是本文的重點 ,本文主要分析串連跟蹤是如何?的。

回想Netfilter架構中的hook點(下文稱為勾子),這些勾子相當於報文進出協議棧的 關口,報文會在這裡被攔截,然後執行勾子結點的函數,串連跟蹤利用了其中幾個勾子,分別對應於報文在接收、發送和轉寄中 ,如下圖所示:

串連跟蹤正是在上述勾子上註冊了相應函數(在nf_conntrack_l3proto_ipv4_init中被註冊),勾子為ipv4_conntrack_ops, 具體如下:

static struct nf_hook_ops ipv4_conntrack_ops[] __read_mostly = {      {  .hook  = ipv4_conntrack_in,       .owner  = THIS_MODULE,       .pf  = NFPROTO_IPV4,       .hooknum = NF_INET_PRE_ROUTING,       .priority = NF_IP_PRI_CONNTRACK,      },      {       .hook  = ipv4_conntrack_local,       .owner  = THIS_MODULE,       .pf  = NFPROTO_IPV4,       .hooknum = NF_INET_LOCAL_OUT,       .priority = NF_IP_PRI_CONNTRACK,      },      {       .hook  = ipv4_confirm,       .owner  = THIS_MODULE,       .pf  = NFPROTO_IPV4,       .hooknum = NF_INET_POST_ROUTING,       .priority = NF_IP_PRI_CONNTRACK_CONFIRM,      },      {       .hook  = ipv4_confirm,       .owner  = THIS_MODULE,       .pf  = NFPROTO_IPV4,       .hooknum = NF_INET_LOCAL_IN,       .priority = NF_IP_PRI_CONNTRACK_CONFIRM,      },     };

從下面的表格中可以看得更清楚:

開頭說過,串連跟蹤的目的是記錄一條串連的資訊,對應的資料結構就是tuple,它分為正向(tuple)和反向(repl_tuple), 無論TCP還是UDP都是串連跟蹤的目標,當A向B發送一個報文,A收到B的報文時,我們稱一個串連建立,在串連跟蹤中為 ESTABLISHED狀態。特別要注意的是一條串連的資訊對雙方是相同的,無論誰是發起方,兩邊的串連資訊都保持一致,以方向為 例,A發送報文給B,對A來說,它先發送報文,因此A->B是正向,B->A是反向;對B來說,它先收到報文,但同樣A->B 是正向,B->A是反向。

弄清楚這一點後,每條串連都會有下面的資訊相對應

tuple    [sip sport tip tport proto]

UDP的過程

UDP的串連跟蹤的建立實際是TCP的簡化版本,沒有了三向交握過程,只要收到+發送完成,連 接跟蹤也隨之完成。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.