針對收發UDP數據,NAT可分為Full Cone、Restricted Cone、Port Restricted Cone、Symmetric NAT四類,在RFC3489中有定義(http://datatracker.ietf.org/doc/rfc3489/?include_text=1)。
1. Full Cone:所有從相同的內部IP和PORT發出的請求都映射為相同的外部IP和PORT,而后任何外部主機只要發送數據包給NAT的IP和PORT就會被轉發給內部主機。
從圖中可以看到,只要內部主機通過NAT訪問了一次外部主機,在Mapping Table中會增加一條內部IP:Port映射到NAT的端口,那么外部的任何主機都可以通過NAT的IP:PORT將數據發給內部主機。
2. Restricted Cone:所有從相同的內部IP和PORT發出的請求都映射為相同的外部IP和PORT,但只有內部主機曾發送過數據的外部IP才可將數據包通過NAT的IP:PORT發給內部主機。
從圖中可以看到,因為內部主機沒有發過數據包給外部主機B,所以外部主機發到NAT的數據包無法發給內部主機。
3. Port Restricted Cone:和Restricted Cone類似,但是除了IP的限制外增加了PORT的限制,即只有內部主機曾發送過數據的外部IP:PORT才可將數據包通過NAT的IP:PORT發給內部主機。
從圖中可以看到,外部主機1用另一個PORT無法將數據發到內部主機。
4. Symmetric NAT:從內部主機相同的IP和PORT發出的請求,當訪問不同外部IP和PORT時,都會在NAT上創建不同的映射。
上圖中雖然內部IP和PORT相同,但訪問不同的外部IP/PORT對,都會映射為不同的NAT PORT。當外部主機發數據包給內部主機時,也只能使用對應的PORT。