提到網(wǎng)工,你很難不想到路由器和交換機(jī)。在許多文章里,我都圍繞這兩個(gè)設(shè)備展開討論過(guò)。
今天想聊聊關(guān)于路由器里所涉及的技術(shù)。
路由器廣泛應(yīng)用于各行各業(yè),成為實(shí)現(xiàn)各種骨干網(wǎng)內(nèi)部連接、骨干網(wǎng)間互聯(lián)和骨干網(wǎng)與互聯(lián)網(wǎng)互聯(lián)互通業(yè)務(wù)的超級(jí)主力軍。
IT行業(yè)里,從運(yùn)維者到架構(gòu)師都在兢兢業(yè)業(yè)的工作,讓路由器們以最佳狀態(tài)更可靠、更安全、更高效地運(yùn)行。
與國(guó)內(nèi)很多跨國(guó)公司不同,華為是一家以技術(shù)主導(dǎo)型的企業(yè)。以通信設(shè)備起家的華為,路由器中有哪些黑科技?
分四個(gè)技術(shù)點(diǎn),和你聊聊。
01
Basic NAT
NAT是路由器的一項(xiàng)非常重要,且應(yīng)用非常廣泛的技術(shù)。
Basic NAT方式屬于一對(duì)一的地址轉(zhuǎn)換,但要注意它不是靜態(tài)的一對(duì)一轉(zhuǎn)換,而是動(dòng)態(tài)的。
在這種轉(zhuǎn)換方式下,在內(nèi)網(wǎng)用戶向公網(wǎng)發(fā)起連起請(qǐng)求時(shí),請(qǐng)求報(bào)文中的私網(wǎng)IP地址,就會(huì)通過(guò)事先準(zhǔn)備好的公網(wǎng)IP地址池動(dòng)態(tài)地建立私網(wǎng)IP地址與公網(wǎng)IP地址的NAT映射表項(xiàng),并利用所映射的公網(wǎng)IP地址將報(bào)文中的源IP地址(也就是內(nèi)網(wǎng)用戶主機(jī)的私網(wǎng)IP地址)進(jìn)行替換。
但只轉(zhuǎn)換IP地址,而不處理TCP/UDP協(xié)議的端口號(hào)。
且一個(gè)公網(wǎng)IP地址不能同時(shí)被多個(gè)私網(wǎng)IP地址映射,然后,再送達(dá)給外網(wǎng)的目的主機(jī)。
當(dāng)外網(wǎng)主機(jī)收到請(qǐng)求報(bào)文后進(jìn)行響應(yīng)時(shí),響應(yīng)報(bào)文到達(dá)NAT設(shè)備后,又將依據(jù)前面請(qǐng)求報(bào)文所建立的私網(wǎng)IP地址,與公網(wǎng)IP地址的映射關(guān)系,反向?qū)?bào)文中的目的IP地址(為內(nèi)部主機(jī)私網(wǎng)IP地址映射后的公網(wǎng)IP地址)替換成對(duì)應(yīng)的私網(wǎng)IP地址,然后再送達(dá)給內(nèi)部源主機(jī)。
需先要在Router上創(chuàng)建公網(wǎng)地址池,才可實(shí)現(xiàn)Basic NAT的運(yùn)轉(zhuǎn)。
Basic NAT中的請(qǐng)求報(bào)文轉(zhuǎn)換的僅是其中的源IP地址(目的IP地址不變),即僅需關(guān)心源IP地址。
而響應(yīng)報(bào)文轉(zhuǎn)換的僅是其中的目的IP地址(源IP地址不變),即僅需關(guān)心目的IP地址。兩個(gè)方向所轉(zhuǎn)換的IP地址是相反的。
02
NAPT
由于Basic NAT這種一對(duì)一的轉(zhuǎn)換方式并未實(shí)現(xiàn)公網(wǎng)地址的復(fù)用,不能有效解決IP地址短缺的問(wèn)題,因此在實(shí)際應(yīng)用中并不常用。
而NAPT可以實(shí)現(xiàn)并發(fā)的地址轉(zhuǎn)換,允許多個(gè)內(nèi)部地址映射到同一個(gè)公有地址上,因此也可以稱為“多對(duì)一地址轉(zhuǎn)換”或地址復(fù)用。
NAPT使用“IP地址+端口號(hào)”的形式進(jìn)行轉(zhuǎn)換,相當(dāng)于增加了一個(gè)變量,最終可以實(shí)現(xiàn)使多個(gè)私網(wǎng)用戶可共用一個(gè)公網(wǎng)IP地址訪問(wèn)外網(wǎng)。
需先在Router上創(chuàng)建好公網(wǎng)地址池,才可進(jìn)行NAPT的運(yùn)轉(zhuǎn)。
請(qǐng)求報(bào)文中轉(zhuǎn)換的僅是源IP地址和源端口號(hào)(目的IP地址和目的端口號(hào)不變),即僅需關(guān)心源IP地址和源端口號(hào)。
而響應(yīng)報(bào)文中轉(zhuǎn)換的是目的IP地址和目的端口號(hào)(源IP地址和源端口號(hào)不變),即僅需關(guān)心目的IP地址和目的端口號(hào)。
不同私網(wǎng)主機(jī)可以轉(zhuǎn)換成同一個(gè)公網(wǎng)IP地址,但轉(zhuǎn)換后的端口號(hào)必須不一樣。
03
Easy IP
Easy IP實(shí)現(xiàn)原理與NAPT轉(zhuǎn)換類似,可以算是NAPT的一種特例。
不同的是,Easy IP方式可以實(shí)現(xiàn)自動(dòng)根據(jù)路由器上WAN接口的公網(wǎng)IP地址,實(shí)現(xiàn)與私網(wǎng)IP地址之間的映射(無(wú)需創(chuàng)建公網(wǎng)地址池)。
Easy IP主要應(yīng)用于通過(guò)路由器WAN接口IP地址作為要被映射的公網(wǎng)IP地址的情形,特別適合小型局域網(wǎng)接入Internet的情況。
這里的小型局域網(wǎng)主要指中小型網(wǎng)吧、小型辦公室等環(huán)境。
通常,這種環(huán)境的內(nèi)部主機(jī)較少、出接口通過(guò)撥號(hào)方式獲得臨時(shí)(或固定)公網(wǎng)IP地址以供內(nèi)部主機(jī)訪問(wèn)Internet。
Easy IP運(yùn)轉(zhuǎn)的具體過(guò)程如下:
假設(shè)私網(wǎng)中的Host A主機(jī)要訪問(wèn)公網(wǎng)的Server服務(wù)器,首先向Router發(fā)送一個(gè)請(qǐng)求報(bào)文(即Outbound方向),此時(shí)報(bào)文中的源地址是10.1.1.100,端口號(hào)1540。
Router在收到請(qǐng)求報(bào)文后自動(dòng)利用公網(wǎng)側(cè)WAN接口臨時(shí)或者固定的“公網(wǎng)IP地址:端口號(hào)”(162.10.2.8:5480),建立與內(nèi)網(wǎng)側(cè)報(bào)文“源IP地址:源端口號(hào)”間的Easy IP轉(zhuǎn)換表項(xiàng)(也包括正、反兩個(gè)方向),并依據(jù)正向Easy IP表項(xiàng)的查找結(jié)果將報(bào)文轉(zhuǎn)換后向公網(wǎng)側(cè)發(fā)送。
此時(shí)轉(zhuǎn)換后的報(bào)文源地址和源端口號(hào)由原來(lái)的(10.1.1.100:1540)轉(zhuǎn)換成了(162.10.2.8:5480)。
Server服務(wù)器在收到請(qǐng)求報(bào)文后需要向Router發(fā)送響應(yīng)報(bào)文(即Inbound方向),此時(shí)只需要將收到的請(qǐng)求報(bào)文中的源IP地址、源端口號(hào)和目的IP地址、目的端口號(hào)對(duì)調(diào)即可,即此時(shí)的響應(yīng)報(bào)文中的目的IP地址、目的端口號(hào)為(162.10.2.8:5480)。
Router在收到公網(wǎng)側(cè)Server的回應(yīng)報(bào)文后,根據(jù)其“目的IP地址:目的端口號(hào)”查找反向Easy IP表項(xiàng),并依據(jù)查找結(jié)果將報(bào)文轉(zhuǎn)換后向內(nèi)網(wǎng)側(cè)發(fā)送。
即轉(zhuǎn)換后的報(bào)文中的目的IP地址為10.1.1.100,目的端口號(hào)為1540,與Host A發(fā)送請(qǐng)求報(bào)文中的源IP地址和源端口完全一樣。
如果私網(wǎng)中的Host B也要訪問(wèn)公網(wǎng),則它所利用的公網(wǎng)IP地址與Host A一樣,都是路由器WAN口的公網(wǎng)IP地址,但轉(zhuǎn)換時(shí)所用的端口號(hào)一定要與Host A轉(zhuǎn)換時(shí)所用的端口不一樣。
04
NAT Server
NAT Server用于外網(wǎng)用戶需要使用固定公網(wǎng)IP地址訪問(wèn)內(nèi)部服務(wù)器的情形。
它通過(guò)事先配置好的服務(wù)器的“公網(wǎng)IP地址+端口號(hào)”與服務(wù)器的“私網(wǎng)IP地址+端口號(hào)”間的靜態(tài)映射關(guān)系來(lái)實(shí)現(xiàn)。
要先在Router上配置好靜態(tài)的NAT Server轉(zhuǎn)換映射表,才可實(shí)現(xiàn)NAT Server的運(yùn)轉(zhuǎn)。
由外網(wǎng)向內(nèi)網(wǎng)服務(wù)器發(fā)送的請(qǐng)求報(bào)文中轉(zhuǎn)換的僅是其目的IP地址和目的端口號(hào)(源IP地址和源端口號(hào)不變),即僅需關(guān)心目的IP地址和目的端口號(hào)。
而從內(nèi)網(wǎng)向外網(wǎng)發(fā)送的響應(yīng)報(bào)文中轉(zhuǎn)換的僅是其源IP地址和源端口號(hào)(目的IP地址和目的端口號(hào)不變),即僅需關(guān)心源IP地址和源端口號(hào)。兩個(gè)方向所轉(zhuǎn)換的IP地址和端口號(hào)是相反的。
NAT中,凡是由內(nèi)網(wǎng)向外網(wǎng)發(fā)送的報(bào)文(不管是請(qǐng)求報(bào)文,還是響應(yīng)報(bào)文),在NAT路由器上轉(zhuǎn)換的都是源IP地址(或者同時(shí)包括源端口號(hào))。
而凡是由外網(wǎng)向內(nèi)網(wǎng)發(fā)送的報(bào)文(也不管是請(qǐng)求報(bào)文,還是響應(yīng)報(bào)文),在NAT路由器上轉(zhuǎn)換的都是目的IP地址(或者同時(shí)包括源目的口號(hào))。
編輯:黃飛
?
評(píng)論
查看更多