在本書(shū)的開(kāi)頭我們討論了傳統(tǒng)。越來(lái)越多的事物發(fā)生了改變,而越來(lái)越多的人希望事物保持原貌。它僅是科技演變的一個(gè)部分。我們的汽車(chē)仍然需要一個(gè)里程表;我們喜愛(ài)的網(wǎng)站的圖片看上去還是老式風(fēng)格的按鈕開(kāi)關(guān)。我們作為社會(huì)的一員,座右銘: "如果東西沒(méi)被損壞的話,那就不要修補(bǔ)它!" 伴隨我們一生。同樣的道理也可以應(yīng)用在一些看起來(lái)相對(duì)現(xiàn)代的事情上,例如"我們?nèi)绾潍@得網(wǎng)絡(luò)"。我們大部分人還是對(duì)如何通過(guò)我們的一些小創(chuàng)新發(fā)明來(lái)訪問(wèn)網(wǎng)絡(luò)這些細(xì)節(jié)毫不知情。在這個(gè)精彩的VOIP世界中,當(dāng)我們面對(duì)令人擔(dān)心的NAT問(wèn)題(網(wǎng)絡(luò)地址轉(zhuǎn)換)來(lái)臨時(shí)之前,我們可以冒險(xiǎn)嘗試一下這個(gè)離我們不遠(yuǎn)的挑戰(zhàn)。
在這一章節(jié),我們將討論:
·NAT 簡(jiǎn)要介紹,包括一個(gè)歷史簡(jiǎn)介
·四個(gè)NAT陷阱
·在FreeSWITCH 配置設(shè)置來(lái)幫助克服NAT
·排查技巧
NAT簡(jiǎn)要介紹
給一個(gè)根本不關(guān)心技術(shù)術(shù)語(yǔ)的人介紹NAT問(wèn)題,一個(gè)好的辦法就是采用一個(gè)類(lèi)似的方法來(lái)做介紹。想想一個(gè)巨大的報(bào)告大樓和和它的郵件收發(fā)室。一個(gè)在第十層工作的員工給你寄一個(gè)包裹,這個(gè)員工需要把包裹放到第一層的郵件收發(fā)室。這個(gè)包裹被投送到郵局,然后再轉(zhuǎn)寄到你的住處。 在包裹上標(biāo)明的寄回地址實(shí)際上是整棟辦公大樓的地址,不是那個(gè)第十層的小辦公間的地址,F(xiàn)在你計(jì)劃把這個(gè)包裹再寄回去,你把這個(gè)包裹再投送到郵局,郵局再次把這個(gè)包裹投送到這個(gè)辦公大樓,在郵件收發(fā)室的員工必須找出這個(gè)包裹需要分發(fā)的具體辦公室地址,通過(guò)你的名字和在本大樓的辦公室號(hào)碼地址匹配查詢(xún),然后找到第十層的員工,最后把這個(gè)包裹發(fā)送到第十層的員工辦公室。這里,郵件收發(fā)室就像一個(gè)NAT路由器,因?yàn)猷]件收發(fā)室代理了郵局和辦公大樓之間的郵件來(lái)往。辦公室就像一個(gè)內(nèi)網(wǎng)地址,因?yàn)樗鼈儾荒苤苯荧@得或訪問(wèn)這些郵件。想象一下這樣的場(chǎng)景,如果這個(gè)辦公室投遞的信息非常散亂,沒(méi)有在包裹上標(biāo)明辦公室名稱(chēng),當(dāng)你寄回這個(gè)包裹時(shí),郵件收發(fā)室的員工根本沒(méi)有辦法知道是哪個(gè)辦公室寄出的包裹。這個(gè)就是一個(gè)NAT問(wèn)題,包裹可能會(huì)丟失,就像你的呼叫一樣。也許你可以收到這個(gè)包裹,同時(shí)也注意到包裹上沒(méi)有標(biāo)明辦公室名稱(chēng)或號(hào)碼,但是因?yàn)槟阏诘却@個(gè)包裹,可能你清楚是哪一個(gè)辦公室寄出來(lái)的包裹,當(dāng)你寄回到時(shí)候,你在包裹上做了一個(gè)辦公室的標(biāo)注。這個(gè)功能就是你創(chuàng)建的ANTI-NAT 功能。
當(dāng)談到網(wǎng)絡(luò)時(shí),NAT是一個(gè)技術(shù)話題,當(dāng)整個(gè)內(nèi)網(wǎng)(網(wǎng)絡(luò)不能直接訪問(wèn)外網(wǎng)) 連接到一個(gè)單獨(dú)的設(shè)備,這個(gè)設(shè)備可以訪問(wèn)外網(wǎng),并且有一個(gè)單獨(dú)的公網(wǎng)IP地址,通過(guò)這樣的方式對(duì)內(nèi)網(wǎng)提供網(wǎng)絡(luò)連接。因?yàn)槲覀兡壳暗腎P地址資源非常緊張,因此主要的目的是降低對(duì)公網(wǎng)IP數(shù)量的要求。到現(xiàn)在我們寫(xiě)這本書(shū)的時(shí)候,已經(jīng)使用了四百萬(wàn)個(gè)IP地址。
把所有的內(nèi)網(wǎng)設(shè)備都放置在NAT背后可以保護(hù)用戶(hù)計(jì)算機(jī)設(shè)備和其他的設(shè)備不受攻擊因?yàn)檫@些設(shè)備對(duì)于外網(wǎng)來(lái)說(shuō)是不可見(jiàn)的。專(zhuān)家認(rèn)為這不是最終的解決安全方案,因?yàn)槿匀挥幸恍┓椒ǹ梢酝{到NAT背后的設(shè)備安全,但是這種方法可以作為一個(gè)額外的保護(hù),并且當(dāng)配合其他的安全措施時(shí),可以提高我們的對(duì)內(nèi)網(wǎng)安全的保護(hù)。另外,用戶(hù)將在第十三章VoIP安全中了解更多細(xì)節(jié)。
了解NAT的演變
自從網(wǎng)絡(luò)技術(shù)普及以后,IPv4 地址的需求一直在增加。當(dāng)需求增加時(shí),地址池中的地址資源已經(jīng)耗盡,出現(xiàn)了IPv4 地址的短缺。目前最受歡迎的解決地址短缺的兩個(gè)主要解決辦法是- NAT和IPv6。
NAT 已經(jīng)變成了一種非常受歡迎的方法,通過(guò)采用公網(wǎng)IP地址子集,利用他們來(lái)覆蓋一個(gè)網(wǎng)內(nèi)地大量設(shè)備,通過(guò)分配不同的內(nèi)網(wǎng)地址來(lái)支持這些設(shè)備。NAT開(kāi)始使用是在二十世紀(jì)90年代左右,當(dāng)時(shí)是為了解決IP 地址的短缺問(wèn)題直到現(xiàn)在IPv6已經(jīng)開(kāi)始使用,因?yàn)檫@種方式比較受歡迎,人們還是繼續(xù)使用這種方式。與此同時(shí),系統(tǒng)管理員還要被迫接受NAT的一些傳統(tǒng)架構(gòu),并且因?yàn)樗牧餍形覀冞要接受這種方式來(lái)支持我們的軟件和其他設(shè)備。
新標(biāo)準(zhǔn)IPv6可以解決IP地址短缺的問(wèn)題,它添加了很多公網(wǎng)IP地址,我們有上萬(wàn)億的IP地址,這些地址可以覆蓋地球表面的每一個(gè)平方英寸的地方。我們可以設(shè)定一個(gè)IP地址段為我們目前所知道的整個(gè)網(wǎng)絡(luò)世界,對(duì)每一個(gè)在這個(gè)星球的生命,即使這樣設(shè)置地址資源也不會(huì)對(duì)整個(gè)IPv6 地址池有任何不利的影響。IPv6 規(guī)范在1998年發(fā)布,使用的勢(shì)頭真正慢慢開(kāi)始增長(zhǎng)。IPv6相對(duì)于已經(jīng)從二十世紀(jì)70年代開(kāi)始廣泛使用的IPv4,它目前還落后于IPv4。很有可能,即使我們?nèi)坎捎昧薎Pv6,NAT問(wèn)題的仍然會(huì)伴隨我們很長(zhǎng)一段時(shí)間。
。ㄒ苍S如果用戶(hù)一直考慮這個(gè)問(wèn)題,F(xiàn)reeSWITCH已經(jīng)支持了在IPv6 網(wǎng)絡(luò)環(huán)境下的SIP和RTP。更多關(guān)于這個(gè)話題的討論,請(qǐng)?jiān)L問(wèn):http://wiki.freeswitch.org.)
對(duì)于IP通信世界中的用戶(hù),NAT是一個(gè)盡人皆知的不雅的詞匯(至少經(jīng)常在一些語(yǔ)言交流中會(huì)伴隨出現(xiàn)不雅的用詞)。因?yàn)楫?dāng)用戶(hù)遇到NAT問(wèn)題時(shí),常常被搞的抓耳撓腮。用戶(hù)已經(jīng)對(duì)IP網(wǎng)絡(luò)環(huán)境有了一定的了解,并且用戶(hù)可以輕松找到各種介紹關(guān)于NAT的文檔,我們盡量省略了IP網(wǎng)絡(luò)的細(xì)節(jié)。用戶(hù)現(xiàn)在需要做到事情就是對(duì)NAT陷阱有足夠的了解,這樣可以為用戶(hù)即使大量的時(shí)間,否則你可能真的要用頭撞墻或讓你愁的拽自己的頭發(fā)了。本章的目標(biāo)是對(duì)用戶(hù)講述如何通過(guò)使用FreeSWITCH的ANTI-NAT功能來(lái)成功地航行于NAT的危險(xiǎn)水域。祝你好運(yùn)!我們所有的人都在支持你!
處理NAT問(wèn)題的關(guān)鍵是因?yàn)樵O(shè)備(電話)一般都在NAT背后,并且VOIP網(wǎng)絡(luò)對(duì)于公共網(wǎng)絡(luò)來(lái)說(shuō)是不可見(jiàn)的,所以當(dāng)用戶(hù)呼叫這個(gè)設(shè)備時(shí),非常困難連接到這個(gè)相應(yīng)的設(shè)備。另外一個(gè)比較嚴(yán)重的問(wèn)題是一些協(xié)議,例如SIP,當(dāng)部署在NAT環(huán)境中時(shí),協(xié)議可能被破壞。如果用戶(hù)覺(jué)得整個(gè)事情讓你徹底迷惑時(shí),放松一下,事實(shí)上,我們已經(jīng)為用戶(hù)簡(jiǎn)化了NAT的設(shè)置,F(xiàn)在貌似看起來(lái)讓人發(fā)瘋,但是以前的環(huán)境可能更加糟糕。
老實(shí)說(shuō),F(xiàn)reeSWITCH 開(kāi)發(fā)人員最初對(duì)NAT 其他的立場(chǎng)是, "不是我們的問(wèn)題!"在理想世界下,每個(gè)在NAT防火墻背后的設(shè)備都應(yīng)該非常了解它們的環(huán)境,并且可以成功解決自己的問(wèn)題。不幸的是,我們沒(méi)有生活在那個(gè)理想的世界(當(dāng)然,如果我們生活在一個(gè)理想的世界,我們都沒(méi)有工作,因?yàn)闆](méi)有任何問(wèn)題需要我們解決)。所以,我們決定, "好吧,我們?cè)囋嚕?quot; 我們從用戶(hù)中學(xué)習(xí),他們使用的各種各樣的設(shè)備來(lái)配合FreeSWITCH工作,但是這些設(shè)備完全沒(méi)有任何辦法來(lái)應(yīng)對(duì)NAT問(wèn)題。不久,我們開(kāi)始了這個(gè)意義深遠(yuǎn)的任務(wù),盡管這些設(shè)備本身還有很多缺陷,我們還是希望通過(guò)開(kāi)發(fā)一種技術(shù)來(lái)支持這些設(shè)備。
NAT是一個(gè)非常難纏的對(duì)手,軟弱的人是沒(méi)有機(jī)會(huì)應(yīng)對(duì)的。
NAT的四個(gè)陷阱
有四個(gè)基本的NAT陷阱,我們每個(gè)人都需要學(xué)習(xí)。了解了這些陷阱,用戶(hù)學(xué)習(xí)到了處理NAT場(chǎng)景的技巧,就不會(huì)面對(duì)太多的疑問(wèn):
·NAT 可以在那些用戶(hù)自己都不知道的地方。不一定非要涉及到網(wǎng)絡(luò)(Internet)。
·任何兩種解決NAT的技術(shù)在一起使用,會(huì)導(dǎo)致互相之間沖突。
·一些設(shè)備使用SIP ALG (Application Layer Gateway) 來(lái)戰(zhàn)勝NAT問(wèn)題。
·NAT糾正技術(shù)可以錯(cuò)誤地定位一個(gè)環(huán)境,可能使得環(huán)境變得更加糟糕。
盡量熟悉這些陷阱。我們會(huì)經(jīng)常討論這些問(wèn)題,這些問(wèn)題會(huì)貫穿整個(gè)章節(jié)。讓我們現(xiàn)在詳細(xì)討論一下這些細(xì)節(jié):
NAT 可以在任何用戶(hù)不知道的地方。不一定涉及網(wǎng)絡(luò)。
如果用戶(hù)正在使用家庭網(wǎng)絡(luò)服務(wù),或商業(yè)級(jí)的服務(wù),他們可能使用NAT來(lái)管理他們的客戶(hù),把客戶(hù)端服務(wù)設(shè)置在一個(gè)分離的網(wǎng)絡(luò)環(huán)境中,然后在進(jìn)行一個(gè)網(wǎng)絡(luò)地址轉(zhuǎn)換,轉(zhuǎn)換到其他的網(wǎng)絡(luò)分段。在用戶(hù)設(shè)備和目的地之間這樣的情況不僅僅發(fā)生一次可能多次發(fā)生用戶(hù)不能控制這樣的事情發(fā)生。對(duì)很多使用VOIP的用戶(hù)來(lái)說(shuō),這樣的情況會(huì)引起很多問(wèn)題。大部分的VoIP 協(xié)議僅支持基本的NAT處理功能而且經(jīng)常出現(xiàn)問(wèn)題。這就是很多家庭用戶(hù)從家里面使用VOIP時(shí)首先面對(duì)的問(wèn)題。NAT可以出現(xiàn)在一個(gè)內(nèi)網(wǎng)地址訪問(wèn)多個(gè)其他內(nèi)網(wǎng)地址無(wú)需連接外網(wǎng)網(wǎng)絡(luò)服務(wù)的環(huán)境中。對(duì)于NAT,訪問(wèn)網(wǎng)絡(luò)是最普遍的使用方法,但是可以在內(nèi)部網(wǎng)絡(luò)中劃分一個(gè)獨(dú)立的網(wǎng)絡(luò)來(lái)獲得網(wǎng)絡(luò)訪問(wèn)。如果用戶(hù)詢(xún)問(wèn)鄰居VOIP專(zhuān)家在線問(wèn)題,他可能判斷是一個(gè)NAT問(wèn)題,不一定是因?yàn)槟闶褂脹](méi)有訪問(wèn)網(wǎng)絡(luò),或可能用戶(hù)自己也不清楚是否存在NAT問(wèn)題。
未完待續(xù)······