基于三层交换ASIC的IPv4单播路由的分析与实现-毕业论文_第1页
基于三层交换ASIC的IPv4单播路由的分析与实现-毕业论文_第2页
基于三层交换ASIC的IPv4单播路由的分析与实现-毕业论文_第3页
基于三层交换ASIC的IPv4单播路由的分析与实现-毕业论文_第4页
基于三层交换ASIC的IPv4单播路由的分析与实现-毕业论文_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(科研训练、毕业设计)题 目:基于三层交换ASIC的IPv4单播路由的分析与实现姓 名:学 院:软件学院专 业:软件工程年 级:学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月厦门大学本科毕业论文基于三层交换ASIC的IPv4单播路由的分析与实现【摘要】 随着Internet的发展,局域网和广域网技术得到了广泛的推广和应用。数据交换技术从简单的电路交换发展到二层交换,从二层交换又逐渐发展到今天较成熟的三层交换,以致发展到将来的高层交换。 本文将对三层交换中对IPv4单播路由的实现进行深入分析。首先,介绍了互联网协议,包括互联网协议地址分类,无类域间路由;其次,介绍了三层交换机的功能、特点以及工作原理;第三,介绍了IPv4单播路由在三层交换机中的实现过程;最后分析了三层交换机的发展。【关键字】 IPv4 路由 LPM 三层交换机 Analysis and implementation of IPv4 Unicast Route Based on Layer 3 switch【Abstract】 With the development of Internet, LAN and WAN technology has been widely promoted and applied. Data-switched technology from the simple circuit-switched to the Layer 2 switched, from the Layer 2 switched to the Layer 3 switched gradually with more mature technology recently, has led to the higher layer switched technology.The implementation of IPv4 Unicast routing in the Layer switch will be analysed. Firstly, the Internet Protocol will be introduced, including the classification of Internet Protocol address, and the Classless Inter-Domain Routing; secondly, the functions, features and elements of the Layer 3 switch will also be introduced; thirdly, IPv4 Unicast Routing based on the Layer 3 switch will be introduced too; finally, the development of the Layer 3 switch has been discussed.【Keyword】 IPv4 route LPM Layer 3 switch目录引言7第一章互联网协议81.1 介绍81.2 总揽81.3 IP报文头部格式91.4 IP地址分类101.5 无类域间路由(CIDR)11第二章 三层交换机132.1 什么是路由132.2 什么是三层交换机132.3 三层交换机与路由器的区别142.4 IP报文转发16第三章 IPv4单播路由183.1 概述183.2 触发IPv4单播路由(Triggering IPv4 Unicast Routing)183.3 IPv4单播路由报文转发过程(IPv4 Unicast Routing Packet Walkthrough)203.4 IPv4路由前异常检验(IPv4 Pre-Routing Exception Checking)223.5 最长前缀匹配查找(Longest Prefix Match (LPM) lookup)233.5.1 LPM Trie树查找算法233.5.2 Trie树233.5.3 异常处理243.6访问路由表(Accessing the Route Entry)243.6.1 Regular Route Entry243.6.2 Equal/Weighted Cost Mutipath Route Entry Block253.7 IPv4单播路由表(IPv4 Unicast Route Entry)253.7.1 IPv4单播路由表的结构253.7.2 下一跳信息253.7.3 总体控制信息263.7.4 CoS信息263.7.5 管理信息273.7.6 隧道终止信息273.8 后续路由异常检验(Post-Routing Exception Checking)273.8.1 IPv4报文头部可选项283.8.2 接收到的IPv4报文头部TTL = 0283.8.3 接收到的IPv4报文头部TTL = 1283.8.4 MTU溢出283.8.5 异常处理283.9 MIB计数器(MIB Counters)293.10 IPv4路由单播转发结果(IPv4 Router Unicast Forwarding Decision)303.10.1 路由到下一跳303.10.2 与CPU通信303.10.3 黑洞路由303.10.4 抄送Ingress Analyzer端口30第四章 三层交换机的发展31致谢语32参考文献33附录35ContentsForword7Chapter 1 Internet Protocol81.1 Introduction81.2 Overview81.3 Internet Header Format91.4 Classification of IP Address101.5 Classless Inter-Domain Routing(CIDR)11Cahper 2 Layer 3 Switch132.1 What Is Routing132.2 What Is Layer 3 Switch132.3 Defferences between Layer 3 Switch and Router142.4 IP Packet Forwording16Chaper 3 IPv4 Unicast Routing183.1 Introduction183.2 Triggering IPv4 Unicast Routing183.3 IPv4 Unicast Routing Packet Walkthrough203.4 IPv4 Pre-Routing Exception Checking223.5 Longest Prefix Match (LPM) lookup233.5.1 LPM Trie Lookup Arithmetic233.5.2 Trie233.5.3 Exception Resolution243.6 Accessing the Route Entry243.6.1 Regular Route Entry243.6.2 Equal/Weighted Cost Mutipath Route Entry Block253.7 IPv4 Unicast Route Entry253.7.1 IPv4 Unicast Route Entry Structure253.7.2 Next Hop Information253.7.3 General Control Information263.7.4 CoS Informaiton263.7.5 Management Information273.7.6 IPv4 Tunnel Termination Information273.8 Post-Routing Exception Checking273.8.1 IPv4 Options Header283.8.2 Incoming IPv4 Header TTL = 0283.8.3 Incoming IPv4 Header TTL = 1283.8.4 MTU Exceeded283.8.5 Exception Resolution283.9 MIB Counters293.10 IPv4 Router Unicast Forwarding Decision303.10.1 Routing to the Next-Hop303.10.2 Traffic to the CPU303.10.3 Black Hole Dropping303.10.4 Mirroring to Ingress Analyzer Port30Chapter 4 Development of Layer 3 Switch31Acknowledgement32References33Supplement35引言二层交换技术从最早的网桥发展到VLAN(虚拟局域网),在局域网建设和改造中得到了广泛的应用。第二层交换技术工作在OSI七层网络模型中的第二层,即数据链路层。它按照所接收到数据包的目的MAC地址来进行转发,对于网络层或者高层协议来说是透明的。它不处理网络层的IP地址,不处理高层协议的诸如TCP、UDP的端口地址,更不可能识别来自应用层的协议,它只需要知道数据包的物理地址即MAC地址,数据交换是靠纯硬件来实现的,其速度相当快,从10mb、100mb、到如今的1000mb或更高,其发展相当迅速,这是二层交换的一个显优点。但是,它不能处理不同IP子网之间的数据交换。传统的路由器可以处理大量的跨越IP子网的数据包,但是它的转发效率远远比二层要低的多,因此要想利用二层转发效率高这一优点,又要处理三层的IP数据包,三层交换技术就诞生了。三层交换技术与传统的路由技术不同,传统的路由技术是通过一定的路由算法来选择到达各个子网的最佳路径,实现路由选择和网络互连;而三层交换技术是利用L3层中的IP数据包的包头信息来加强L2层交换,以期解决路由技术中转发效率较低的技术瓶颈。三层交换技术在现在的网络建设和改造中起着越来越重要的作用,逐渐从局域网LAN进军到了广域网WAN。近来三层交换技术越来越受到企业用户的关注,应用也越广泛,如公司和校园的网络全是具有三层功能的交换网络,交换机是三层交换机。可见,三层交换技术被广泛应用于各大企业、校园等场所的网络架构当中。第一章 互联网协议1.1 介绍互联网协议是为了在报文交换计算机通讯网络的互联系统中使用而设计的。互联网协议提供从发起者到目的地的块数据(数据报)的传输,发起者和目的地都是由固定长度的地址标识的主机。如果需要,互联网协议也提供长数据报的分片和重组,以通过小传输量的网络传输大数据报。互联网协议仅限于提供在互联网络系统上从发起者到目的地投递一个Internet数据报所需的功能。不提供增强端到端的可靠性,流程控制,排序,和其它主机到主机协议上常有的服务。互联网协议可以支持网络提供不同类型和不同质量的服务。 互联网协议提供两个基本功能,即寻址和分片。在网络环境中,该协议被视作主机到主机之间的协议,它通过调用本地网络协议来实现传输Internet数据报到下一网关或者目的主机。1.2 总揽图1-1 揭示了互联网协议在协议层次中的位置互联网协议接口上层是高级别的主机之间的协议,下层则是局域网络协议。在这里局域网络可以是一栋大楼里的一个小网络,也可以是像ARPANET这样的大网络。互联网协议的功能和目的是通过一个互联的网络传输数据报。这是通过从一个Internet模块到另外一个Internet模块传递数据报直到目的地址来实现。Internet模块位于主机上或者Internet系统上的网关。数据报通过基于一个Internet地址的解析从一个Internet模块选路到另一个Internet模块。因此,互联网协议的一个重要功能就是Internet寻址。在从一个Internet模块到另外一个Internet模块的信息寻址中,数据报文可能需要在一个最大报文大小小于数据报大小的网络上传输。为了客服这个困难,在互联网协议中提供了分片机制。1.3 IP报文头部格式图1-2 IP报文头部格式 Version:4位用于区别协议的版本,对于IPv4,这里是4,对于IPv6,这里就是6。 IHL:4位全称是Internet Header Length,用于记录IP报文头部的长度,最小是5(如图),因为Options域可有可无,所以需要IHL确定报文头部的实际长度。 Type of Service:8位简称TOS,用于控制报文的服务质量。 Total Length:16位用于记录IP报文的总的字节数,包含报文头部和报文数据。 Identification:16位用于标识报文分片的序列。 Flags:3位用于标识当前报文是否进行了分片处理,是否是最后一个分片。 Fragment Offset:13位用于记录当前分片在原报文中的位置。 Time to Live:8位简称TTL,记录报文的生命期,IP报文每经过一个三层设备,TTL都会被减去一,当三层设备收到TTL等于0的报文,会将其丢弃。用于防止IP报文无休止的循环。 Protocol: 8位该头部指示了在internet数据报的数据部分中使用的下一个层次的协议。 Header Checksum:16位记录报文头部校验和,仅仅是报文头部的校验和。 Source Address:32位报文的源IP地址。 Destination Address:32位报文的目的IP地址。 Options: 可变选项可以出现也可以不出现在数据报中.所有的IP模块(主机和网关)必须实现这个模块。可选的是在任一个特殊数据报中它们的传输,而不是它们的实现。 Padding: 可变IP头部填充用来确保Internet头部在32位边界结束。填充字节是0。1.4 IP地址分类图1-3 IP地址分类在网络域上,0表示该网络地址,全1表示该网络的广播地址。根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。一个机构或网络要连入Internet,必须申请公用IP地址。但是考虑到网络安全和内部实验等特殊情况,在IP地址中专门保留了三个区域作为私有地址,其地址范围如下:10.0.0.0/8:10.0.0.010.255.255.255172.16.0.0/12:172.16.0.0172.31.255.255192.168.0.0/16:192.168.0.0192.168.255.255使用保留地址的网络只能在内部进行通信,而不能与其他网络互连。但是这些使用保留地址的网络可以通过将本网络内的保留地址翻译转换成公共地址的方式实现与外部网络的互连。这也是保证网络安全的重要方法之一。1.5 无类域间路由(CIDR) 由于每年连入Internet的主机数成倍增长,导致Internet面临B类地址匮乏 ,因此现在的多个网络站点只能采用多个C类网络号 。尽管分配这些C类地址解决了一个问题( B类地址的缺乏),但它却带来了另一个问题:每个C类网络都需要一个路由表表项。无类域间选路( CIDR)是一个防止Internet路由表膨胀的方法,它也称为超网(supernetting)。在RFC 1518 和RFC 1519 中对它进行了详细描述 。CIDR是ClasslessInterDomainRouting的缩写,意为无类别的域间路由。它的思想是:把许多C类地址合起来作B类地址分配。具体地说,整个世界被分为四个地区,每个地区分配一段连续的C类地址: 欧洲:194.0.0.0195.255.255.255 表示成:194.0.0.0/7 北美:198.0.0.0199.255.255.255 表示成:198.0.0.0/7 中南美:200.0.0.0201.255.255.255 表示成:200.0.0.0/7亚太地区:202.0.0.0203.255.255.255 表示成:202.0.0.0/7另有约3200万的地址204.0.0.0223.255.255.255保留备用. 这种分配方式的优点是:1.地址的分配是连续的;2.CIDR使路径表的设置更容易。比如,在欧洲以外的一个路由器收到一个地址为:194.xx.yy.zz或195.xx.yy.zz的数据报文,可以直接把它丢到通往欧洲的路径上而不用考虑xx,yy,zz的值是什么(只要目的IP地址(DIP)对254.0.0.0取得的模等于194.0.0.0)。当然,当这个数据包到达欧洲后,还要进行更详细的路由,比如根据子网模把它发送到某个子网。第二章 三层交换机2.1 什么是路由路由就是信息通过一条路径从源地址转移到目的地址的过程,传输路径的选择即是路由。在TCP/IP网络上,发送方和目的方都叫做主机,信息被分成小报文在主机之间传送。2.2 什么是三层交换机三层交换机是一种具有路由功能的交换机。三层交换机接口类型简单,拥有很强二层包处理能力,所以适用于大型局域网。为了减小广播风暴的危害,必须把大型局域网按功能或地域等因素划分成一个一个的小局域网,也就是一个一个的小网段,这样必然导致不同网段间存在大量的互访,单纯使用二层交换机没办法实现网间的互访,而单纯使用路由器,则由于端口数量有限,路由速度较慢,而限制了网络的规模和访问速度,所以这种环境下三层交换机就最为适合。 三层交换机内部有一个路由表(建立在芯片上),这个表标明了如果要去某个地方,下一步应该往哪走。三层交换机从某个端口收到一个IP报文,它首先读取目的IP地址,然后查找路由表,若能确定下一步往哪送,则再修改链路层的包头(打包),把该数据包转发出去;如果不能确定下一步的地址,则向源地址返回一个信息,并把这个数据包丢掉。当下一台三层设备(三层交换机或路由器)接收到该IP报文,也会根据DIP查找路由表,确定下一步往哪送,并将数据转发出。依次类推,直到数据包到达最终目的地。路由技术其实是由两项最基本的活动组成,即决定最优路径和传输数据包。其中,数据包的传输相对较为简单,而路由的确定则更加复杂一些。三层交换机的软件负责最优路由的决定,硬件负责传输数据包。三层交换机的软件通过RIP,OSPF等协议确定最优的路径,并将最优的路径写入芯片上的路由表。硬件根据芯片上的路由表线速传输数据。三层交换机通过和三层交换机,或和路由器进行相互通讯,传送不同类型的信息维护各自的路由表。其中路由更新信息一般是由部分或全部路由表组成。通过分析其它三层设备发出的路由更新信息,三层交换机可以掌握整个网络的拓扑结构。这样在掌握足够信息的情况下,三层交换机就能分析出最优路由,并将其写入硬件路由表。 2.3 三层交换机与路由器的区别路由器端口类型多,支持的三层协议多,路由能力强,所以适合于在大型网络之间的互连,虽然不少三层交换机甚至二层交换机都有异质网络的互连端口,但一般大型网络的互连端口不多,互连设备的主要功能不在于在端口之间进行快速交换,而是要选择最佳路径,进行负载分担,链路备份和最重要的与其它网络进行路由信息交换,所有这些都是路由完成的功能。三层交换机的路由功能部分和路由器一样都是工作在OSI七层网络模型中的第三层网络层。如下图:图2-1 OSI七层模型及TCP/IP协议栈图2-2 路由器在TCP/IP协议栈中的位置图2-3 三层交换机在TCP/IP协议栈中的位置2.4 IP报文转发注:图2-4 包含三层交换机和路由器网络PC1和PC2的默认网关是192.168.5.1PC3和PC4的默认网关是192.168.3.1PC5和PC6的默认网关是192.168.4.1同一子网内PC间的IP报文转发过程 如图PC1和PC2同属于192.168.5.0/24网段,PC1发送IP报文到PC2,则报文的DIP是PC2的IP地址,SIP是PC1的IP地址。 PC1解析DIP的MAC地址; 将DIP对应的MAC地址,填入以太网报文的“MAC DA”域,将PC1的MAC地址填入“MAC SA”域; PC1将封装好的报文发送到二层交换机1; 二层交换机1收到报文,根据报文中的MAC DA查找交换机上的MAC地址表,如果查找失败,则报文转发到所有端口,自然包括与PC2连接的端口;如果查找成功,则根据MAC地址表项中的端口号输出;由于MAC地址是全球唯一的,所以只要PC1和PC2在二层交换机1上的端口同属于一个vlan,PC2就能MAC DA等于PC2的MAC地址的报文; PC2收到报文,检查DIP是PC2的IP地址,则接受该报文,并根据报文的含义,做回应; 同样PC2到PC1的IP报文也是类似上述的过程。不同子网的PC间IP报文转发过程: 如图PC1和PC3分别属于192.168.5.0/24网段和192.168.3.0/24网段,PC1发送IP报文到PC3,则报文的DIP是PC3IP地址,SIP是PC1的IP地址。 PC1解析网关的MAC地址,每个网络接口都有全球唯一的MAC地址; 将网关对应的MAC地址,填入以太网报文的“MAC DA”域,将PC1的MAC地址填入“MAC SA”域; PC1将封装好的报文发送到二层交换机1; 二层交换机1收到报文,根据报文中的MAC DA查找交换机上的MAC地址表,如果查找失败,则报文转发到同vlan所有端口;如果查找成功,则根据MAC地址表项中的端口号输出;由于MAC地址是全球唯一的,所以二层交换机会将MAC DA等于192.168.5.1对应的MAC地址的报文转发到三层交换机; 三层交换机收到报文,先查MAC DA,若对应的FDB表项要求送路由,则再根据DIP查找路由表,如果查找成功,则根据路由表的下一跳信息,修改报文中的MAC DA为下一跳设备的MAC地址,修改报文中的MAC SA为输出网络接口的MAC地址,并将报文输出,如果查找失败,则丢弃报文; 二层交换机2收到报文后,通过查找MAC地址表后,也必会将报文转发到PC3; 同样PC3到PC1的IP报文也是类似上述的过程。第三章 IPv4单播路由3.1 概述无类域间路由要求路由机制能够有效执行最长匹配算法(LPMLongest Prefix Match),来实现最短搜索时间和转发间隔。转发表遵守如RIP和OSPF这样的普通单播路由协议。下一跳的转发目的地可以是设备端口, 集群(trunk group), VLAN组, 或者多播VIDX 组。Equal and Weighted Cost多路转发支持从多个下一跳路由寻找出一条给定的路由。CoS-based路由支持根据报文的DSCP直接通向下一跳。.Policy-based路由支持通过使用Policy机制直接连接报文与路由表,忽略其中的单播与组播路由查找。为了支持单播路由通信ICMP重定向信息,如果下一跳接口与收到报文接口相同,报文将被抄送给CPU。为了支持无用路由表的老化,每一次路由表操作之后,路由表的存活时间都将被更新。CPU定时清理检查路由表,删除老化了的路由表。路由之后的报文MAC目的地址和MAC源地址得到更新,以及IP报文头TTL减一和校验和重新计算。3.2 触发IPv4单播路由(Triggering IPv4 Unicast Routing)接收到的报文将被送往IPv4路由机制来处理。只有在下列条件都成立时,IPv4报文才被转发: 在先前阶段的Ingress Pipe处理中,报文没有被标记为发送给CPU。 报文没有被网桥标记为丢弃,或者相应的端口的InLIF Entry中的区域没有被设置。 报文没有被Ingress Policy机制或者Ingress Policing机制标记为丢弃。 报文没有被Ingress Policy机制提交给Policy-based交换。以及下列任意条件成立时,IPv4 报文发往路由: 以太网报文头部 = 08-00(IPv4)。 目的IP地址不是多播的(即DIP31:28 != 0xE)。 MAC目的地址为单播的。 在网桥的地址表中存在MAC目的地址。 地址表中MAC目的地址表项的被设置。 InLIF Entry中被设置。以及下列任意条件成立时,IPv4 报文发往Policy-based路由: 以太网报文头 = 08-00(IPv4)。 报文被Policy机制处理过。 在Policy操作中, = Policy based Routing。注:Policy-based 路由: If the packet is policy-based routed by the Policy engine, the packet is subject to all of IPv4 Router engine stages with the following exceptions: Address lookup result is ignored: The Route Entry is taken directly from the Policy Action Entry Equal-Cost Multipath or Cos-based routing is not supported when performing Policy-based routing.3.3 IPv4单播路由报文转发过程(IPv4 Unicast Routing Packet Walkthrough)图3-1 IPv4报文在三层交换机中的转发过程Layer 2 Engine: 用以识别发送路由的IPv4报文MAC地址,这也是触发IPv4路由的一个必要件。InLIF Mapping:InLIF(Input Logical Interface) Entry为每一个逻辑接口分配相应的各种属性,其中包括用以触发IPv4路由的属性。Ingress Policy Engine:无论是接收自哪一个输入逻辑接口,还是发送给哪一个MAC地址,Ingress Policy Engine都能够重定向任意IPv4报文并将其提交给IPv4路由。IPv4 Routing Engine:IPv4 Routing Engine完成了对IPv4报文的确认(即异常检验),IPv4地址查找以及路由表操作。Pre-Egress Engine:Pre-Egress Engine负责将报文转发给输出端口,或者将报文转发其他报文处理器。Egress Header Manipulation:所有的Prestera-EX报文处理器在报文发送到网络之前,都在输出端口执行对报文头部的操作和更新。IPv4 Routing Engine处理的单播报文被提交被Egress Header Manipulation。图3-2 IPv4单播路由Pre-Routing Exception Checking:在进入最长前缀匹配查找之前,本阶段提供了对IPv4报文正确性的确认。详见3.4Longest Prefix Match Lookup:最长前缀匹配(LPM Longest Prefix Match)查找阶段搜索了LPM前缀表中的IPv4目的地址。详见3.5。Accessing the Route Entry:LPM查找提供了访问路由表所需要的信息,包括支持Equal Cost Multipath和CoS-based routing。详见3.6、3.7。Post-Routing Exception Checking:本阶段完成路由表找到之后的一场检验。详见3.8。MIB Counting:IPv4 Routing Engine实现了对转发报文、丢弃报文、发送CPU报文的统计。计数器可以通过主机CPU实现访问管理的目的。详见3.9。Route Entry Forwarding Decision:详见3.10。3.4 IPv4路由前异常检验(IPv4 Pre-Routing Exception Checking)IPv4路由提供了一系列的路由前检验,一些错误将报文在路由前丢弃。IPv4路由前异常检验独立于路由表,仅依赖于IPv4报文头部信息。IPv4报文头部错误(IPv4 Header Error):当下列任意一个条件成立时,IPv4报文头部发生错误: IPv4报文头部 != 4 IPv4报文头部 5 (32-bit字) IPv4报文头部不正确 当二层三成位匹配校验被激活时, + 报文L3段偏移 + 4(CRC长度) MAC层报告的报文长度IPv4非法地址错误(IPv4 Illegal Address Error):当下列任意一个条件出现时,发生IPv4非法地址错误: 源IP或目的IP是E类地址(范围224.0.0.0 255.255.255.224)。 源IP为全1的地址,即有限广播。有限广播不能作为源地址。 源IP是D类地址,即组播地址(范围224.0.0.0 239.255.255.255)。 源IP或目的IP是回环地址(即127.0.0.0/8)。保留IPv4目的地址错误:下列目的IPv4地址不能在公共网络出现:10.0.0.0/8 172.16.0.0/12 192.168.0.0/16。另外目的地址0.0.0.0/32也不能作为目的IPv4地址。受限制IPv4目的地址错误:在一个网络中,受限制IPv4地址被用以防止来自不可信任接口的报文访问内部网络。输入逻辑接口将把携带可配置网络的目的IPv4地址的路由报文当作受限制IPv4目的地址错误。异常处理:如果出现上述异常,IPv4路由将执行如下操作:报文将被硬件丢弃,或者传送给CPU或者抄送给CPU。3.5 最长前缀匹配查找(Longest Prefix Match (LPM) lookup)3.5.1 LPM Trie树查找算法LPM查找是基于反复查找和遍历所有LPM Trie数据结构的。LPM查找过程中,以IP地址的每一位为LPM Trie树的一个结点,查找时,LPM查询每一个可能的匹配情况,直到得到最长匹配的前缀。LPM Trie树算法将0.0.0.0/0设置为缺省路由,当找不到可以匹配的路由时,所有的IP都可以与此路由匹配并选择缺省路由。3.5.2 Trie树当关键码是可变长的时候,Trie树是一种特别有用的索引结构。Trie树是一棵度m = 2的树,它的每一层分支不时靠整个关键码的值来确定的,而是由关键码的一个分量来确定。关键码由IP地址组成。它包括两类结点:元素结点和分支结点。元素结点包含整个Key数据;分支结点用来存储指向下一个分量的指针。为了在Trie树上进行搜索,要求把关键码分成一些字段,如192.168.0.1分解成192、168、0、1四个字段,并根据这些字段下下搜索各个分支。3.5.3 异常处理LPM查找及路由表查找过程中可能出现两种类型的异常: ECC内存错误。 错误的LPM Trie树配置导致LPM查找失败。当错误发生后,将对报文进行如下操作: 丢弃报文。 根据LPM查找时遇到的错误更新错误的LPM注册表。 如果是LPM错误,L3-L4中断注册表区域将被设置。 如果是路由表ECC错误, L3-L4中断注册表区域将被设置。3.6访问路由表(Accessing the Route Entry)地址寻找的结果将得到两个值,一是路由表指针,二是路由表类型。路由表有如下的类型: Regular Route Entry:直接关联地址的路由表。 Equal/Weighted Cost Multi-Path Route Entry Block:路由表的一个模块直接关联地址,另一个模块是基于L2、L3、L4报文头部的哈希索引,被选作用于转发报文。 CoS Route Entry Block:路由表的一个模块直接关联地址,另一个模块是基于DSCP报文,被选作用于转发报文。 Default Route Entry Block:缺省路由前缀为0.0.0.0/0。基于输入逻辑接口设置选择一个缺省路由。3.6.1 Regular Route EntryRegular Route Entry根据LPM查找的倒的指向路由表的指针来实现路由查找。3.6.2 Equal/Weighted Cost Mutipath Route Entry Block如OSPF、IS-IS之类的路由协议支持ECMP路由,即支持一个给定的目的地址关联多个下一跳路由。RFC2991中推荐使用ECMP算法防止报文通过不同的路径转发。ECMP通过如下计算下一跳路由:MAC Hash = MAC SA xor MAC DAIP Hash = IPv4 DA xor IPv4 SAECMP/Trunk Hash = MAC Hash xor IP Hash xor (IPv4 Header and )3.7 IPv4单播路由表(IPv4 Unicast Route Entry)IPv4路由表位于内部控制SRAM中。路由表包括下一跳信息,以及后续路由异常处理的命令和确认信息。在完成LPM查找之后,IPv4单播路由表的地址被计算得出,报文也经过了相应的处理。3.7.1 IPv4单播路由表的结构逻辑上,路由表可以分为以下几个部分: 下一跳信息:下一跳路由要转发的目的地。 总体控制信息:这部分包括总体控制和命令区域。 CoS信息:这部分包含CoS分配信息。 管理信息:这部分控制路由计数器。 IPv4隧道终止信息:这部分控制IPv4隧道终止处理。3.7.2 下一跳信息路由表下一跳信息包括下一跳是依赖于链路层输出逻辑接口还是隧道输出逻辑接口的信息。具体内容如下: 链路层输出逻辑接口 + ARP目的地址指针:链路层输出逻辑接口包括非隧道报文的转发信息:报文路由VLAN的分配;转发目的地:设备物理端口,或Trunk,或VLAN、VIDX组播组。当下一跳信息包括链路层输出逻辑接口时,IPv4路由表下一跳业将包括ARP目的地址指针是,该指针指向下一跳目的地的MAC目的地址。 隧道输出逻辑接口:隧道输出逻辑接口包括隧道报文的转发信息:隧道表指针;链路层输出逻辑接口。3.7.3 总体控制信息路由表总体控制信息包括如下信息: Command:路由支持下列这些命令:n ROUTE:报文正常路由n TRAP:报文发送CPU处理n DROP:报文被丢弃 Mirror to Analyzer:如果本区域被设置,报文将被抄送给Ingress Analyzer Port。 Mirror to CPU:当且仅当不是TRAP和DROP时,本区域才有效。如果本区域被设置,报文的一个携带的备份将抄送给CPU。 Decrement TTL:本区域控制对IPv4报文头部区域的修改。一般情况下,路由报文的TTL都将减去1,但是如果有特别要求,本区域将避免TTL减1。 Outgoing TTL:当本区域为非0时,IPv4报文头部被设置为外出报文。当应用程序知道到达目的地的距离且应用程序希望设置一个小值TTL以防止报文在网络中循环发送时,这种功能将显得很有价值。 Maximum Transmission Unit (MTU):MTU即是指下一跳所连接的网络所允许传输的最大报文。如果报文尺寸大于MTU,报文将提交后续路由异常处理。此时,报文或者分片转发,或者被丢弃并发送一个ICMP控制报文给发送方。3.7.4 CoS信息路由表允许更新路由报文的CoS分配。IPv4路由表的CoS配置不影响报文是发送或抄送CPU,或者抄送Analyzer Port。IPv4 路由表包括下列CoS信息: Force CoS:如果本标志被激活,路由表值配置将不考虑报文的Traffic Class和Drop Precedence分配。 Traffic Class:Traffic参数提供报文的内在优先级。他通过芯片QoS机制确定报文的处理,如排序和调度。本区域当且仅当不被设置时才有效。 Drop Precedence:Drop Precedence使用在QoS机制中出现拥塞现象的时候。本区域当且仅当不被设置时才有效。 Force User Priority:如果本标志被激活,路由表的指将不考虑IEEE 802.1p报文的用户优先级分配。 User Priority:如果被激活,本区域将不考虑Ingress Pipe前一阶段的IEEE 802.1p报文的用户优先级分配。3.7.5 管理信息IPv4路由表包含有下列控制信息: IP Management Counter Set:本区域实现路由表IP管理计数器的设置和清除。 Age/Refresh Flag:当查找算法选出路由时,本区域将被设置。本区域有可能被CPU读取或者更新。其目的是让应用程序实现老化机制来检查路由表是否处于活跃转台。 ICMP Redirect Hook Enable:本区域激活硬件设备使CPU支持ICMP重定向信息。当其处于激活状态时,如果报文的路由表下一跳路由于报文接收时接口一样,报文将被抄送CPU并允许软件发送一个ICMP重定向报文给发送主机或路由器。3.7.6 隧道终止信息隧道提供了多种不同的转输协议来实现传输的,这里不多加讨论。3.8 后续路由异常检验(Post-Routing Exception Checking)路由器(三层交换机中的路由功能)可以识别并处理报文路由发生时遇到的各种各样的异常情况。除非有特殊规定,下列命令适用于所有的异常处理: 硬件丢弃:这样的报文总是被丢弃 发送给CPU 单播报文发送给CPU,组播报文桥转发源VLAN,并抄送CPU 抄送并路由 软件丢弃:除非有来自其他异常的更高优先级的处理,报文都被丢弃 桥转发一个报文可能遇到一种以上的异常,在这样的情况下,对多个报文处理的优先选择显得很重要,这些是由消费者程序来定义的。3.8.1 IPv4报文头部可选项当IPv4报文头部 5(32-bit字)时,IPv4报文包含有可选项信息,而这些信息在转发过程中同样被检查。3.8.2 接收到的IPv4报文头部TTL = 0 如果接收到的报文头部TTL部分为0,报文将不再被转发。但是,如果这样的报文是发送给本机的,则报文应该被接收并处理。如果报文是转发或路由下一跳的,这样的报文将不被转发,报文将携带命令被发送或者抄送给CPU。3.8.3 接收到的IPv4报文头部TTL = 1如果接收到的报文头部TTL部分等于1,且报文不被送往隧道发送,同时路由表中区域有效,这样的报文将携带命令被发送或者抄送给CPU。3.8.4 MTU溢出如果IPv4报文尺寸大于连接下一跳端口的网络的最大传输单元(MTU),路由器(三层交换机中的路由功能)将不会转发该报文。在这样的情况下,报文或者被分片转发或者被丢弃并发送一个携带“Too Big”信息的ICMP报文给发送方。MTU的值指路由表关联的网络三层报文的最大尺寸,包括IPv4头部及扩张区域,但是二层头部及尾部没有被计算在内。3.8.5 异常处理 后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论