背景:
在IPv4的網絡中,IP地址是緊缺資源,為了能讓用戶上網,我們往往要使用PAT(Port Address Translation)端口地址轉換技術(也稱為端口多路復用技術)。這種技術可以使用一個IP地址被多個會話所復用。與NAT(Network Address Ttanslation)技術只對IP地址做轉換不同,PAT技術為了區分源自於不同主機的會話,不僅僅轉換源IP地址,而且還會轉換這次會話的源端口,把它轉換成為一個未被使用的大於1023的端口號。從互聯網返回的數據包,通過不同的目的端口號來區分不同的會話。實現一個地址的多會話復用。
有鑒於此,IPSec VPN通道的中間如果經過了PAT轉換就會產生問題。
實驗環境搭建:
本實驗一共需要使用2台路由器,1台防火牆。由左到右分別模擬公司中心節點出口路由器(site1)、互聯網防火牆(PATdevice)和公司分支節點出口路由器(site2)。其中site1的環回口(loopback0)模擬公司中心節點內部網絡,site2的環回口(loopback0)模擬公司分支節點內部網絡。IP地址規划如圖所示。
該拓撲是一個lan-to-lan全網接入的VPN拓撲,site1和site2是本次IPSec VPN實驗的加密設備。site2位於PATdevice內部,使用的是私有網絡地址。為了能使site2訪問互聯網,並且與site1建立IPSec VPN,我們在PATdevice上配置了PAT地址轉換,把內部192.168.1.0/24網絡PAT轉換到PATdevice的E0口地址(100.100.100.2/24)。
加密的感興趣的分別為site1身后的10.10.10.0/24網絡和site2身后的10.10.20.0/24網絡之間的流量。
實驗結果:
隧道兩端可以正常通信
實驗分析:
PAT不僅僅要轉換源IP地址,還要轉換傳輸層(四層)源端口號。IPSec VPN用的ESP是一個三層技術,沒有傳輸層頭部,自然也就沒有傳輸層端口號。那么按照這個原理推理下來此VPN隧道應該不能建立成功才對,可是實驗為什么可以通信呢?
原因就在於中間的PAT設備開啟了NAT-T技術!
NAT-T技術介紹:
NAT-T技術解決問題的思路其實很簡單。如下圖所示,這項技術在原ESP頭部和外層IP頭部之間,插入了一個UDP/4500的頭部。使得PAT設備按照處理一個普通UDP數據包的方式對它進行處理。有個NAT-T技術的協助,ESP數據包就能夠穿越PAT設備了。
注: 默認情況下主流的一些的防火牆和路由器都自動開啟了NAT-T功能
提示:有運營骨干網安全設備的小伙伴一定要注意了,一定要記得放行UDP的4500端口哦,萬一兩端有人建立有穿越PAT的IPSec VPN呢。