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