在我們的防火牆場景(網絡轉換)中也有類似的效果,只不過我們是基於網絡數據包的轉發來實現的,這兩種場景分別是:SNAT、DNAT和PANT
地址轉換:這種環境和網絡防火牆的基本區別在於,雖然內網和外網主機知道對方的路由器地址,但是彼此間是不能正常通信,他們是基於數據包的地址轉換來實現通信的效果。
常用的兩種場景:
1.內部客戶端向外部服務端請求互聯網服務 2.內部客戶服務端向外部用戶提供的互聯網服務
SNAT:源地址轉換,路由器接收到數據包后,經過路由決策后,才知道發往哪個網段,這個操作涉及到postrouting鏈的操作,我們稱這個動作為SNAT。
DNAT:目標地址轉換,路由器在接收到數據包后,經過路由決策錢,就知道發往哪個網段,這個操作涉及到了prerouting鏈的操作,我們稱這個動作為DNAT。
PNAT:端口地址轉換,一種特殊的DNAT,將多個內部地址服務器映射為同一個全局IP地址上的不同端口對應的服務,這種是以同一IP多端口的形式對外提供多種服務,我們稱之為PNAT。
場景一:內網的客戶端,知道外網web服務器的地址,客戶端通過公司路由器的外網ip地址來實現訪問web服務器的效果。
路由器和兩側主機都可以進行正常通信,路由器為了實現內網主機(1.1.1.4)與外網web主機(10.10.10.2)主機的通信,它接收內網主機發送過來的數據包,然后將數據包的源IP地址(1.1.1.4)轉換成路由器的外網IP地址(10.10.10.1)
然后就可以與外網web主機實現自由通信了。
場景二:外網的客戶端訪問某公司的內網web服務器,雖然不知道內網web服務器的地址,但是知道某公司的所有web服務器都是以路由器的外網ip地址對外提供服務的。
客戶端向外網路由器的外網IP地址(1.1.1.1)發起web請求,路由器接收到該信息后,轉交給后端的真實的web主機處理,當web主機(10.10.10.2)響應報文的時候,由於不能和外網主機(1.1.1.4)進行通信,而且公司為了隱藏內網的主機(10.10.10.2)信息。
公司的路由器主機就將該數據包的源地址進行隱藏,以路由器的外網IP(1.1.1.1)發出去,這樣客戶端就可以收到響應報文了。