嚴(yán)格的說,只能是隧道模式下的ESP才能穿越NAT。 首先需要了解的是IPSEC的作用,即數(shù)據(jù)的機(jī)密性、完整性、認(rèn)證性。機(jī)密性就是保證數(shù)據(jù)包的原始內(nèi)容不被看到;完整性即保證數(shù)據(jù)包的內(nèi)容不會(huì)被修改;認(rèn)證性保證數(shù)據(jù)來自被信任的客戶端。 IPSEC中的封裝格式有2中(AH和ESP), AH在IP數(shù)據(jù)包中插入了一個(gè)包頭,其中包含對(duì)整個(gè)數(shù)據(jù)包內(nèi)容的校驗(yàn)值;ESP用戶加密整個(gè)數(shù)據(jù)包內(nèi)容,同時(shí)也可以對(duì)數(shù)據(jù)包進(jìn)行認(rèn)證。 IPSec有2 種不同的模式:傳輸模式和隧道模式。 一中是傳輸模式,主要用于主機(jī)到主機(jī)之間的直接通信。 另一種是隧道模式主要用于主機(jī)到網(wǎng)關(guān)或網(wǎng)關(guān)到網(wǎng)關(guān)之間。傳輸模式和隧道模式主要在數(shù)據(jù)包封裝時(shí)有所不同。 無論傳輸模式還是隧道模式,AH都會(huì)認(rèn)證整個(gè)數(shù)據(jù)包。并且AH還會(huì)認(rèn)證位于AH頭之前的IP 頭。當(dāng)NAT 設(shè)備修改了IP 頭之后,IPSec 就會(huì)認(rèn)為這是對(duì)數(shù)據(jù)包完整性的破壞,從而丟棄數(shù)據(jù)包。因此AH是不可能和NAT 在一起工作的。 而ESP在傳輸模式時(shí)會(huì)保護(hù)TCP/UDP頭,但是并不保護(hù)IP 頭,因此修改IP
地址并不會(huì)破壞整個(gè)數(shù)據(jù)包的完整性。但是如果數(shù)據(jù)包是TCP/UDP數(shù)據(jù)包,NAT設(shè)備就需要修改數(shù)據(jù)包的校驗(yàn)值,而這個(gè)校驗(yàn)值是被ESP
所保護(hù)的,這樣卻會(huì)導(dǎo)致完整性校驗(yàn)失敗。 所以最終可能和NAT一起工作的只能是隧道模式下的ESP。 |
|