NAT、防火墙的原理区别和分类
1、NAT
???????NAT是Net Address Translation 的縮寫,從名字也可以看出,它是負責網絡地址轉換的一個協議。通俗的說,它負責把私網內的的IP和端口轉換成公網的IP和端口,也即使我們通常所說的IP地址影射。例如:公司內一般有一個私網,假設為10.1.1.1網段。公司通過一個公網服務器(機器A)接入Internet,此服務器內網IP為10.1.1.1,外網為220.220.1.6。私網內的機器B 10.1.1.102打開自己的88端口想連接公網的一臺WEB服務器C,假設IP為:204.56.43.8,端口為80。過程如下:
????????step1: B (10.1.1.102:88->204.56.43.8:80)將數據包發送給網關A (10.1.1.1)
????????step2: A???將(10.1.1.102:88)數據包的地址更換為服務器外網IP,并分配一個的端口(如何分配端口方法是不同的,以后會詳細的說),假設為200,數據包也就變成了(220.220.1.6:200->204.56.43.8:80),服務器A將數據發送出去
????????step3: C 將響應數據發送給網絡服務器 A (204.56.43.8:80->220.220.1.6:200)
????????step4:??A將C返回的響應數據報的IP地址的目的IP和端口做如下修改:(204.56.43.8:80-> 10.1.1.102:88)然后把數據發送出去
????????step5:??B接收到C的響應數據。
???????這個過程實際上也是NAT的工作過程,在B角度,B完全感受不到自己是在內網,它似乎有在公網一樣的權利,這也就是NAT的優點所在:用同一個IP實現多個用戶的Internet接入。
???????2、防火墻
???????剛讀大學,第一次裝防火墻軟家的時候覺得這東西真***神秘,咋做的呢,呵呵。
???????防火墻是通過管理網絡端口的方法來拒絕和允許網絡連接,這些拒絕或允許的原則由firewall的設計者來指定,并沒有統一的標準,但防火墻大多都遵循以下幾個原則:
???????(1)允許內部向外部發送數據包
???????(2)拒絕一切外部向內部的主動連接
???????(3)允許本地發起的,符合firewall規則的外部數據包穿過firewall
???????在第三條中,firewall的規則通常有以下兩種:1、返回的數據包的源IP必須是內部發起的目的IP。2、返回的數據包的源IP必須是內部發起的目的IP并且返回的數據包的源端口必須是內部發起的目的端口。
???????3、防火墻和NAT
???????很多人把防火墻的概念混為一談,其實NAT就是NAT,它負責IP地址影射。防火墻就是防火墻,它負責數據包的過濾。但為什么會有N多人分不清楚呢?原因很簡單,是因為NAT的功能有了變化。為什么要變換呢?是因為NAT碰到了問題。為什么NAT會碰到問題呢?是因為#·#—……#¥。
???????還是通過上面NAT的來說。假設C向B發送數據的過程中,C的另外一個端口100,也想向B發送數據包,那么當這個包到達A的時候A如何處理呢?過還是不過呢?如果過了,那么從另外一個IP到達A的數據包是否也允許過呢?顯然在網絡安全日益受到威脅的今天,讓這些包通過是危險的。所以NAT決定不讓這些包通過,也就是說NAT有了包過濾功能。于是:
??????firewall:NAT,包過濾是我的事情,你多管什么閑事?(有沒有核武器是我的事,你管得著嗎?)
??????NAT:讓這些包通過不安全,所以我必須過濾這些數據包(伊朗有核武器,是個威脅,我必須干掉它)。
?????firewall:那你是NAT啊你還是防火墻?(那你的主權,人權和和平自由呢?)
?????NAT:(咬牙狀)我是有部分防火墻功能的NAT,你咋地?(我想干啥干啥,你管得找嗎?)
?????firewall:.......(什么東西啊,整個一個雜種,還美呢)
??????(其實,從概念上將,并不能這么說,但是便于理解,也沒有什么深究的必要,就這么著吧)
?????4、NAT分類
?????NAT根據原理可以分成兩類:錐型NAT和對稱NAT
??????(1)錐型NAT。還用上面的例子來說,在錐型NAT中,B的同一個端口去連世界上任何一臺人類計算機的任何端口(日本除外),它在服務器A中得到的外部影射端口都是同一個。也就是說,在服務器A,它只有一個出口,假設為5060,而目的地卻有很多,如果服務器的端口是一個平面,而所有計算機的端口在另外一個平面上的一個圓環之內,并且這兩個面是平行的,那么將這些連寫用線連起來,就構成了一個圓錐。這也就是cone的由來:錐。
??????還記得剛才我們說的帶防火墻功能的NAT,把防火墻功能加到cone類型的NAT中,就產生了三種不同的NAT:
???????1。不對包進行過濾,任何包都可以通過服務器A的5060端口到達B full cone
???????2。只要IP符合規則就可以到達B restrict cone
???????3。IP和端口都要符合規才能到達B port restrict cone
???????(說明:關于restrict cone,port restrict cone以前有位專家級別的人物說我弄反了,我也懶得去查,因為我有自己的理解,我覺得如果我理解錯了,那么這個命名就有問題。)
??????(2)對稱NAT
???????在對稱NAT中,當B的同一個端口訪問外部的IPC的不同端口的時候,A機器都會打開一個不同的外部端口來連接這C的不同端口。從C機器的端口來說,每一個端口在機器A中都有一個端口與之對應,這也就是對稱NAT名稱的由來:對稱。
???????對稱NAT是很霸道的NAT,當數據包到達A的時候,必須IP和PORT都符合規則,數據包才允許通過。不仔細考慮,你可能覺得沒什么,和port restrict cone一樣啊,沒什么特別,可是,你再和NAT的端口對稱聯系起來,這個東西就很恐怖了。因為它意味著:一旦一個端口在A打開了,那么這個連接也就確立了B:PORT->A:port->C:port的連接,無論何重情況下,這個連接都不可能被第三者使用。也就是說,一旦A上產生了一個端口,那么第一個知道這個端口的人一定會立刻擁有這個端口的終生使用權,而別人都沒辦法知道或者使用(除非A或者C告訴別人,但是告訴了也沒用,你也使用不了,因為這個連接對別人來說,已經死了)。這也就是STUN對對稱NAT無能為力的原因。因為STUN一旦檢測到這個端口,那么它就擁有了這個端口的永久使用權,并且沒有辦法轉讓(這要是PLMM多好啊,誰發現是誰的,真好!公產主義來了么?天亮了,起床了),而這不是STUN想要的。
??????以上也就構成了RFC中的四種NAT類型。希望我說的你都理解了(理解了就頂吧,呵呵)。
---------------------?
作者:wcl0715?
來源:CSDN?
原文:https://blog.csdn.net/wcl0715/article/details/676070?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的NAT、防火墙的原理区别和分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSH和SFTP服务分离
- 下一篇: 数据结构与算法:1.链表结构