路由選擇協(xié)議中規(guī)定了路由器應(yīng)如何交換信息并生成路由表
路由選擇協(xié)議屬于網(wǎng)絡(luò)層控制層面的內(nèi)容
理想的路由算法要求
正確完整的:沿路由表指示路徑可以最終到達(dá)目的網(wǎng)絡(luò)與主機(jī)
計(jì)算簡(jiǎn)單:不能給網(wǎng)絡(luò)通信增加額外開(kāi)銷(xiāo)
自適應(yīng)性:適應(yīng)通信量和網(wǎng)絡(luò)拓?fù)?/p>
穩(wěn)定性:在通信量與網(wǎng)絡(luò)拓?fù)湎鄬?duì)穩(wěn)定時(shí),路由不應(yīng)不停變化
公平性、最佳性:所有用戶(hù)應(yīng)該是平等的,得到的路由選擇在特定要求下是較為合理的
路由選擇策略可以分為兩類(lèi)
靜態(tài)路由選擇策略
即非自適應(yīng)路由選擇,要手工配置路由表,適用于用戶(hù)少、網(wǎng)絡(luò)簡(jiǎn)單的情況,算法簡(jiǎn)單且開(kāi)銷(xiāo)小
動(dòng)態(tài)路由選擇策略
即自適應(yīng)路由選擇,可以適應(yīng)網(wǎng)絡(luò)狀態(tài)的變化,實(shí)現(xiàn)起來(lái)較復(fù)雜且開(kāi)銷(xiāo)較大
路由選擇協(xié)議的分層
若要讓所有路由器都知道所有網(wǎng)絡(luò)應(yīng)如何到達(dá),顯然路由表會(huì)非常大,路由選擇算法也會(huì)十分復(fù)雜。因此,我們往往將這個(gè)互聯(lián)網(wǎng)分為一個(gè)個(gè)的的自治系統(tǒng)AS(Autonomous System)
自治系統(tǒng)內(nèi)部可以自由選擇使用怎么樣的路由選擇協(xié)議,而在這個(gè)AS中與本AS外進(jìn)行聯(lián)系的的路由器需要使用和外部相同的路由選擇協(xié)議
內(nèi)部網(wǎng)關(guān)協(xié)議IGP(Interior Gateway Protocol)
用于一個(gè)自治系統(tǒng)內(nèi)部的路由選擇協(xié)議,需要進(jìn)行域內(nèi)路由選擇
使用什么樣的IGP與這個(gè)自治系統(tǒng)外部使用的路由選擇協(xié)議無(wú)關(guān)。常用的IGP有RIP(距離向量)、OSPF(鏈路狀態(tài))
外部網(wǎng)關(guān)協(xié)議EGP(External Gateway Protocol)
用于不同自治系統(tǒng)之間的路由選擇,需要進(jìn)行域間路由選擇,常用的有BGP-4(路徑向量)
這是一種基于距離向量的分布式路由選擇協(xié)議,這里的“距離”按如下規(guī)則約定
路由器到直連網(wǎng)絡(luò)的距離為1
某主機(jī)到非直連網(wǎng)絡(luò)的距離為經(jīng)過(guò)的路由器數(shù)量加1
顯然,這里的“距離”其實(shí)就是跳數(shù),RIP會(huì)認(rèn)為經(jīng)過(guò)的路由越少,即距離越短,這條路由路徑越好
另外,RIP中規(guī)定一條路徑上最多只能包含15個(gè)網(wǎng)絡(luò),也就是說(shuō),若某網(wǎng)絡(luò)距離等于16,則認(rèn)為不可達(dá)。顯然,由于路徑上網(wǎng)絡(luò)數(shù)量的限制,RIP只適用于小型網(wǎng)絡(luò)
RIP會(huì)作為運(yùn)輸層用戶(hù)數(shù)據(jù)報(bào)UDP的數(shù)據(jù)部分進(jìn)行傳送,端口號(hào)為520
一個(gè)RIP報(bào)文最多包含25個(gè)路由,若超過(guò)25個(gè),需要用多個(gè)RIP報(bào)文完成傳送
網(wǎng)絡(luò)中的每個(gè)路由器都維護(hù)從它自己到其他每個(gè)目的網(wǎng)絡(luò)的距離記錄
各路由器只和相鄰的路由器交換信息
路由器交換的是當(dāng)前路由器知道的全部信息,即交換自己的路由表,顯然其中包括了目的網(wǎng)絡(luò)、距離、下一跳等信息
按固定時(shí)間間隔交換路由信息,一般為1分鐘以?xún)?nèi),這個(gè)時(shí)間間隔是針對(duì)每個(gè)路由器來(lái)說(shuō)的,并不是整個(gè)網(wǎng)絡(luò)統(tǒng)一同步的
路由器一開(kāi)始路由表為空時(shí),會(huì)將直連網(wǎng)絡(luò)(距離為1)放入路由表中,然后再和相鄰路由器交換信息
以下的距離向量算法是基于貝爾曼·福德(Bellman-Ford)算法的,核心思想為
??X節(jié)點(diǎn)是A到B最短路徑上的一個(gè)節(jié)點(diǎn),那么把這段路徑拆分為A到X、X到B兩段,這兩段也分別是A到X、X到B的最短路徑
當(dāng)一個(gè)路由器A收到相鄰路由器B發(fā)來(lái)的RIP報(bào)文時(shí),假設(shè)該相鄰路由器的IP地址為X,路由器A按如下步驟執(zhí)行
對(duì)B發(fā)來(lái)的RIP報(bào)文中的每一項(xiàng)都做出修改
“下一跳”字段改為X
“距離”字段加1
A逐項(xiàng)檢查RIP報(bào)文中的表項(xiàng)
若目的網(wǎng)絡(luò)不在自己路由表中,則將其添加到路由表
若目的網(wǎng)絡(luò)在自己的路由表中
若路由表中對(duì)應(yīng)表項(xiàng)的下一跳和RIP報(bào)文中的一樣,都是X,則用收到的表項(xiàng)替換路由表中的表項(xiàng)
若對(duì)應(yīng)表項(xiàng)的下一跳不一樣,且收到表項(xiàng)中的距離字段小于路由表中對(duì)應(yīng)表項(xiàng)的字段,則更新路由表中的原表項(xiàng);否則,什么都不做
若3分鐘內(nèi)沒(méi)有收到某相鄰路由器的更新路由表,認(rèn)為該路由器當(dāng)前不可達(dá),將相關(guān)表項(xiàng)的距離都置為16
在RIP協(xié)議壞消息傳播得慢,也就是說(shuō),當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí),需要經(jīng)過(guò)較長(zhǎng)時(shí)間才能將此消息傳送到所有路由器
例如一個(gè)路由器A與一個(gè)直連網(wǎng)絡(luò)N失去連接后,將對(duì)應(yīng)表項(xiàng)的距離字段設(shè)為16,若在該路由器發(fā)送出該表項(xiàng)之前,收到了相鄰路由器中發(fā)來(lái)的關(guān)于網(wǎng)絡(luò)N的表項(xiàng),此時(shí)路由器A會(huì)誤認(rèn)為可以通過(guò)該相鄰路由器前往網(wǎng)絡(luò)N,導(dǎo)致該不可達(dá)信息丟失
但是通過(guò)來(lái)回反復(fù)傳送RIP報(bào)文后,最終網(wǎng)絡(luò)中仍然可以知道網(wǎng)絡(luò)N不可達(dá),
但反過(guò)來(lái)看,若某個(gè)路由器發(fā)現(xiàn)了更短的路徑,這種好消息就會(huì)傳播得快
RIPv1中,路由更新以廣播進(jìn)行,且不支持可變長(zhǎng)子網(wǎng)掩碼VLSM;RIPv2中,路由更新以組播進(jìn)行,并支持VLSM
管理員可以給每條路由指派不同代價(jià),也就是說(shuō)可以根據(jù)業(yè)務(wù)類(lèi)型計(jì)算出不同路由
當(dāng)?shù)竭_(dá)某網(wǎng)絡(luò)有多條代價(jià)相同的路徑時(shí),可以將通信量分別分配給不同的路徑,即進(jìn)行負(fù)載均衡
OSPF路由器之間進(jìn)行交換的分組都具有鑒別功能,以保證只在可信路由器之間交換鏈路狀態(tài)信息
OSPF支持VLSM和CIDR
OSPF中會(huì)讓每個(gè)鏈路狀態(tài)都帶上個(gè)32bit的序號(hào),序號(hào)越大越新,規(guī)定序號(hào)的增長(zhǎng)速率不能超過(guò)1次/秒
每個(gè)區(qū)域都用一個(gè)32bit的區(qū)域標(biāo)識(shí)符表示,一般一個(gè)區(qū)域中的路由器個(gè)數(shù)不超過(guò)200個(gè)
洪泛法發(fā)送的信息只會(huì)在本區(qū)域內(nèi)廣播,從而減少整個(gè)網(wǎng)絡(luò)上的通信量
OSPF中按層次結(jié)構(gòu)進(jìn)行區(qū)域劃分,上層的區(qū)域是標(biāo)識(shí)符為0.0.0.0的主干區(qū)域,也稱(chēng)為骨干區(qū)域,只能有一個(gè),負(fù)責(zé)通過(guò)其他下層區(qū)域的區(qū)域邊界路由器ABR連通各下層區(qū)域
主干區(qū)域內(nèi)的路由器稱(chēng)為主干路由器,且主干區(qū)域內(nèi)有自治區(qū)與邊界路由器ASBR
上圖中R3、R7、R4是區(qū)域邊界路由器;R6是自治系統(tǒng)邊界路由器;R3、R4、R5、R6、R7是主干路由器??梢钥吹铰酚善骺梢约仁侵鞲陕酚善?,又是區(qū)域邊界路由器
OSPF的分組類(lèi)型 Hello問(wèn)候分組周期性(10秒)發(fā)送,用來(lái)發(fā)現(xiàn)和維持OSPF的鄰居關(guān)系,若40秒未收到某相鄰路由器發(fā)來(lái)的Hello分組,就認(rèn)為其是不可達(dá)的,類(lèi)別號(hào)為1
DD數(shù)據(jù)庫(kù)描述分組描述本地鏈路狀態(tài)數(shù)據(jù)庫(kù)LSDB(Link State DataBase)的摘要信息,類(lèi)別號(hào)為2
LSR鏈路狀態(tài)請(qǐng)求分組用于向?qū)Ψ秸?qǐng)求某些鏈路狀態(tài)的詳細(xì)信息,只有在OSPF鄰居雙方成功交換DD分組后才會(huì)向?qū)Ψ桨l(fā)出LSR分組,類(lèi)別號(hào)為3
LSU鏈路狀態(tài)更新分組其中包含了鏈路狀態(tài)的詳細(xì)信息,向?qū)Ψ桨l(fā)送其所需要的LSA用于洪泛法對(duì)全網(wǎng)更新鏈路狀態(tài),類(lèi)別號(hào)為4
LSAck鏈路狀態(tài)確認(rèn)分組用來(lái)對(duì)收到的LSA進(jìn)行確認(rèn),即對(duì)LSU分組的確認(rèn),類(lèi)別號(hào)為5
OSPF報(bào)文結(jié)構(gòu)OSPF的五種不同類(lèi)型的分組的首部是相同的
版本:占8bit,有1、2兩種,目前多使用OSPFv2
類(lèi)型:占8bit,從1~5分別表示OSPF不同的分組類(lèi)型
分組長(zhǎng)度:占16bit,OSPF報(bào)文的總長(zhǎng)度,包括OSPF首部,單位為字節(jié)
路由器標(biāo)識(shí)符:占32bit,指明了發(fā)送本報(bào)文的路由器標(biāo)識(shí)
區(qū)域標(biāo)識(shí)符:占32bit,指明了發(fā)送本報(bào)文的所屬區(qū)域
檢驗(yàn)和:占16bit,包含除了認(rèn)證字段的整個(gè)報(bào)文的校驗(yàn)和
鑒別類(lèi)型:占16bit,分為不驗(yàn)證(0)、簡(jiǎn)單認(rèn)證(1)、MD5認(rèn)證(2)
鑒別字段:占64bit
不驗(yàn)證(0)中未定義此字段
簡(jiǎn)單認(rèn)證(1)中定義該字段為密碼信息
MD5認(rèn)證(2)中的此字段包括Key ID、MD5驗(yàn)證數(shù)據(jù)長(zhǎng)度和序列號(hào)的信息,但MD5驗(yàn)證數(shù)據(jù)本身在OSPF報(bào)文的內(nèi)容部分,不在此鑒別字段中
執(zhí)行過(guò)程的整體流程大致如下所示
相鄰路由器之間在互相確認(rèn)存在后
互相發(fā)送數(shù)據(jù)庫(kù)描述,然后據(jù)此簡(jiǎn)要描述確定自己需要請(qǐng)求哪些鏈路LSA
互相發(fā)起LSR請(qǐng)求某些鏈路的LSA
對(duì)方發(fā)起LSU以發(fā)送LSA
接收方發(fā)送LSAck分組確認(rèn)收到,若收到重復(fù)的更新,只需發(fā)送一次LSAck
上圖展示了路由R使用LSU分組,用可靠洪泛法向全網(wǎng)更新鏈路狀態(tài),可靠指的是其他路由在收到更新分組后要發(fā)送確認(rèn)分組
外部網(wǎng)關(guān)協(xié)議BGP 基本概念用于不同自治系統(tǒng)之間交換路由信息,是一種基于路徑向量的路由選擇協(xié)議,交換的信息是一種可達(dá)性,而不是鏈路的代價(jià)/花費(fèi)
BGP力求選擇出一條能到達(dá)目的網(wǎng)絡(luò)的、不能兜圈子的比較好的路由路徑,并非要計(jì)算最佳路由
在BGP協(xié)議中,在通信前會(huì)先建立端口號(hào)為179的TCP連接,這是一種半永久連接,即在雙方交換完信息后連接狀態(tài)不關(guān)閉
BGP承載于TCP協(xié)議中
BGP事實(shí)上不僅運(yùn)行在不同AS間,還運(yùn)行在各AS內(nèi)部
eBGP和iBGP都按照BGP協(xié)議進(jìn)行連接與通信,遵循同樣的報(bào)文格式,區(qū)別在于路由通告的規(guī)則不同
不同AS的ASBR之間通過(guò)eBGP連接,通過(guò)eBGP連接進(jìn)行對(duì)等端之間的通信
上圖中的兩個(gè)AS通過(guò)R1、R2進(jìn)行通信,R1、R2之間會(huì)建立eBGP的連接,發(fā)送的路由信息“X,AS1,R1”表示從R1經(jīng)過(guò)AS1可以到達(dá)網(wǎng)絡(luò)X
iBGP顯然,在一個(gè)AS中,只有ASBR知道路由信息是不夠的,內(nèi)部的路由器也需要知道這些路由信息。因此在AS內(nèi)部,路由器之間要兩兩建立iBGP連接,iBGP也用TCP連接傳送BGP報(bào)文
BGP規(guī)定,一個(gè)AS內(nèi)部所有的iBGP連接必須構(gòu)成全連通,即使某兩個(gè)路由器之間沒(méi)有物理連接,他們之間也要有iBGP連接
從上圖中可以看到,ASBR在收到其他AS的ASBR發(fā)來(lái)的路由信息時(shí),會(huì)把這個(gè)路由再轉(zhuǎn)發(fā)給AS內(nèi)部的其他路由器
值得注意的是,一個(gè)AS內(nèi)部的路由器能夠收到的外部路由信息(即其他AS發(fā)來(lái)的路由)其實(shí)是受本AS的ASBR控制的,R2在收到R1發(fā)來(lái)的路由“X,AS1,R1”后,完全可以根據(jù)AS管理員制定的策略選擇不轉(zhuǎn)發(fā)給AS內(nèi)部的各個(gè)路由器
BGP的分組類(lèi)型 OPEN打開(kāi)分組用于與BGP連接對(duì)等端建立連接關(guān)系,初始化通信,這時(shí)候會(huì)商定這個(gè)連接的保持時(shí)間,類(lèi)型號(hào)為1
UPDATE更新分組用于通告路由信息,也用于通告要撤銷(xiāo)的路由,類(lèi)型號(hào)為2
需要注意的是,撤銷(xiāo)時(shí)能夠一次撤銷(xiāo)多條,但增加新路由時(shí),一次只能增加一條
KEEPALIVE?;罘纸M用于保持BGP連接,此類(lèi)型分組只有BGP報(bào)文首部,沒(méi)有具體的數(shù)據(jù)部分,類(lèi)型號(hào)為4
發(fā)送KEEPALIVE?;罘纸M的周期取商定的保持時(shí)間的三分之一
NOTIFICATION通知分組??每個(gè)路由器都有一個(gè)保持時(shí)間計(jì)時(shí)器,BGP協(xié)議中還會(huì)商定一個(gè)保持時(shí)間。當(dāng)路由器收到一個(gè)BGP報(bào)文,就會(huì)將這個(gè)計(jì)時(shí)器歸零,若在商定時(shí)間內(nèi)沒(méi)收到對(duì)等端發(fā)來(lái)的任何一種BGP報(bào)文,就認(rèn)為這個(gè)對(duì)等端不工作了
用于報(bào)告處理BGP進(jìn)程中的各種錯(cuò)誤,類(lèi)型號(hào)為3
BGP報(bào)文格式所有類(lèi)型的BGP報(bào)文擁有相同的首部,但數(shù)據(jù)部分各有不同,而且是變長(zhǎng)的
標(biāo)記:占16字節(jié),用于檢查BGP對(duì)等體的同步信息是否完整,以及用于BGP驗(yàn)證的計(jì)算。不使用驗(yàn)證時(shí)所有比特均為1
長(zhǎng)度:占2字節(jié),表示BGP消息的總長(zhǎng)度(包括首部),單位為字節(jié),實(shí)際范圍為10~4096
類(lèi)型:占1字節(jié),指明本BGP報(bào)文的類(lèi)型,除了上述的4種類(lèi)型外,在較新的標(biāo)準(zhǔn)中還有類(lèi)型號(hào)為5的REFRESH刷新分組,用于動(dòng)態(tài)請(qǐng)求BGP路由發(fā)布者重新發(fā)布UPDATE報(bào)文
總的來(lái)說(shuō)包括網(wǎng)絡(luò)前綴和BGP屬性?xún)刹糠?,BGP屬性中最重要的兩個(gè)屬性為自治系統(tǒng)路徑AS-PATH和下一跳NEXT-HOP(也就是還有其他BGP屬性)
網(wǎng)絡(luò)前綴記錄著某一子網(wǎng)的網(wǎng)絡(luò)號(hào),使用CIDR記法表示,即用斜線法表示子網(wǎng)掩碼
自治系統(tǒng)路徑AS-PATH記錄著B(niǎo)GP路由經(jīng)過(guò)了的自治系統(tǒng)的自治系統(tǒng)號(hào)ASN,每經(jīng)過(guò)一個(gè)AS,就會(huì)把自己的自治系統(tǒng)號(hào)放入AS-PATH中的開(kāi)始位置
BGP會(huì)利用AS-PATH來(lái)避免在各AS之間兜圈子的情況:當(dāng)一個(gè)ASBR收到一個(gè)BGP路由后,在往AS-PATH中添加ASN前,會(huì)檢查在當(dāng)前的AS-PATH是否已經(jīng)含有自己的ASN,若含有,則直接將這條BGP路由刪除
下一跳NEXT-HOP記錄了BGP路由信息發(fā)送的發(fā)送起點(diǎn)
內(nèi)外部路由選擇協(xié)議的聯(lián)系每個(gè)AS內(nèi)部運(yùn)行的是iBGP和IGP,IGP可以由AS自己選擇(OSPF、RIP等)
在AS之間運(yùn)行eBGP,使得不同的AS之間能夠交換BGP路由信息
路由表的確定單純通過(guò)BGP路由信息無(wú)法得出路由表項(xiàng),需要進(jìn)行一定的轉(zhuǎn)換與計(jì)算
以上圖為例,R1通過(guò)eBGP將BGP路由“X, AS1, R1”發(fā)到R2,R2通過(guò)iBGP再將該路由發(fā)到內(nèi)部的路由器
當(dāng)R4收到R2發(fā)來(lái)的BGP路由后,查看下一跳,發(fā)現(xiàn)是R1,并不在本AS中,因此會(huì)將下一跳改為R1的對(duì)等端R2,R2在本AS中,可以向其轉(zhuǎn)發(fā)分組
使用AS2內(nèi)部的路由選擇協(xié)議(例如OSPF)得到從R4到R2最佳路由路徑的下一跳,此處假設(shè)為R3
R4在路由轉(zhuǎn)發(fā)表中添加一個(gè)表項(xiàng)
前綴匹配(網(wǎng)絡(luò)號(hào)) | 下一跳 |
---|---|
X | R3 |
自治系統(tǒng)AS的分類(lèi) 末梢AS事實(shí)上下一跳字段中應(yīng)該是R3上與R4相連接口的IP地址,此處為了表示方便寫(xiě)作R3
另外,路由表中應(yīng)該有“端口”字段,此處應(yīng)為R4上與R3相連接口的接口名稱(chēng),此處為了表示方便省略了
只會(huì)把分組發(fā)送給直連的AS,或是從直連的AS接收分組,而不會(huì)把來(lái)自其他AS的分組轉(zhuǎn)發(fā)給另一個(gè)AS,也就是說(shuō),不允許其他AS通過(guò)本末梢AS去訪問(wèn)其他AS
末梢AS需要向直連的AS付費(fèi)才能發(fā)送或接收分組
多歸屬AS當(dāng)末梢AS連接了兩個(gè)及以上的AS,將其稱(chēng)為多歸屬AS,多歸屬AS可以增加連接的可靠性
穿越AS往往是擁有告訴通信干線的主干AS,為其他AS有償提供轉(zhuǎn)發(fā)分組的服務(wù)
對(duì)等AS雙方提前協(xié)商好,都不向?qū)Ψ绞召M(fèi)
BGP的路由選擇以下介紹BGP在選擇AS路徑時(shí)使用的原則和方法,以下四種方法,能選擇前面的就使用前面的,也就是優(yōu)先級(jí)從高到低
事實(shí)上,要控制經(jīng)過(guò)哪些AS到達(dá)目的網(wǎng)絡(luò),通過(guò)在每個(gè)AS中選擇與其他AS通信的ASBR即可,即選擇各AS的BGP發(fā)言人
本地偏好值大管理員手動(dòng)在本AS中的各路由器上設(shè)置的值,稱(chēng)為本地偏好LOCAL-PREF,這個(gè)值包含在BGP路由中
通過(guò)iBGP的通信,本地偏好信息在本AS內(nèi)傳送,如此,在每個(gè)AS中就會(huì)選擇一個(gè)ASBR,從而控制分組往哪個(gè)AS轉(zhuǎn)發(fā)
若無(wú)法選出一個(gè)本地偏好值大的,再使用下一種策略
例如在上圖中,要從AS1到AS4,管理員給R1設(shè)置了本地偏好值為300、R2為200,在轉(zhuǎn)發(fā)時(shí)會(huì)優(yōu)先選擇本地偏好值大的路徑,即通過(guò)R1轉(zhuǎn)發(fā)分組(也就是選擇轉(zhuǎn)發(fā)到AS2)。由于本地偏好值是優(yōu)先級(jí)最高的策略,即使上面的高速鏈路非常擁堵,也不會(huì)使用下面的低速鏈路
AS跳數(shù)最少可以根據(jù)AS-PATH中的信息,選擇一條經(jīng)過(guò)AS最少的路徑
若無(wú)法選出一個(gè)AS跳數(shù)最少的,再使用下一種策略
例如在上圖中,從AS1到AS5有上下兩條路由路徑,上面一條經(jīng)過(guò)2個(gè)AS,下面一條經(jīng)過(guò)1個(gè)AS,按照AS跳數(shù)最少原則,應(yīng)該選擇下面一條路徑(雖然實(shí)際上由于不知道AS內(nèi)部的情況,可能經(jīng)過(guò)的路由更多)
熱土豆算法基本思想就是“盡快轉(zhuǎn)發(fā)出本AS”,即以最小的代價(jià)讓分組盡快轉(zhuǎn)發(fā)出本AS。通過(guò)內(nèi)部路由選擇協(xié)議(OSPF、RIP等)找到一個(gè)離當(dāng)前路由器代價(jià)最小的ASBR,并向這個(gè)ASBR轉(zhuǎn)發(fā)分組
若無(wú)法通過(guò)熱土豆算法選出,再使用下一種策略
需要注意的是,同一個(gè)AS中,從不同的路由開(kāi)始發(fā)送分組,通過(guò)熱土豆算法得到的路徑可能不同
顯然,熱土豆算法只考慮本AS中的情況,完全看不到外部AS的情況
顯然,當(dāng)本地偏好值相同且AS跳數(shù)相同時(shí),才會(huì)使用熱土豆算法選擇路徑。
以上圖為例,假設(shè)AS1中采用RIP,從R1出發(fā)會(huì)選擇跳數(shù)較少的R4發(fā)到其他AS,路由路徑為“R1、R4、BGP路由2”;從R2出發(fā)會(huì)選擇跳數(shù)較少的R3發(fā)到其他AS,路由路徑為“R2、R3、BGP路由1”
路由器BGP標(biāo)識(shí)符最小使用BGP報(bào)文首部的BGP標(biāo)識(shí)符字段的值進(jìn)行選擇
路由器的物理構(gòu)成路由器的主要工作是轉(zhuǎn)發(fā)分組,整個(gè)路由器的物理結(jié)構(gòu)可以劃分為兩大部分——路由選擇部分和分組轉(zhuǎn)發(fā)部分
也稱(chēng)為控制部分/控制層面,核心構(gòu)件是路由選擇處理機(jī),其工作是根據(jù)選定的路由選擇協(xié)議構(gòu)造出路由表
路由表一般包含“目的網(wǎng)絡(luò)——下一跳”的IP地址映射關(guān)系
分組轉(zhuǎn)發(fā)部分也稱(chēng)為數(shù)據(jù)層面,分組轉(zhuǎn)發(fā)部分又由交換結(jié)構(gòu)、一組輸入端口、一組輸出端口三部分組成
轉(zhuǎn)發(fā)表每一行必須包括“目的網(wǎng)絡(luò)——輸出端口及某些MAC地址信息(即下一跳MAC地址)”的映射關(guān)系
上圖中輸入/輸出端口的1、2、3分別為物理層、數(shù)據(jù)鏈路層與網(wǎng)絡(luò)層的處理模塊,轉(zhuǎn)發(fā)表會(huì)被復(fù)制到每一個(gè)輸入端口中以便快速查找轉(zhuǎn)發(fā)表,轉(zhuǎn)發(fā)表的更新則由路由選擇處理機(jī)完成的
當(dāng)前一個(gè)分組在查找轉(zhuǎn)發(fā)表時(shí),后面進(jìn)入輸入端口的下一分組需要在隊(duì)列中排隊(duì)等待;輸出端口從交換結(jié)構(gòu)接收分組,若交換結(jié)構(gòu)發(fā)過(guò)來(lái)的速率超過(guò)輸出端口的發(fā)送速率時(shí),來(lái)不及發(fā)送的分組會(huì)暫存在輸出緩沖隊(duì)列中
若上述的隊(duì)列滿(mǎn)了,新來(lái)的數(shù)據(jù)將會(huì)被丟棄
交換結(jié)構(gòu)的交換方法交換結(jié)構(gòu)的工作就是把分組從一個(gè)輸入端口轉(zhuǎn)移到某個(gè)對(duì)應(yīng)的輸出端口。要實(shí)現(xiàn)這樣子的轉(zhuǎn)移,可以通過(guò)存儲(chǔ)器、通過(guò)總線、通過(guò)互聯(lián)網(wǎng)絡(luò)
通過(guò)存儲(chǔ)器時(shí),路由器的交換速率很大地受限于存儲(chǔ)器的讀寫(xiě)帶寬;通過(guò)總線時(shí),總線同時(shí)只能被一組輸入輸出端口使用,交換速率很大地受限于總線速率;通過(guò)互連網(wǎng)絡(luò),當(dāng)輸入端口收到分組時(shí),會(huì)發(fā)送到整條水平總線上,通過(guò)激活對(duì)應(yīng)交點(diǎn),就可以將此分組傳到對(duì)應(yīng)的輸出端口
通過(guò)互連網(wǎng)絡(luò),是一種無(wú)阻塞的交換結(jié)構(gòu),多對(duì)不同的輸入輸出端口可以同時(shí)傳送分組
IPv6 基本概念IPv6數(shù)據(jù)報(bào)的目的地址可以分為
單播:即點(diǎn)對(duì)點(diǎn)的通信
多播:一對(duì)多的通信,IPv6中沒(méi)有廣播的概念,將廣播看成多播的特例
任播:IPv6增加的類(lèi)型,目的站是一組主機(jī),但數(shù)據(jù)報(bào)只交付給其中一個(gè)
IPv6中將主機(jī)和路由器都稱(chēng)為節(jié)點(diǎn),節(jié)點(diǎn)上的每個(gè)接口都有一個(gè)IPv6的地址
IPv6的地址是128位的,使用冒號(hào)十六進(jìn)制記法表示,每16位二進(jìn)制表示為4位十六進(jìn)制,每4位十六進(jìn)制之間用冒號(hào)分隔
IPv6的地址允許進(jìn)行零壓縮,一連串的0可以用什么都不寫(xiě)替代,例如FF05:0:0:0:0:0:0:B3
可以表示為FF05::B3
。需要注意的是,零壓縮在一個(gè)地址中只能使用一次
同樣的,在IPv6中也可以使用CIDR的斜線表示法表示掩碼,例如12AB:0:0:CD30::/60
由于沒(méi)有A、B、C類(lèi)地址這樣的劃分,IPv6中不再有子網(wǎng)掩碼的概念
向后兼容互聯(lián)網(wǎng)中由于種種原因,很難一下子都轉(zhuǎn)到IPv6上來(lái),因此,IPv6系統(tǒng)必須同時(shí)也能接收和轉(zhuǎn)發(fā)IPv4分組、為IPv4分組選擇路由
為了向IPv6流暢過(guò)渡,有一些策略用于兼容,例如雙協(xié)議棧、隧道技術(shù)
雙協(xié)議棧使一部分主機(jī)和路由器同時(shí)有v4和v6兩套協(xié)議棧。使用雙協(xié)議棧的主機(jī)或路由器同時(shí)具有一個(gè)IPv6地址和一個(gè)IPv4地址
通過(guò)DNS返回的地址類(lèi)型確定使用v4地址還是v6地址
隧道技術(shù)使用IPv6 in IPv4 (6to4)報(bào)文格式完成兼容,即將IPv6的數(shù)據(jù)報(bào)封裝為IPv4的數(shù)據(jù)報(bào),整個(gè)IPv6數(shù)據(jù)報(bào)放在IPv4數(shù)據(jù)報(bào)的數(shù)據(jù)部分,同時(shí)將IPv4首部的協(xié)議字段值設(shè)為41
這個(gè)封裝了IPv6數(shù)據(jù)報(bào)的IPv4數(shù)據(jù)報(bào)在出了IPv4網(wǎng)絡(luò)中的隧道后,會(huì)將其數(shù)據(jù)部分(即原IPv6數(shù)據(jù)報(bào))傳給主機(jī)的IPv6協(xié)議棧,這樣就可以屏蔽中間過(guò)程實(shí)現(xiàn)在IPv4網(wǎng)絡(luò)中傳輸IPv6的數(shù)據(jù)報(bào)
虛擬專(zhuān)用網(wǎng)VPN本地地址:僅在某機(jī)構(gòu)內(nèi)部使用的IP地址
全球地址:全球唯一的IP地址,需要向互聯(lián)網(wǎng)管理機(jī)構(gòu)申請(qǐng)
對(duì)于一個(gè)機(jī)構(gòu),并不需要其中所有的主機(jī)都有一個(gè)全球地址,IP地址不夠,而且也不安全
為了避免本地地址和全球地址重合,規(guī)定了一些專(zhuān)用地址用于本地地址,任何路由器對(duì)目的地址是專(zhuān)用地址的數(shù)據(jù)報(bào)一律不轉(zhuǎn)發(fā),下面是專(zhuān)用地址段
專(zhuān)用地址有:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16,共1個(gè)A類(lèi)網(wǎng)絡(luò)、16個(gè)連續(xù)的B類(lèi)網(wǎng)絡(luò)、256個(gè)連續(xù)的C類(lèi)網(wǎng)絡(luò),這些地址也稱(chēng)為可重用地址
專(zhuān)用網(wǎng)指的是可以租用ISP的通信線路專(zhuān)供本機(jī)構(gòu)使用
但可以不租用線路,同一個(gè)機(jī)構(gòu)的不同場(chǎng)所之間可以利用公用互聯(lián)網(wǎng)傳輸專(zhuān)用網(wǎng)的數(shù)據(jù),這些數(shù)據(jù)會(huì)被加密,就好像這些場(chǎng)所之間有專(zhuān)用網(wǎng)一樣,就稱(chēng)為虛擬專(zhuān)用網(wǎng)
上圖中,場(chǎng)所A和場(chǎng)所B同屬一個(gè)機(jī)構(gòu),使用隧道構(gòu)成了一個(gè)虛擬專(zhuān)用網(wǎng),這樣的VPN 稱(chēng)為內(nèi)聯(lián)網(wǎng);若有其他機(jī)構(gòu)參與進(jìn)這個(gè)VPN,則又稱(chēng)為外聯(lián)網(wǎng)
不在固定場(chǎng)所是也可以通過(guò)遠(yuǎn)程接入VPN技術(shù)進(jìn)入專(zhuān)用網(wǎng)進(jìn)行使用
已經(jīng)給專(zhuān)用網(wǎng)內(nèi)部的主機(jī)分配好了本地地址,要使這些主機(jī)和互聯(lián)網(wǎng)通信,就可以使用NAT,將專(zhuān)用網(wǎng)的本地地址轉(zhuǎn)換成全球地址。負(fù)責(zé)完成這個(gè)轉(zhuǎn)換,并與外部的互聯(lián)網(wǎng)進(jìn)行通信的路由器稱(chēng)為NAT路由器,上面需要裝有相應(yīng)的NAT軟件
上圖是一個(gè)NAT的實(shí)例,主機(jī)A向互聯(lián)網(wǎng)上的213.18.2.4主機(jī)發(fā)出一個(gè)數(shù)據(jù)報(bào),NAT路由器將數(shù)據(jù)報(bào)中的源地址改為這個(gè)專(zhuān)用網(wǎng)擁有的全球地址172.38.1.5,并在NAT轉(zhuǎn)換表中注冊(cè)。213.18.2.4發(fā)回的數(shù)據(jù)報(bào)到達(dá)NAT路由器后,NAT路由器會(huì)將目的地址改為本地地址192.168.0.3
在這個(gè)過(guò)程中,可以發(fā)現(xiàn)
互聯(lián)網(wǎng)上的主機(jī)無(wú)法向?qū)S镁W(wǎng)中的某臺(tái)特定主機(jī)發(fā)送數(shù)據(jù)報(bào)
這個(gè)專(zhuān)用網(wǎng)擁有的全球地址個(gè)數(shù)決定了這個(gè)專(zhuān)用網(wǎng)內(nèi)最多同時(shí)有幾臺(tái)主機(jī)可以訪問(wèn)互聯(lián)網(wǎng)
對(duì)這個(gè)轉(zhuǎn)換操作進(jìn)一步擴(kuò)展,就有了網(wǎng)絡(luò)地址與端口號(hào)轉(zhuǎn)換NAPT,同一個(gè)全球地址可以同時(shí)用于多個(gè)分組,具體如下表所示
此處即使沒(méi)有需要同時(shí)出專(zhuān)用網(wǎng)的端口,例如出方向需要30000端口號(hào)的只有一條,NAT路由器也會(huì)對(duì)端口號(hào)進(jìn)行轉(zhuǎn)換
軟件定義網(wǎng)絡(luò)SDNSDN是個(gè)體系結(jié)構(gòu),是一種設(shè)計(jì)、構(gòu)建和管理網(wǎng)絡(luò)的新方法/新概念,要點(diǎn)在于將控制層面和數(shù)據(jù)層面分離,讓控制層面利用軟甲能控制數(shù)據(jù)層面中的眾多設(shè)備,OpenFlow就是一種廣為認(rèn)可的控制協(xié)議
上述的控制時(shí)集中式的、基于流的
SDN中的廣義轉(zhuǎn)發(fā)擴(kuò)充了傳統(tǒng)的“匹配+動(dòng)作”的操作,完成這個(gè)操作的設(shè)備不稱(chēng)為路由器,而是稱(chēng)為分組交換機(jī)或OpenFlow交換機(jī),并不局限在網(wǎng)絡(luò)層工作,此處的匹配工作非常靈活,可以指定非常多的條件和字段,因此稱(chēng)之為“廣義”
使用流表取代傳統(tǒng)的轉(zhuǎn)發(fā)表,一個(gè)OpenFlow交換機(jī)中可以有多個(gè)流表
流表項(xiàng)有三個(gè)字段
首部字段值:也稱(chēng)為匹配字段,包含了一組字段,用于匹配分組各層的首部
計(jì)數(shù)器:指明當(dāng)前表項(xiàng)成功匹配的分組數(shù)量、從當(dāng)前表項(xiàng)上次更新到現(xiàn)在經(jīng)歷的時(shí)間
動(dòng)作:指明要對(duì)匹配上當(dāng)前表項(xiàng)分組進(jìn)行的操作,例如指明要發(fā)送到哪個(gè)端口、是否要丟棄、是否復(fù)制多份從不同端口發(fā)出、是否重寫(xiě)分組首部的某些字段等
SDN的整體體系結(jié)構(gòu)如下圖所示
總結(jié)SDN的四個(gè)關(guān)鍵特征
基于流的轉(zhuǎn)發(fā),流表規(guī)定了轉(zhuǎn)發(fā)規(guī)則
數(shù)據(jù)層面與控制層面分離,二者不在同一設(shè)備中
網(wǎng)絡(luò)控制功能位于數(shù)據(jù)層面交換機(jī)之外,可以用軟件實(shí)現(xiàn)
可編程的網(wǎng)絡(luò)
SDN控制器是最核心的,大致可以分為三個(gè)層次
通信層:完成 SDN 控制器與受控網(wǎng)絡(luò)設(shè)備之間的通信,多采用OpenFlow
網(wǎng)絡(luò)范圍狀態(tài)管理層:管理和維護(hù)鏈路、主機(jī)、交換機(jī)等網(wǎng)絡(luò)狀態(tài),確定和維護(hù)流表
到網(wǎng)絡(luò)控制應(yīng)用程序?qū)拥慕涌冢涸试S網(wǎng)絡(luò)控制應(yīng)用程序?qū)顟B(tài)管理層里的網(wǎng)絡(luò)狀態(tài)和流表進(jìn)行讀寫(xiě)操作,也就可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)本身進(jìn)行編程
當(dāng)前表項(xiàng)成功匹配的分組數(shù)量、從當(dāng)前表項(xiàng)上次更新到現(xiàn)在經(jīng)歷的時(shí)間
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享標(biāo)題:計(jì)算機(jī)網(wǎng)絡(luò)——第4章網(wǎng)絡(luò)層(下)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)于:http://aaarwkj.com/article40/dopjeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、Google、網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容