TCP/IP之胡說八道NAT

  1. 網絡早期

    • 早期的網絡硬件軟件和協議是由來自五湖四海的學者一起研究討論的。跟linux類似。
    • 早期的時候都想着怎麼設計,先實現嘛,所以沒有考慮過安全問題,和抗攻擊問題。也沒什麼人對網絡攻擊有興趣。
    • 到了上世紀80年代末,90年代初,網絡廣泛使用,收穫了大量多的用戶。這時候通訊就不得不考慮安全問題了。中間經過了多少臺機器什麼機器不知道,很容易被篡改攻擊嘛。
    • 爲了安全問題就有了防火牆這樣一個需求了。防火牆出現的主要原因還是使用網絡的設備抗攻擊能力不強,所以就找個大哥防火牆來一個人扛住所有的攻擊。建了一個牆嘛,fire wall吸引火力的牆。
    • 牆內的系統內,各種各樣,windows,linux,unix,各種各樣的無系統的硬件,各種各樣的老弱病殘,自身系統和軟件的漏洞。很容易被攻擊,不可能都修復吧。有的系統可能開發者都不更新,或者是解散了。然後就需要一個專門來吸引火力的軟件或硬件
    • 防火牆是一個過濾包的網絡設備,可以是四層操作系統,底層硬件接口抓包,應用層軟件分析包,看看哪些放行哪些該丟掉。放行的還要轉發,轉發就是路由器或代理的事情了。所以防火牆是一個路由設備或者是代理設備。

    • 安全問題解決了,但是隨着使用的人越來越多,IP又不夠了呀,有得解決IP枯竭的問題。提高現有IP的利用率。如何分配和使用IP就成了新的問題。
    • 研究得出一個解決的策略就是NATNetwork Address Translation:網絡地址翻譯軟件,提高IP的利用率。
    • 怎麼提升呢?傳輸層協議不是有一個端口嗎,端口65535,那麼多一臺主機又用不完,多個人一起用咯。這樣IPv4就多出了2^(32+16)-2^32次方個可用電腦(如果一個電腦使用一個端口的話,當然可能,但是還是比之前一臺電腦一個要好的多吧。)。這樣做的代價就是,電腦使用的IP不再是全球唯一了。現在公網固定IP那麼貴,一個人用一個,想peach?
    • 具體的就是,路由器一個公網IP,路由器內部建立一個子網,網絡中的所有的設備的發送的包的源IP都改成當前路由器的公網IP,然後再發出去。但是端口號會改變。怎麼說內就是用映射來管理。
    • 這樣結構的一張映射表。
      在這裏插入圖片描述
      出去要改IP和端口,回來再通過IP端口和協議到表中查找,修改回來。神不知鬼不覺。不過同一個網絡的主機百度自己的IP會發現是一樣的。
    • 現在NAT+防火牆這種模型在大型企業到小型個人都得到了廣泛的使用。現在幾乎處處都是。
  2. 防火牆

    • 主要任務就是包過濾
    • 主要有兩種防火牆,包過濾防火牆和代理防火牆
      包過濾防火牆發生在IP層,這種就像是路由器。
      代理防火牆發生在傳輸層和應用層,針對某種傳輸協議。這種就像是VPN。
  3. 包過濾防火牆

    • 設置規則,放行或者攔截某些數據包
    • 針對IP層的過濾:黑白名單
    • 針對傳輸層的過濾:只准訪問某些端口,以外的都丟掉。
    • 針對IP層的ICMP的嗅探
    • 針對內容的關鍵字過濾
      • 無狀態

        以一個包爲單位進行過濾,可能對IP協議以上的數據進行檢測。
      • 有狀態

        以UDP完整報文,TCP流爲單位進行,何種處理起來比較複雜。
        比如UDP惡意的錯誤數據,還有TCP的髒話檢測呀啥的,等等等等。
    • 一種典型的包過濾是DMZ模型
  4. 代理防火牆

    主要是應用層,有的人認爲這種比較安全。也有人認爲這種比較複雜,針對每一種協議要實現對應協議的代理服務細節。
  5. NAT

    早期主要目的用來應對IP資源枯竭以及提高路由的可擴展性。路由的可擴展性後來被另一種策略CIDR解決了。
    當然還有一種是說法是爲了延遲IPv6的推廣,IPv6要難一些?
    一個比較明顯的確定就是,外網不能主動連接NAT內部的主機
    • 首先NAT是一個面向連接的,一個連接一個NAT session,當鏈接斷開或者是過期就會去掉NAT session
    • 那麼爲什麼外部不能訪問呢,因爲NAT技術是以內部發起請求爲準,內部發起了請求才會創建一個Session,如果不創建就沒有,那麼非法的那種肯定是被丟棄的。
    • 當然NAT也提供了一種靜態映射的方式來允許外部訪問某一個,這種需要管理員配置。
    • NATNAPT
      前者是IP之間動態映射,後者是針對端口的,常常使用的也是後者。
      在這裏插入圖片描述
      大概的可以看到兩者的差別,前者是端口IP不變的映射,後者是端口會變,後者IP利用率更高。兩者的針對性不同,一個是針對端口,一個是針對IP,結合起來使用還是可以的。比如一個公司有一個網段的IP,那麼NAT就可以有用了。但是針對某個寢室或者可能就只需要NAPT了。兩者針對不同,都是提高路由和IP的利用率。

亂講的,僅供參考。未完待續。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章