PREROUTING 和 POSTROUTING, SNAT 和 DNAT圖文解析(非常清淅)

NAT (網絡地址轉換) 技術在平時是很多見的,如家庭中在使用路由器共享上網時,一般用的就是 NAT 技術,它可以實現衆多內網 IP 共享一個公網 IP 上網。NAT 的原理 簡單的說就是當內網主機訪問外網時,當內網主機的數據包要通過路由器時,路由器將數據包中的源內網 IP 地址改爲路由器上的公網 IP 地址,同時記錄下該數據包的消息;當外網服務器響應這次由內而外發出的請求或數據交換時,當外網服務器發出的數據包經過路由器時,原本是路由器上的公網 IP 地址被路由器改爲內網 IP 。工作原理如下圖所示:


SNAT 和 DNAT 是 iptables 中使用 NAT 規則相關的的兩個重要概念。如上圖所示,如果內網主機訪問外網而經過路由時,源 IP 會發生改變,這種變更行爲就是 SNAT;反之,當外網的數據經過路由發往內網主機時,數據包中的目的 IP (路由器上的公網 IP) 將修改爲內網 IP,這種變更行爲就是 DNAT 。

與 SNAT 和 DNAT所對應的兩個鏈分別是  POSTROUTINGPREROUTING  



說明:(個人理解)prerouting  和postrouting指的是數據包的流向,如上圖所示postrouting一般指的是發往公網的數據包;prerouting一般指來自公網的數據包!


通常內網到外網是pre,外網到內網是post,但是外還是內只是個相對概念,在一定條件下是可以轉換的。落實到網卡上,對於每個網卡數據流入的時候必然經過pre,數量流出必然經過post

POSTROUTING是源地址轉換,要把你的內網地址轉換成公網地址才能讓你上網。

PREROUTING是目的地址轉換,要把別人的公網IP換成你們內部的IP,才讓訪問到你們內部受防火牆保護的機器

PREROUTING
當外網的數據包進入到內網時,我們需要修改數據包中的公網 IP 爲內網的主機 IP,這種
DNAT 的行爲規則就要在 PREROUTING 鏈裏添加。

POSTROUTING
和 PREROUTING 不同,在執行
SNAT 任務時的行爲規則就添加在 POSTROUTING 鏈中。


轉載自http://blog.csdn.net/xzknet/article/details/51957269

發佈了87 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章