版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
IP轉(zhuǎn)發(fā)—— 技術(shù)基礎(chǔ)與實(shí)現(xiàn)平臺(tái)轉(zhuǎn)發(fā)組2004.061TCP/IP基礎(chǔ)知識(shí)交換機(jī)、路由器工作原理轉(zhuǎn)發(fā)基礎(chǔ)知識(shí)轉(zhuǎn)發(fā)流程介紹路由器快速轉(zhuǎn)發(fā)介紹2什么是TCP/IPTCP/IP是Internet的核心技術(shù)TCP/IP是一個(gè)協(xié)議族 鏈路層協(xié)議 網(wǎng)絡(luò)層協(xié)議 傳輸層協(xié)議 應(yīng)用層協(xié)議3
什么是TCP/IPIP協(xié)議提供了一種全球統(tǒng)一的編址方式,屏蔽了物理網(wǎng)絡(luò)地址的差異,使路由查找成為可能。IP協(xié)議提供了一種全球統(tǒng)一的報(bào)文格式,屏蔽了網(wǎng)絡(luò)鏈路層差異,使網(wǎng)絡(luò)互聯(lián)成為可能。網(wǎng)間網(wǎng)在底層網(wǎng)絡(luò)技術(shù)與高層應(yīng)用間增加一個(gè)中間層,抽象屏蔽硬件細(xì)節(jié),實(shí)現(xiàn)網(wǎng)間網(wǎng)。IP是TCP/IP的核心協(xié)議:5IP編址
6IP編址
IP地址類型:7無子網(wǎng)編址無子網(wǎng)編址是指使用自然掩碼,不對(duì)網(wǎng)段進(jìn)行細(xì)分。比如B類網(wǎng)段,采用作為掩碼。IP編址
9帶子網(wǎng)編址B類網(wǎng)段/24/24IP編址
104864844824848748548348IP編址
子網(wǎng)規(guī)劃:11IP報(bào)文格式
13IP報(bào)文傳輸
14IP協(xié)議特點(diǎn)
15TCP/IP基礎(chǔ)知識(shí)交換機(jī)、路由器工作原理轉(zhuǎn)發(fā)基礎(chǔ)知識(shí)轉(zhuǎn)發(fā)流程介紹路由器快速轉(zhuǎn)發(fā)介紹17網(wǎng)絡(luò)設(shè)備分類2/24/24/24/241/24ABCR二層設(shè)備三層設(shè)備18二層交換機(jī)工作原理常用的兩種局域網(wǎng)幀格式:19二層交換機(jī)工作原理組播IP與組播MAC映射關(guān)系:21二層交換機(jī)工作原理二層交換引擎:22二層交換機(jī)工作原理23三層交換機(jī)工作原理三層交換機(jī)的引入:網(wǎng)絡(luò)流量模式的變化:本地流量/跨網(wǎng)段流量對(duì)比關(guān)系由80/2020/80,需要高效的三層設(shè)備來傳遞日益增加的跨網(wǎng)段流量。路由器能解決上述問題,但性價(jià)比不好:需要用戶額外的投資;一般路由器采用軟件轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)效率較交換機(jī)的硬件轉(zhuǎn)發(fā)低?;谏鲜霰尘?,引入了三層交換機(jī)的概念。25三層交換機(jī)工作原理26三層交換機(jī)工作原理29路由器工作原理路由是指導(dǎo)IP報(bào)文發(fā)送的路徑信息。(N,R1,M)R1目標(biāo)網(wǎng)絡(luò)N其它網(wǎng)絡(luò)什么是路由?30路由器工作原理實(shí)現(xiàn)網(wǎng)絡(luò)互連分組數(shù)據(jù)轉(zhuǎn)發(fā)路由(尋徑):路由表建立、刷新、查找子網(wǎng)間的速率適配隔離網(wǎng)絡(luò),防止網(wǎng)絡(luò)風(fēng)暴,指定訪問規(guī)則(防火墻)異種網(wǎng)絡(luò)互連路由器的作用:31路由器工作原理路由器的選路機(jī)制:最長匹配優(yōu)先查找主機(jī)路由,即目的地為主機(jī)的路由,掩碼長度為32bit,進(jìn)行的是精確匹配;其次查找網(wǎng)段路由,即目的地為子網(wǎng)的路由。當(dāng)有多條匹配網(wǎng)段路由時(shí),進(jìn)行最長匹配,即選擇網(wǎng)段最小(掩碼最長)的路由;最后查找缺省路由,缺省路由掩碼長度為0,是為限制路由表規(guī)模過于龐大而設(shè),凡遇到查找路由失敗的報(bào)文,就選擇缺省路由轉(zhuǎn)發(fā);若查找路由失敗,并且未配置缺省路由,則丟棄報(bào)文。32路由器工作原理33路由器、交換機(jī)對(duì)比34TCP/IP基礎(chǔ)知識(shí)交換機(jī)、路由器工作原理轉(zhuǎn)發(fā)基礎(chǔ)知識(shí)轉(zhuǎn)發(fā)流程介紹路由器快速轉(zhuǎn)發(fā)介紹35轉(zhuǎn)發(fā)在VRP3
中的位置36轉(zhuǎn)發(fā)表和路由表轉(zhuǎn)發(fā)表:把路由表中最好的路由挑出來路由管理路由協(xié)議IP路由表轉(zhuǎn)發(fā)表37轉(zhuǎn)發(fā)表和路由表[3640]dispcur#interfaceEthernet0/0ipaddress0#interfaceLoopBack1ipaddress55#iproute-staticLoopBack1preference60#[3640]Eth0/0口的IP配置會(huì)加入一條/16路由,為直連路由,優(yōu)先級(jí)為0;假設(shè)同時(shí)再配置一條去該網(wǎng)段的靜態(tài)路由,靜態(tài)路由優(yōu)先級(jí)為60;由于直連路由優(yōu)于靜態(tài)路由,RM僅將直連路由刷到轉(zhuǎn)發(fā)表中。38轉(zhuǎn)發(fā)表和路由表[3640]dispiprouting-tableverbose 。。。。。。。**Destination:Mask:Protocol:#DIRECTPreference:0*NextHop:0Interface:0(Ethernet0/0)State:<IntActiveURetainUnicast>Age:18:14:59Cost:0/0Protocol:STATICPreference:60*NextHop:Interface:(LoopBack1)State:<IntStaticUnicast>Age:28Cost:0/0[3640]路由表中同時(shí)存在直連和靜態(tài)兩條路由39轉(zhuǎn)發(fā)表和路由表[3640]disfibDestination/MaskNexthopFlagTimeStampInterface/32GHUt[0]InLoopBack00/32GHUt[0]InLoopBack0/160Ut[0]Ethernet0/0/8Ut[0]InLoopBack0轉(zhuǎn)發(fā)表中去往/16只有直連路由40轉(zhuǎn)發(fā)表的結(jié)構(gòu)設(shè)計(jì)思想:1.摒棄了傳統(tǒng)的radix樹的組織結(jié)構(gòu),采用靜態(tài)數(shù)組的組織形式;2.采用四級(jí)HASH的查表方式:將IP地址的32bit劃分為20+4+4+4共四級(jí),一級(jí)一級(jí)往下查,直到查到或查找失敗為止。3.犧牲內(nèi)存換效率;第一級(jí)HASH表項(xiàng)是系統(tǒng)啟動(dòng)時(shí)就分配好的靜態(tài)數(shù)組,一共有(2^20=1M)項(xiàng),每一項(xiàng)保存的是一指針的長度4字節(jié),即系統(tǒng)啟動(dòng)時(shí)轉(zhuǎn)發(fā)表初始化就會(huì)占用掉4M的內(nèi)存空間。4.利用正負(fù)值表示不同的含義:若HASH表中記錄的值>0,表示該節(jié)點(diǎn)只存在一條表項(xiàng),不存在沖突的情況,記錄的內(nèi)容就是相應(yīng)的路由項(xiàng)(ROUTENODE_S結(jié)構(gòu));若HASH表中記錄的值=0,表示不存在相應(yīng)的路由項(xiàng),查找失敗;若HASH表中記錄的值<0,表示該節(jié)點(diǎn)存在多條路由項(xiàng),需要進(jìn)行下一級(jí)HASH查找,該節(jié)點(diǎn)記錄的是指向下一級(jí)索引表的指針的相反值。5.兼容不同操作系統(tǒng)的問題:不同操作系統(tǒng)地址空間映射不一樣,VxWorks和pSOS中普通指針小于2G(高位置0,即>0),可以直接使用4中的表示方法。對(duì)于RTLINUX,其普通指針大于2G(高位置1,即<0),需進(jìn)行算法的適配。41轉(zhuǎn)發(fā)表的結(jié)構(gòu)完全散列——數(shù)組2^202^42^42^4-表示下面掛的是一個(gè)擴(kuò)展表+表示下面掛的是一個(gè)節(jié)點(diǎn)42轉(zhuǎn)發(fā)表項(xiàng)ROUTENODE_SRTENTRY_S一條路由所必須的信息(RTENTRY_S):目的地址掩碼網(wǎng)關(guān)(下一跳地址)出接口43重要數(shù)據(jù)結(jié)構(gòu)MBUF_S:
控制信息和數(shù)據(jù)區(qū)分離,控制信息用于轉(zhuǎn)發(fā)處理流程中傳遞參數(shù)信息,上層模塊可根據(jù)需要增加相應(yīng)的字段,容易擴(kuò)展;typedefstructtagMBuf{。。。。。。structtagMBuf*pstNextMBuf;指向下一mbufULONGulTotalDataLength;全部數(shù)據(jù)塊描述符中數(shù)據(jù)長度之和ULONGulDataBlockNumber;數(shù)據(jù)塊描述符數(shù)量MBUF_USERTAGDATA_SstUserTagData;用戶信息,內(nèi)容可擴(kuò)展MBUF_DATABLOCKDESCRIPTOR_SstDataBlockDescriptor;數(shù)據(jù)塊描述符鏈鏈頭}MBUF_S;44重要數(shù)據(jù)結(jié)構(gòu)typedefstructtagMBUF_UserTagData{1.公共信息,包含入/出接口索引,鄰接表索引,隊(duì)列ID等信息;2.物理層信息,目前基本不用,將來可擴(kuò)充;3.鏈路層信息,包含鏈路協(xié)議類型以及具體協(xié)議相關(guān)的內(nèi)容;4.網(wǎng)絡(luò)層信息,包含網(wǎng)絡(luò)層協(xié)議類型及具體協(xié)議相關(guān)的內(nèi)容;}MBUF_USERTAGDATA_S;typedefstructtagMBUF_DataBlockDescriptor{ULONGulDataLength;有效數(shù)據(jù)內(nèi)容長度UCHAR*pucData;數(shù)據(jù)塊中存放數(shù)據(jù)的起始地址ULONGulDataBlockLength;數(shù)據(jù)塊總長度,一般為2048UCHAR*pucDataBlock;數(shù)據(jù)塊的起始地址structtagMBUF_DataBlockDescriptor*pstNextDataBlockDescriptor;指向下一數(shù)據(jù)塊描述符}MBUF_DATABLOCKDESCRIPTOR_S;45重要數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)發(fā)流程中常用MBUF操作:1.MBUF_MTOD(pstMBufM,DataTypeM)獲取MBUF數(shù)據(jù)區(qū)指針,并強(qiáng)制轉(zhuǎn)換為指定的數(shù)據(jù)類型;2.MBUF_CUT_HEAD(pstMBufM,ulLengthM)從數(shù)據(jù)區(qū)開始的位置截掉指定長度的內(nèi)容,并將數(shù)據(jù)區(qū)指針指向新的起始位置3.MBUF_PREPEND_MEMORY_SPACE(pstMBufM,ulLengthM,ulModuleIDM,ulResultM)將數(shù)據(jù)區(qū)指針向前偏移指定長度,若相應(yīng)數(shù)據(jù)塊前面空間不夠,則新建一數(shù)據(jù)塊4.MBUF_MAKE_MEMORY_CONTINUOUS(pstMBufM,ulLengthM,ulModuleIDM,ulResultM)保持?jǐn)?shù)據(jù)區(qū)起始的指定長度內(nèi)容在物理上連續(xù)5.MBUF_GET_TOTAL_DATA_LENGTH(pstMBufM)得到MBUF總的數(shù)據(jù)長度6.MBUF_COMPRESS(pstMBufM,ulDataBlockNumberM,ulModuleIDM,ulResultM)將包括多個(gè)數(shù)據(jù)塊的MBUF內(nèi)容壓縮成指定的塊數(shù)46重要數(shù)據(jù)結(jié)構(gòu)IFNET_S:
記錄接口參數(shù)、標(biāo)識(shí)、控制塊及一些函數(shù)指針信息,這些信息決定了報(bào)文在通過該接口時(shí)需作哪些處理,以及如何進(jìn)行處理。typedefstructtagIFNET{structtagBasicIfEntity基本屬性,記錄接口名稱、描述符、索引、接口類型、波特率、基本的函數(shù)指針等等structtagForwardIfEntity轉(zhuǎn)發(fā)屬性,主要記錄接口上啟用了哪些業(yè)務(wù),以及相應(yīng)的控制塊信息structtagExtendIfEntity擴(kuò)展屬性,不易歸入上面兩類的其它信息,也包含一些常用的函數(shù)指針}47TCP/IP基礎(chǔ)知識(shí)交換機(jī)、路由器工作原理轉(zhuǎn)發(fā)基礎(chǔ)知識(shí)轉(zhuǎn)發(fā)流程介紹路由器快速轉(zhuǎn)發(fā)介紹48IP轉(zhuǎn)發(fā)總圖49底層處理接收:負(fù)責(zé)處理底層的中斷,把已經(jīng)被硬件寫入MEM的數(shù)據(jù)封裝成MBUF,調(diào)用鏈路層的接收函數(shù),根據(jù)返回的結(jié)果把報(bào)文入隊(duì)列發(fā)送:把數(shù)據(jù)按底層的要求預(yù)處理,啟動(dòng)DMA發(fā)送,并在發(fā)送成功后處理發(fā)送中斷,回收MBUF內(nèi)存50鏈路層處理接收:調(diào)用掛在IFNET上的if_pfLinkReceived對(duì)數(shù)據(jù)幀進(jìn)行解析,去鏈路層封裝,根據(jù)承載的協(xié)議類型,確定報(bào)文應(yīng)入的隊(duì)列,可能是網(wǎng)絡(luò)層協(xié)議隊(duì)列,也可能是鏈路層的協(xié)議隊(duì)列;對(duì)于以太網(wǎng),是調(diào)用ETHARP_EtherInput();對(duì)于PPP,是調(diào)用PPP_Shell_ISLInput();對(duì)于其它鏈路協(xié)議,分別調(diào)用不同的接收函數(shù)。發(fā)送:調(diào)用掛在IFNET上的if_pfOutput根據(jù)待發(fā)送報(bào)文的協(xié)議類型,封裝數(shù)據(jù)幀幀頭;根據(jù)下一跳地址解析目的MAC,或根據(jù)查轉(zhuǎn)發(fā)表得到的鄰接表索引得到發(fā)送使用的map或pvc信息;調(diào)用底層驅(qū)動(dòng)提供的發(fā)送函數(shù)進(jìn)行發(fā)送。對(duì)于以太網(wǎng),是調(diào)用ETHARP_EtherOutput();對(duì)于PPP,是調(diào)用PPP_Shell_NiOutput();對(duì)于其它鏈路協(xié)議,分別調(diào)用不同的發(fā)送函數(shù)。51IP的接收處理(IP_Input)
IP_Input()是IP入隊(duì)列QUE_IP_INPUT上注冊(cè)的處理函數(shù);轉(zhuǎn)發(fā)任務(wù)SockRun調(diào)用Que_Schedule()進(jìn)行隊(duì)列調(diào)度,當(dāng)IP入隊(duì)列中有報(bào)文時(shí),會(huì)調(diào)用IP_Input()進(jìn)行處理;此函數(shù)參數(shù)唯一,為MBUF52IP的接收處理(IP_Input)start1.取入接口7.IPSEC入處理5.記錄接口私網(wǎng)信息6.流量統(tǒng)計(jì)2.參數(shù)合法性檢查4.IP報(bào)文合法性檢查8.入方向包過濾處理9.NAT入處理10NETSTREAM入處理11.ASPF入處理12.QOS入處理13.調(diào)用IP_ProcessByBoardend3.接口允許接收ip報(bào)文?53IP的接收處理(IP_Input)1.入接口索引保存在mbuf結(jié)構(gòu)控制區(qū)中,調(diào)用接口管理提供的函數(shù)查找入接口IFNET;2.檢查入接口IFNET及MBUF指針是否有效;3.取接口IP控制塊,判斷其是否有效,并檢查控制塊中單播地址列表是否非空;特例:若接口配置成dhcpclient,地址列表為空也視為此步檢查通過,否則與dhcpserver的交互過程無法進(jìn)行,因?yàn)閐hcp報(bào)文本身是ip報(bào)文。4.IP報(bào)文合法性檢查內(nèi)容:版本、長度、校驗(yàn)和、地址類型、分片標(biāo)志;5.入接口綁定到私網(wǎng)中,需記錄相應(yīng)私網(wǎng)信息至mbuf,便于后續(xù)查私網(wǎng)轉(zhuǎn)發(fā)表;54IP的接收處理(IP_Input)7.IPSec入方向處理8.若入接口配置了入方向的包過濾防火墻,且全局包過濾開關(guān)打開,則進(jìn)行上行包過濾,只有經(jīng)過過濾的報(bào)文,才允許進(jìn)入。防火墻:雙向作用,既可以阻止外網(wǎng)進(jìn)入的非法報(bào)文,也可以限制內(nèi)網(wǎng)向外的非法訪問。分類:網(wǎng)絡(luò)層防火墻、應(yīng)用防火墻。前者利用協(xié)議號(hào)、地址、端口號(hào)等信息,后者對(duì)整個(gè)數(shù)據(jù)流進(jìn)行分析。Comware支持的防火墻:
基于訪問控制列表的包過濾ACL/PF; 基于應(yīng)用層的包過濾ASPF; 地址轉(zhuǎn)換NAT,要改變IP報(bào)文內(nèi)容(地址、端口號(hào)).55IP的接收處理(IP_Input)上行包過濾示例:[3640]dispcurfirewallenable全局防火墻開關(guān)firewalldefaultdeny缺省為deny,匹配不上不允許通過#interfaceEthernet0/0ipaddressfirewallpacket-filter3000inbound應(yīng)用基于acl3000的上行包過濾#aclnumber3000rule0permittcpsource55source-porteqftp允許該網(wǎng)段用戶ftprule1denytcpsource55source-porteqtelnet不允許該網(wǎng)段用戶telnet#其他用戶不允許訪問[3640]56IP的接收處理(IP_Input)9.若入接口配置了NAT,則針對(duì)報(bào)文目的IP、目的端口號(hào)進(jìn)行還原處理。NAT:解決IPv4地址空間枯竭問題,使用少量的公有IP地址代表多數(shù)的私有IP地址,對(duì)外屏蔽了內(nèi)網(wǎng)結(jié)構(gòu),安全性好;但由于涉及到ip報(bào)文頭的修改,部分協(xié)議報(bào)文(如ftp)中也包含地址、端口號(hào)信息,需一并修改,軟件實(shí)現(xiàn)效率較低。按地址對(duì)應(yīng)關(guān)系分:NAT(一對(duì)一,只轉(zhuǎn)地址,不轉(zhuǎn)端口號(hào))、NAPT(多對(duì)一,地址+端口號(hào)一起轉(zhuǎn)換)Outbound應(yīng)用:對(duì)匹配指定acl的外出流量進(jìn)行轉(zhuǎn)換,根據(jù)轉(zhuǎn)換后地址來源又可分為easyip(直接使用出接口地址轉(zhuǎn)換)、地址池轉(zhuǎn)換(使用指定natpool中地址進(jìn)行轉(zhuǎn)換)Server應(yīng)用:允許從外以指定的公網(wǎng)地址訪問內(nèi)部的server主機(jī)還原處理:根據(jù)目的ip、端口號(hào)查找相應(yīng)的nathash項(xiàng),根據(jù)hash項(xiàng)中記錄的轉(zhuǎn)換前后信息替換接收?qǐng)?bào)文的目的ip和端口號(hào),必要時(shí)修改應(yīng)用層信息,重算校驗(yàn)和。57IP的接收處理(IP_Input)NAT示例:[3640]dispcur#interfaceEthernet0/0ipaddress0#interfaceEthernet0/1ipaddressnatoutbound2000允許/24網(wǎng)段用戶使用接口地址訪問外網(wǎng)natserverprotocoltcpglobalftp#允許由外以地址訪問內(nèi)網(wǎng)ftp服務(wù)器aclnumber2000rule0permitsource55rule1deny#58IP的接收處理(IP_Input)10.Netstream入方向處理:對(duì)進(jìn)入的ip報(bào)文進(jìn)行相應(yīng)的分類統(tǒng)計(jì)11.ASPF入方向處理:ASPF:ApplicationSpecificPacketFilterASPF檢測(cè)的是應(yīng)用層協(xié)議會(huì)話信息,能阻止不符合規(guī)則的數(shù)據(jù)報(bào)文穿過,并對(duì)應(yīng)用的流量進(jìn)行監(jiān)控。普通的ACL/PF僅檢測(cè)網(wǎng)絡(luò)層和傳輸層信息。12.QoS入方向處理:記錄ip報(bào)文中包含的、qos可能使用到的信息至mbuf;對(duì)接收的報(bào)文進(jìn)行分類;若接口配置了入方向的CAR(CommittedAccessRate,約定訪問速度),則進(jìn)行相應(yīng)的流量監(jiān)管處理。59start1.取入接口2.參數(shù)合法性檢查4.IP選項(xiàng)處理5.組播處理6.調(diào)用IP_Forwardend3.策略路由處理IP的轉(zhuǎn)發(fā)前處理(IP_ProcessByBoard)60IP的轉(zhuǎn)發(fā)前處理(IP_ProcessByBoard)3.策略路由: 報(bào)文入接口使能了策略路由,且定義了相應(yīng)的路由策略,需進(jìn)行策略路由處理。路由策略:可以包含多個(gè)策略點(diǎn),每個(gè)策略點(diǎn)由匹配模式(permit/deny)+一組匹配規(guī)則(if-match子句)+一組動(dòng)作子句(set子句)。當(dāng)報(bào)文滿足某策略點(diǎn)下全部匹配規(guī)則時(shí),若為permit模式,則執(zhí)行相應(yīng)的動(dòng)作,否則,不執(zhí)行相應(yīng)動(dòng)作。主要應(yīng)用在策略路由和路由發(fā)布/接收/引入兩方面,但在這兩方面應(yīng)用下的匹配規(guī)則和動(dòng)作子句有較大差別。(一條策略至少應(yīng)包含一個(gè)permit模式的策略點(diǎn)???)策略路由使用的匹配規(guī)則:if-matchpacket-length、if-matchacl策略路由使用的動(dòng)作子句: ①applyip-precedence,applyoutput-interface,applyip-addressnext-hop …………應(yīng)用于前策略路由 ②applydefaultoutput-interface,applyip-addressdefaultnext-hop
…………應(yīng)用于后策略路由61IP的轉(zhuǎn)發(fā)前處理(IP_ProcessByBoard)3.策略路由(續(xù)):
策略路由:是一種依據(jù)用戶制定的路由策略進(jìn)行報(bào)文轉(zhuǎn)發(fā)的機(jī)制,有 別于一般的基于目的IP查轉(zhuǎn)發(fā)表的轉(zhuǎn)發(fā);策略路由分類: 按照處理報(bào)文的來源,可以分為接口策略路由和本地策略路由。前者針對(duì)轉(zhuǎn)發(fā)的報(bào)文進(jìn)行處理,配置在接口上;后者針對(duì)本地發(fā)出的報(bào)文進(jìn)行處理,配置在全局模式下。本流程描述的策略路由是指接口策略路由; 按照在轉(zhuǎn)發(fā)流程中作用點(diǎn)分,可分為前策略路由和后策略路由。前者在查轉(zhuǎn)發(fā)表之前處理,后者在查轉(zhuǎn)發(fā)表之后針對(duì)未命中的情況進(jìn)行處理。兩者的匹配規(guī)則相同,但執(zhí)行的動(dòng)作不同(參見前一頁)。62IP的轉(zhuǎn)發(fā)前處理(IP_ProcessByBoard)3.策略路由(續(xù)): 接口(前)策略路由處理流程: ①根據(jù)目的IP查轉(zhuǎn)發(fā)表,確定接收到的報(bào)文不是到本機(jī)的報(bào)文; ②按照指定的策略對(duì)報(bào)文進(jìn)行匹配。匹配原則:不同策略點(diǎn)之間按照優(yōu)先級(jí)由高至低順序處理,同一策略點(diǎn)內(nèi)匹配規(guī)則是“與”關(guān)系,同時(shí)滿足才認(rèn)為匹配上; ③若報(bào)文匹配上某策略點(diǎn),且該策略點(diǎn)為permit模式,則順序執(zhí)行該策略點(diǎn)下的apply子句,否則繼續(xù)匹配后續(xù)策略點(diǎn); ④所有策略點(diǎn)都匹配失敗,則不進(jìn)行策略路由處理。63IP的轉(zhuǎn)發(fā)前處理(IP_ProcessByBoard)3.策略路由示例:[3640]dispcur#interfaceEthernet0/0ipaddress0ippolicyroute-policyexample在接口上應(yīng)用策略路由#aclnumber3000rule0permittcpaclnumber3999rule0permitip#route-policyexamplepermitnode10優(yōu)先執(zhí)行此策略點(diǎn)if-matchacl3000所有tcp報(bào)文都進(jìn)行策略路由applyoutput-interfaceSerial3/0:0route-policyexampledenynode20再執(zhí)行此策略點(diǎn)if-matchacl3999所有其它ip報(bào)文都不進(jìn)行策略路由64IP的轉(zhuǎn)發(fā)前處理(IP_ProcessByBoard)4.IP選項(xiàng)處理: 若ip報(bào)文頭長度超過20字節(jié),說明包含選項(xiàng),需進(jìn)行選項(xiàng)處理; 在處理選項(xiàng)過程中,一旦出現(xiàn)解析選項(xiàng)失敗的情況,直接丟棄報(bào)文,不再進(jìn)行后續(xù)處理; 若包含源路由選項(xiàng),則按照該選項(xiàng)直接進(jìn)行報(bào)文轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)成功,也不再進(jìn)行后續(xù)處理。5.組播處理:報(bào)文目的地址為組播地址
①在接口IP控制塊的組播地址列表中查找該目的地址,若找到則將該報(bào)文復(fù)制一份送本機(jī)處理; ②若目的地址為本地組播地址/8,不需要進(jìn)行組播轉(zhuǎn)發(fā),處理到此結(jié)束; ③若目的地址非本地組播地址,需進(jìn)行后續(xù)的組播處理,包括組播策略路由、組播轉(zhuǎn)發(fā)等等。65start1.取入接口7.TTL處理2.參數(shù)合法性檢查5.查表成功?11.IP轉(zhuǎn)發(fā)統(tǒng)計(jì)12.調(diào)用IP_IF_Outputend3.是廣播報(bào)文?IP的轉(zhuǎn)發(fā)處理(IP_Forward)4.查轉(zhuǎn)發(fā)表6.到本機(jī)報(bào)文?8.確定下一跳NNYYY9.重定向?10.填充出接口N上送上送66IP的轉(zhuǎn)發(fā)處理(IP_Forward)3.廣播報(bào)文處理: 直接上送本機(jī)一份,不進(jìn)行轉(zhuǎn)發(fā)。4.查轉(zhuǎn)發(fā)表:公網(wǎng):根據(jù)報(bào)文目的ip四級(jí)hash查公網(wǎng)轉(zhuǎn)發(fā)表;私網(wǎng):根據(jù)報(bào)文目的ip+vpn索引查私網(wǎng)轉(zhuǎn)發(fā)表(radixtree)。5.查表失?。罕眄?xiàng)不存在或不能指導(dǎo)轉(zhuǎn)發(fā)的表項(xiàng),如黑洞路由 若報(bào)文入接口配置了策略路由,則進(jìn)行后策略路由處理; 若報(bào)文入接口未配置策略路由,或后策略路由處理失敗,對(duì)于目的地不可達(dá)的報(bào)文,回應(yīng)相應(yīng)的ICMP消息;對(duì)于黑洞路由,直接丟棄報(bào)文。6.到本機(jī)報(bào)文: 直接上送,不再進(jìn)行后續(xù)轉(zhuǎn)發(fā)處理。67IP的轉(zhuǎn)發(fā)處理(IP_Forward)7.TTL處理: 對(duì)于轉(zhuǎn)發(fā)報(bào)文,判斷報(bào)文TTL>1與否,是則減1,否則丟棄報(bào)文,并回應(yīng)超時(shí)ICMP消息。8.確定下一跳: 若查找到網(wǎng)關(guān)路由,則以其網(wǎng)關(guān)地址作為報(bào)文轉(zhuǎn)發(fā)的下一跳,否則,以報(bào)文的目的地址為下一跳,將下一跳地址記錄至MBUF相應(yīng)結(jié)構(gòu)中,后續(xù)出接口發(fā)送需使用。9.重定向處理: 查找到的路由出接口就是報(bào)文的入接口,需發(fā)送重定向ICMP消息。10.填充出接口信息: 記錄出接口索引、鄰接表索引至MBUF,后續(xù)出接口發(fā)送時(shí)需使用這些信息。68指定出接口發(fā)送(IP_IF_Output)
IP_IF_Output()是在已確定報(bào)文出接口時(shí)調(diào)用的發(fā)送函數(shù);本函數(shù)在下面兩種情況下調(diào)用:對(duì)于轉(zhuǎn)發(fā)的報(bào)文,在查完轉(zhuǎn)發(fā)表之后;對(duì)于本機(jī)出去的報(bào)文,在查完轉(zhuǎn)發(fā)表之后調(diào)用。此函數(shù)參數(shù)唯一,為MBUF
在本函數(shù)中,針對(duì)上層業(yè)務(wù)的處理,與接收流程中處理是相對(duì)應(yīng)的。69指定出接口發(fā)送(IP_IF_Output)start1.取出接口7.出方向PF2.參數(shù)合法性檢查4.廣播報(bào)文處理8.出方向ASPF9.TCPMSS12分片11.IPSec出處理13.調(diào)用QOS_Output_Processend3.本地報(bào)文填充源IP5.組播報(bào)文處理6.NETSTREAM出統(tǒng)計(jì)10NAT出處理70指定出接口發(fā)送(IP_IF_Output)2.合法性檢查:檢查出接口是否合法,出接口IP控制塊是否合法,以及IP報(bào)文頭的檢查(目前僅處理對(duì)于需分片的報(bào)文卻設(shè)置了DF標(biāo)記位的情況)。3.本地報(bào)文源IP處理:對(duì)于本機(jī)出去的報(bào)文,此前的流程中源IP可能還未填,需要選擇合適的本地地址填入。選擇的原則:根據(jù)下一跳地址(不一定是報(bào)文目的IP),在出接口所有地址中選擇與其最匹配的地址。下一跳地址記錄在mbuf中,是在查轉(zhuǎn)發(fā)表后記錄的,對(duì)于網(wǎng)關(guān)路由,記錄的是其網(wǎng)關(guān)地址,其它情況就是報(bào)文的目的IP。4.廣播報(bào)文處理:對(duì)于輸出接口的廣播報(bào)文,若非本地產(chǎn)生,回送本機(jī)一份。5.組播報(bào)文處理:策略路由、組播邊界處理等。71指定出接口發(fā)送(IP_IF_Output)9.TCPMSS處理:MSS(maximumsegmentsize)是TCP的可選選項(xiàng),只出現(xiàn)在SYN報(bào)文中,用于TCP連接雙方在建立連接時(shí)協(xié)商最大傳輸數(shù)據(jù)塊的大?。ú话琁P頭和TCP頭的長度);我們的設(shè)備支持在接口上人為指定MSS的值,這樣,對(duì)于穿過我們?cè)O(shè)備的TCP連接,可以根據(jù)配置的MSS值調(diào)整TCP報(bào)文中的MSS選項(xiàng)內(nèi)容。10.NAT轉(zhuǎn)換處理:和入方向處理類似,出方向上是針對(duì)報(bào)文的源IP和源端口號(hào)進(jìn)行轉(zhuǎn)換。13.QOS_Output_Process:根據(jù)接口上的QoS配置,進(jìn)行相應(yīng)的流量監(jiān)管或流量整形處理,主要包括CAR和GTS。需要說明的是,協(xié)議報(bào)文(TOS=192,即優(yōu)先級(jí)為6)不在處理的范圍之內(nèi);調(diào)用鏈路層發(fā)送函數(shù)if_pfOutput完成發(fā)送。72IP的上送處理(IP_DeliverToUp)協(xié)議開關(guān)表:系統(tǒng)初始化時(shí),TCP/UDP/RAWIP等4層協(xié)議注冊(cè)的回調(diào)函數(shù)數(shù)組,可以按照協(xié)議號(hào)調(diào)用不同的回調(diào)函數(shù)。73本機(jī)發(fā)送報(bào)文處理(IP_Output)start5.查轉(zhuǎn)發(fā)表1.插入選項(xiàng)3.組播處理8.確定下一跳9.調(diào)用IP_IF_Outputend2.填充IP頭4.前策略路由處理6.后策略路由處理7.填充出接口74本機(jī)發(fā)送報(bào)文處理(IP_Output)1.選項(xiàng)處理:調(diào)用者傳入了有效的IP選項(xiàng)參數(shù)時(shí),需進(jìn)行選項(xiàng)插入處理,如ICMP的一些差錯(cuò)消息。4.前策略路由:6.后策略路由:兩者都是指本地策略路由,具體的處理原則與接口策略路由相同。75TCP/IP基礎(chǔ)知識(shí)交換機(jī)、路由器工作原理轉(zhuǎn)發(fā)基礎(chǔ)知識(shí)轉(zhuǎn)發(fā)流程介紹路由器快速轉(zhuǎn)發(fā)介紹76路由器快速轉(zhuǎn)發(fā)介紹快轉(zhuǎn)提出的背景:中低端路由器采用的是純軟件轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)效率的高低直接影響產(chǎn)品的市場(chǎng)占有率;原有的轉(zhuǎn)發(fā)模式(接收->入隊(duì)->隊(duì)列調(diào)度->出隊(duì)->處理->發(fā)送)效率低。全流程中,底層的收發(fā)處理能力是有保證的,瓶頸是在上層的處理效率上。隊(duì)列調(diào)度和上層的業(yè)務(wù)處理效率較低制約了整機(jī)效率。如何提升上層的處理效率???快轉(zhuǎn)的可行性:網(wǎng)絡(luò)中流量可以細(xì)分多條相對(duì)穩(wěn)定的數(shù)據(jù)流,對(duì)每一條流而言,其報(bào)文具有一些共性特征,如源目的IP、源目的端口號(hào)、協(xié)議號(hào)等都完全相同。此外,一般而言,同一條流的報(bào)文在通過路由器時(shí)所作的動(dòng)作也相同(為什么???),每包都去作完全相同的處理會(huì)存在效率上的浪費(fèi)。如果能將每條流的特征信息與所需作的動(dòng)作關(guān)聯(lián)起來,就能提升上層的處理效率;至于隊(duì)列調(diào)度效率差的問題,只要上層的處理效率得到改善,完全可以通過不入隊(duì)而直接處理的方式來避免。77路由器快速轉(zhuǎn)發(fā)介紹快轉(zhuǎn)的設(shè)計(jì)思想:1.總體思路:采用類似交換機(jī)的“一次路由,多次交換”思想,對(duì)同一條流的報(bào)文,首包走普通轉(zhuǎn)發(fā),觸發(fā)建立快轉(zhuǎn)cache,后續(xù)報(bào)文走快轉(zhuǎn),利用快轉(zhuǎn)cache直接轉(zhuǎn)發(fā)。2.如何標(biāo)識(shí)一條流:采用五元組:源IP、目的IP、源端口號(hào)、目的端口號(hào)、協(xié)議號(hào)3.快轉(zhuǎn)cache需要記錄的內(nèi)容:數(shù)據(jù)流標(biāo)識(shí)信息,即上述的五元組,用于報(bào)文匹配;報(bào)文的入接口,用于報(bào)文匹配時(shí)作校驗(yàn);報(bào)文的出接口,確定數(shù)據(jù)流最終的流向;報(bào)文從出接口發(fā)送時(shí)的鏈路層封裝(包括長度和內(nèi)容),節(jié)省了數(shù)據(jù)發(fā)送時(shí)鏈路層的封裝過程(如以太網(wǎng)的arp解析過程);動(dòng)作標(biāo)識(shí),記錄了在報(bào)文命中快轉(zhuǎn)cache后需作哪些業(yè)務(wù)的處
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國水果包裝袋行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國宮腔鏡數(shù)碼成像系統(tǒng)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國水楊酸硅烷醇C數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國制動(dòng)繩數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二四萬科高品質(zhì)住宅區(qū)商品房買賣合同3篇
- 2024年首席運(yùn)營官COO崗位聘任協(xié)議3篇
- 二零二四學(xué)校食堂特色菜系承包與研發(fā)合同3篇
- 2025年度企業(yè)并購重組財(cái)務(wù)盡職調(diào)查合同2篇
- 2019-2025年中國固廢污染防治市場(chǎng)前景預(yù)測(cè)及投資規(guī)劃研究報(bào)告
- 二零二五版礦產(chǎn)資源中介服務(wù)合同范本6篇
- 一年級(jí)上學(xué)期20以內(nèi)加減法混合運(yùn)算(不包含進(jìn)位加法和退位減法)
- 湘美版七年級(jí)上冊(cè)美術(shù) 2.卡通故事 教案( )
- 單位檔案三合一制度怎么寫范文
- 【課件】跨學(xué)科實(shí)踐:探索廚房中的物態(tài)變化問題-人教版八年級(jí)上冊(cè)物理
- GB 30254-2024高壓三相籠型異步電動(dòng)機(jī)能效限定值及能效等級(jí)
- 房地產(chǎn)企業(yè)崗位招聘筆試題題庫之四(含答案)營銷副總經(jīng)理
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- 某集團(tuán)下屬子公司年度經(jīng)營績效管理辦法全套
- 2024-2030年中國汽車防撞梁行業(yè)發(fā)展動(dòng)態(tài)與市場(chǎng)需求研究報(bào)告
- 高中語文新課標(biāo)必背古詩文72篇
- 大學(xué)俄語一級(jí)課程考試試卷 (A 卷)
評(píng)論
0/150
提交評(píng)論