-
2021-01-03 16:08:30
模拟器:eNSP
报文分类的目的:
大多数的QoS工具都能对进来的业务流分类,分类的目的是对进来的不同流量实施不同级别的QoS服务。在当前的网络中,分类和打标记在网络的边缘发挥了重要的作用,而在网络的核心根据标记来分类并实施相应的QoS动作,这是实现差分服务的前提和基础。分类的工具有多种,可在接口下应用ACL或由MQC使用traffic classifer定义具备复杂匹配能力的流分类。
传统的工具进行分类:
也就是接口下使用ACL进行分类,这种分类方法多和传统的QOS工具,如Remark (打标记)、CAR (监管) 一起使用,它最大的特征是把全局定义的用于匹配数据报文的ACL直接在接口下调用,其匹配进入或离开接口的流量,对ACL所允许的报文做限速或过滤等处理。
此种分类方式的特点是实现简单、匹配能力有限,需要和其他传统QoS配置工具一起使用。例如:
acl number 2000 rule 0 permit source 192.168. 1.0 0.0.0.255 #acl2000,允许源地址为192.168.1.0网段的报文通过 acl number 2001 rule 0 permit source 192. 168.2.0 0.0.0.255 #acl2001,允许源地址为192.168.2.0 网段的报文通过 interface GigabitEthernet3/0/0 ip address 1.2.0.2 255.255.255.0 qos car outbound acl 2000 cir 512 cbs 32000 pbs 432000 green pass yellow pass red discard #在接口下直接调用qos car监管命令,其对在接口出方向对符合ACL 2000规则的报文做流量监管,指定承诺信息速 率为512kbit/s qos car outbound acl 2001 cir 128 cbs 8000 pbs 72000 green pass yellow pass red discard #同样,接口出方向对符合ACL 2001规则的报文做流量监管,指定承诺信息速率为128kbit/s
MQC方式进行分类:
概述:
MQC是灵活性很强的配置工具,其可使用trfficclassifer定义复杂的匹配规则,可以匹配报文的LI/L2/L3/L4甚至L7。匹配规则通过识别报文头中的一层、二层、三层及高层相应字域的内容。
常见的分类依据如下:
识别报文是分类阶段的职责。使用MQC方式进行分类,也被称为复杂流分类。华为设备上配置命令:
执行命令traffic classifier classifier-name [ operator { and | or } ],创建一个流分类,进入流分类视图。
• and:报文只有匹配了类中的所有的规则,设备才认为报文属于此类。当流分类中有ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类。当流分类中没有ACL规则时,则报文必须匹配所有非ACL规则才属于该类。
• or:报文只要匹配了类中的一个规则,设备就认为报文属于此类。
if-match 匹配条件
if-match 匹配条件
…报文标记:
本地优先级和报文优先级:
标记是对分类的流量打上不同的标签,据此分级别对待不同的数据,称为优先级标记。根据优先级标记的作用,华为设备可分为设备内部优先级(又称为本地优先级)和报文优先级(又称外部优先级)。设备内部优先级是对进到设备内部的数据报文给予的一个内部优先级标记值,根据该值可在设备内部分配或优化资源分配,如选择队列。设备内部优先级和报文优先级的关系:
●设备内部优先级是用于内部资源分配和调度使用的值,每个进到设备的报文一定都会得到一个值,该值根据入接口配置的信任或Remark功能而生成。
●报文优先级是报文本身所携带的OoS标记值。两层报文使用802.1p或EXP而三层报文多使用IP Precedence和DSCP。报文在离开设备时,报文优先级可能会被重写,把内部优先级作为报文优先级携带出去。优先级分类:
优先级映射是在交换机或路由器内部把报文携带的QoS优先级与设备内部优先级做转换,从而使设备根据内部优先级提供有差别的QoS服务质量的过程。不同的网络技术,QoS 优先级标记会不同,用户可以根据网络规划在相应网络上使用相应的QoS优先级标记。例如,以太网络上(802.1Q 链路)使用802.1p, IP网络中使用IP Precedence或DSCP,MPLS 网络中使用EXP等。
华为设备在其入口根据接口信任的信任关系配置映射表生成内部优先级。在出口,根据内部优先级或802.1p选择出队列,并映射到报文优先级。
当报文经过不同网络时,为了保持报文的优先级,需要在连接不同网络的设备上配置这些优先级字段的映射关系。当数据报文进入设备时,其外部优先级字段(802.1p 或DSCP或MPLS EXP)被映射为内部优先级:报文离开设备时,将内部优先级映射为外部优先级字段。
二层标记:
Vlan tag中和MPLS报文中的表示优先级的字段都是3bit,0-7,越大越优先。默认情况下都是0,做尽力而为的转发。7为系统的报警字段,6一般为协议相关的控制信息,如OSPF报文,5一般为语音流量,4一般为网帧流量(视频),优先级为0也叫做cs0。以太网帧上的802.1p标记又常被称为CoS (Classification of Service)。
三层标记:
在IP报文里,我们使用的是8bit来表示优先级,在最初的时候,只使用了前面3个bit,也就是和二层标记一样,0-7来表示流量的优先级,但是因为流量种类很多,0-7完全无法满足真实的需要,所以后将后面三个字节划分作为优先级的标识,只是最后2个字节没有使用。这也被称为了DSCP。
IPP:
IP Precedence也是IP报又上的一个标记,占Tos子域的头3位,同CoS相似,值越大,代表的优先级别就越高,是比较老的一种QoS标记,在一 些传统的QoS工具中使用较多。IPP 值和名字的对应关系如下图所示:DSCP:
IETF DiffServ工作组目前定义了四种PHB( Per-Hop Behaviors,下一跳行为)。- Default PHB:提供best-effort服务,数值为0。
- Class-Selector PH:后3位数值为0,头三位非0的DSCP,用来和IPP兼容。
- Expedited Forwarding PHB:服务于低延迟应用,数值为46。
- Assured Forwarding PHB:用于提供带宽保证,数值请参考下图。
如果前面三个字段为111,后三个字段为000,向下兼容ip优先级的,表示为CS7,同样前三个字段110,后三个字段为000,表示为CS6。EF表示当前面三个字段为101,后面三个字段为110,也就是总体为46,表示加速转发。
AF字段只用了前面的5个bit,前三个bit作为x,后两个bit作为y,x取值范围1-4,越大表示转发的优先级越大,后两个bit范围为1-3越大表示拥塞时丢弃的优先级越大,转发和丢弃的优先级是互相独立的。
注意,第6位没有使用到就会保持为0,当y为0的时候,AF4表示的也就是CS4,AF3表示的也就是CS3,AF2表示的也就是CS2,AF1表示也就是CS1。最后BE表示的是6位全部为0的情况,也就是表示CS0。
内部优先级使用同DSCP一样的取值范围,可以做到同DSCP一致的精细化控制。
生成内部优先级工具一:信任关系
当报文进入设备内部时,根据接口配置的信任状态决定设备内部的优先级,在报文的入端口上设置信任关系,会影响内部优先级和报文优先级。使用命令: trust { 8021p[ override ]| dscp [ override ]| exp},设备可选择其中一种进行配置。
1.信任报文的802.1p优先级——trust 8021p
- 对于带VLANTag的报文,设备根据报文携带的802.1p优先级查找优先级映射表,生成内部优先级,确定报文进入的队列,并修改报文的优先级值。
- 对于不带VLAN Tag的报文,设备将使用端口优先级作为802.1p 优先级,查找优先级映射表,确定报文进入的队列,并可以修改报文的优先级值。
- 建议LAN中使用信任802.1p生成内部优先级。
- 进到设备的802.1p为3的报文,在设备内部使用内部优先级AF31。同理, 802.1p为5的报文。在设备内部分配内部优先级EF。
- 当报文从出口离开设备时,报文优先级没有被改写。
相关配置:
#配置优先级映射在路由器A上 #配置Eth2/0/0和Eth2/0/1接口信任报文的802.1p优先级 [RouterA] interface ethernet 2/0/0 [RouterA-Ethernet2/0/0] trust 8021p [RouterA-Ethernet2/0/0] quit [RouterA] interface ethermnet 2/0/1 [RouterA-Ethernet2/0/1] trust 8021p [RouterA-Ethernet2/0/1] quit #配置优先级映射关系 [RouterA] qos map-table dot1p-dscp [RouterA-maptbl-dot1p-dscp] input 3 output 26 [RouterA-maptbl-dot1p-dscp] input 5 output 46 #验证配置结果 #查看RouterA上的优先级映射信息 <RouterA> display qos map-table dot1p-dscp Input Dotlp DSCP 0 0 1 8 2 16 3 26 4 32 5 46 6 48 7 56 #trust 802.1p后 ,根据802.1p生成内部优先级
2.信任的报文的DSCP优先级一一trust dscp
设备按照报文携带的DSCP值查找DSCP优先级映射表,生成内部优先级。默认情况下,报文的DSCP优先级和内部优先级是一一对应的关系,可以使用命令qos map-tab1e dscp-dscp进行修改。相关配置:
#配置优先级映射关系,修改默认映射表 [RouterA] qos map-table dscp-dscp [RouterA-maptbl-dscp-dscp] input 24 output 26 [RouterA-maptbl-dscp-dscp] input 40 output 46 #配置Eth2/0/0和Eth2/0/1接口信任报文的dscp优先级 [RouterA] interface ethernet 2/0/0 [RouterA-Ethernet2/0/0] trust dscp [RouterA-Ethernet2/0/0] quit [RouterA] interface ethernet 2/0/1 [RouterA-Ethernet2/0/1] trust dscp [RouterA-Ethernet2/0/1] quit
3.信任的报文的exp优先级一一trust exp
设备按照报文携带的exp值查找DSCP优先级映射表,生成内部优先级。eNSP模拟器上无法修改其与内部优先级的对应关系,但是可以在接口上设置信任。
4.设置override参数——trust dscp override和trust 8021p override
配置override与否,不影响内部优先级的生成,但会影响经过设备的报文优先级,报文优先级会被改写成内部优先级。未配置override关键词时,进入的报文按照指定优先级映射生成内部优先级,但离开时报文优先级并不修改,报文优先级透传。
配置override关键词后,离开设备的报文的802.1p值、DSCP值均被修改成内部优先级。
例:设备在报文入口配置trust 8021p,报文优先级中802.1p为3,而DSCP为24。内部映射表802.1p-to-dscp修改后802.1p值3所对应的DSCP为26, dscp-to-dscp映射表中24映射为24,在设备的入口配置trust 8021p override。则离开设备时,报文优先级802.1p值和DSCP值分别是多少?
同样的场景,如果在设备入口配置trust dscp override,则离开设备时,报文优先级中802.1p和dscp值分别是多少?答:进入设备后,根据映射表生成内部优先级
配置trust 8021p override后,离开设备的报文优先级为802.1p=3,dscp=26。(dscp 26=16+8+2=011010,前三位依旧是011=3,所以802.1p=3)
配置trust dscp override后,离开设备的报文优先级为802.1p=3,dscp=24。802.1p=3根据dscp-to-802.1p映射而生成。内部优先级DSCP=24,会有对应的内部优先802.1p=3。报文离开时用内部优先级802.1p和dscp修改报文优先级。
5.端口优先级
每个进入设备的报文都需要内部优先级,如果端口信任802.1p,但报文本身没有对应的Vlan Tag, 此种情况下,会使用到端口优先级。每个端口的默认端口优先级为0,使用规则如下:- 端口处于信任802.1p状态时,若收到不带Vlan Tag的报文,设备将根据端口优先级生成内部优先级并转发。
- 端口处于不信任状态时,即没有配置任何Trust 命令,所有报文都将根据端口优先级进入一个队列,无法实现差分服务。
相关配置:
端口G0/0/0下,使进入的报文(没有Vlan Tag)离开设备时使用队列1。同理,使端口G0/0/1进来的任何报文都进入队列2。
#G0/0/0端口修改端口优先级为1,同理,修改G0/0/1端口优先级为2[RouterA]interface G0/0/0 [RouterA-Ethernet0/0/0] port priority 1 [RouterA-Ethernet0/0/0] quit [RouterA]interface G0/0/1 [RouterA-Ethernet0/0/1] port priority 2 [RouterA-Ethernet0/0/1] quit #G0/0/0和G0/0/1端口默认处于非信任状态
6.信任边界
华为设备可以在接口上设置4种信任状态一不信任、 信任802.1p、信任DSCP、信任EXP。如果接口处于不信任状态,设备在报文离开时重写或清除原有报文优先级,重新生成的报文优先级在网络中继续使用。建议在网络边缘设备上对进入的报文不做信任,而在网络中间设备上重新标记报文优先级。我们把信任报文优先级的设备所组成的网络区域称为信任域,而第三方设备或外部网络或终端等设备所代表的区域称为非信任域。服务质量工程师在设计QoS时会在接入层交换机或企业边缘设备入口上设置不信任状态。
对报文优先级做不信任处理,可在设备内部生成符合企业服务规范的报文优先级,并在企业网络内部信任域中使用。这种不信任设备( 或非信任域)和信任域的边界称为信任边界。
如下图所示,在企业网络的边缘设备上,如接入层交换机、内外网络的边缘、企业与第三方网络的边界互联设备都是外部业务报文进来的位置,此位置建议重新打标记(上色),信任边界不信任任何外部网络进来的报文优先级。
生成内部优先级工具二:MQC的Remark工具
在报文进入设备时,除配置信任外,接口还有其他方式生成内部优先级,如MQC和CAR等Remark工具,使用这些机制在报文进入设备时生成的QoS标记即是内部优先级,同时也是报文离开设备时的报文优先级。
若接口同时配置信任和其他Remark工具,Remark配置优于信任起作用。
例:在企业网络边界,把进入企业网络内部的所有RTP报文打,上DSCP EF标记。
[huawei]traffic classifier voip [huawei]classifer-voip]if match rtp start-port 16384 end-port 32767 [huawei]classifier-voip]quit [huawei]traffic behavior b1 [huawei-behavior-b1]remark dscp ef [huawei-behavior-b1]quit [huawei]traffic policy p1 [huawei-trafficpolicy-p1]classifier voip behavior b1 [huawei-trafficpolicy-p1]quit #在入方向调用MQC [huawei]int g0/0/0 [huawei-GigabitEthernet/0/0]traffic-policy p1 inbound [huawei-GigabitEthernet0/0/0]quit #MQC remark修改报文优先级,该报文优先级也是内部优先级
注意:如果使用MQC或CAR Remark为报文设置优先级,则离开的报文优先级就是在报文入口配置的优先级。
整理资料来源:《HCIE路由交换学习指南》、HCIE培训资料
更多相关内容 -
IP报文分类算法概述.pdf
2022-01-01 11:39:00IP报文分类算法概述.pdf -
基于FPGA实现的报文分类智能网卡.pdf
2021-07-13 13:55:49基于FPGA实现的报文分类智能网卡.pdf -
论文研究-基于决策树的民航气象报文分类统计规则的研究与应用 .pdf
2019-08-16 18:07:26基于决策树的民航气象报文分类统计规则的研究与应用,曹闪,张仁波,民航气象数据库系统自2004年投入运行以来,对业务运行情况没有定量把握,对系统输入与输出资料没有准确的统计报表。通过整体把控�� -
利用流量特征的GIDS报文分类优化算法
2021-02-21 14:06:22本文结合流量的动态特征和入侵检测系统规则库的静态特征生成高性能报文分类树,提出了一个新的面向骨干网高速入侵检测的报文分类算法FlowCopy Search(FCS).改进在于:①从流量的新角度提出了最优分类树定义并引入分类... -
报文分类与标记
2021-10-24 12:10:48报文分类的必要性: 实现差分服务(区分服务),对进入DiffServ域的流量按照规则进行分类,根据不同类别的流量提供不同的服务 (流量分类是部署DiffServ QoS的基础) 报文分类的依据: 1.简单流分类: 不同链路类型...报文分类的必要性:
实现差分服务(区分服务),对进入DiffServ域的流量按照规则进行分类,根据不同类别的流量提供不同的服务
(流量分类是部署DiffServ QoS的基础)报文分类的依据:
1.简单流分类: 不同链路类型传输的不同类别的报文,且其自身所含有的标识QoS优先级的字段值来分类:
局限:粗略地分类方式且匹配规则较简单
IEEE 802.1Q定义,VLAN TAG中的PRI字段用于标识QoS服务等级(8种分类)
通常将标签信息中的EXP域作为MPLS报文的CoS域,与IP网络的ToS域等效,用来区分数据流量的服务等级(8种分类)
D bit代表延迟(Delay),T bit代表吞吐量(Throughput),R bit代表可靠性(Reliability)。 根据RFC791定义,IP报文头ToS(Type of Service)域中的Precedence字段标识了该报文的优先级 缺点:IP-Precedence字段最多只能将IP报文分为8类,在实际网络部署时是远远不够的
在RFC2474中对IPv4报文头的ToS字段进行了重新定义,称为DS(Differentiated Services)字段
DSCP值有两种表达方式:
数字形式:DSCP取值范围为0~63;
关键字表达方式:用关键字标识的DSCP值
AFxy中:x代表不同的类别(优先级4>3>2>1),y表示丢包概率(3>2>1)
不同关键字常用于标识不同报文(可自行定义):
CS6和CS7默认用于协议报文,而且是大多数厂商设备的硬件队列里最高优先级的报文,因为如果这些报文无法接收的话会引起协议中断
EF常用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文
AF4用来承载语音的信令流量,语音要优于信令呢?信令是电话的呼叫控制,你可以在接通时等待几秒,但绝不允许在通话时中断
AF3可以用来承载IPTV的直播流量,直播的实时性很强,需要连续性和大吞吐量的保证
AF2可以用来承载VOD(Video on Demand:视频点播)的流量,相对于直播流量来说,VOD对实时性要求没那么强烈,允许有时延或者缓冲
AF1可以用来承载普通上网业务DSCP/ IP-Precedence/ 802.1p/ EXP值表
2.复杂流分类:根据五元组(源地址、目的地址、源端口号、目的端口号、协议号码)等报文信息对报文进行精细的分类
(一般的分类依据都局限在封装报文的头部信息,使用报文内容作为分类的标准比较少见)
缺省应用于网络的边缘位置。报文进入边缘节点时,网络管理者可以灵活配置分类规则
报文分类配置需求
一般在DS边界节点对报文进行分类报文标记的过程 (重标记)
在DS边界节点(如图SWA、SWB)对报文进行标记,DS节点对标记进行识别并提供差分服务 语音电话、视频终端等设备一般发送的报文都是携带设备默认(0)标识的优先级值。可通过remark操作对报文进行重新标记来提供差分服务
标记的原因:端到端进行QoS部署时,需要每台设备都对报文进行分类,会导致耗费大量地设备处理资源,标记后下游设备只需 要对标记进行识别即可提供差分服务
报文标记的配置实现:
remark:为DS域提供一个可信任的标记值
-
改进的HyperSplit报文分类算法 (2014年)
2021-05-22 04:07:17针对现有高速、大容量、多域报文分类算法普遍存在内存使用量大的问题,提出一种改进的HyperSplit多域报文分类算法。通过分析现有算法内存使用量大的原因,修正和设计选择分割维度与分割点、去除冗余结构的启发式算法... -
论文研究-基于三态位分割的低功耗TCAM报文分类算法.pdf
2019-07-22 19:14:21针对传统基于TCAM的报文分类算法存在功耗较大的问题, 提出了一种基于三态位分割的低功耗TCAM报文分类算法——TSP-PR(tri-state-based partition for power reduction)。利用TCAM支持三态位的特点, 设计标志位选取... -
改进的HyperSplit报文分类算法.pdf
2022-03-19 22:29:11改进的HyperSplit报文分类算法.pdf -
利用域转换的三态内容寻址存储器报文分类算法 (2013年)
2021-05-11 23:08:30针对基于三态内容寻址存储器(TCAM)的报文分类存在范围扩张导致空间利用率较低的问题,提出了一种利用域转换的报文分类算法(DTRM)。首先将规则集独立的范围预编码算法中范围规则编码所需的比特数量由2k - 1替换为任意... -
论文研究-报文分类算法研究.pdf
2019-07-22 21:04:54阐述了互联网络中报文分类问题的定义、几何意义和最新研究进展。从报文分类算法的实现特征出发,对报文分类问题的各种经典算法进行了分类并逐类地详细介绍。通过对几种典型算法在虚拟环境下进行评测,总结了各种报文... -
报文分类算法研究* (2007年)
2021-05-18 13:07:42阐述了互联网络中报文分类问题的定义、几何意义和最新研究进展。从报文分类算法的实现特征出发,对报文分类问题的各种经典算法进行了分类并逐类地详细介绍。通过对几种典型算法在虚拟环境下进行评测,总结了各种报文... -
报文分类算法的设计与实现.pdf
2022-01-01 11:38:48报文分类算法的设计与实现.pdf -
大数据-算法-报文分类算法的研究.pdf
2022-04-18 21:09:43大数据-算法-报文分类算法的研究.pdf -
论文研究-一种基于域冲突空间的分布式报文分类算法.pdf
2019-07-22 20:33:25随着网络传输速率的不断提高,分布式报文分类算法以其快速高效的特点越来越受到业界的关注,但却普遍存在内存消耗过高的问题。针对这一问题提出了基于域冲突空间的多标签树算法(MLT-FCS),将各域规则划分为不同的... -
报文分类算法的设计与实现 (2006年)
2021-05-15 00:16:01报文分类是网络交换设备的基础操作之一。针对目前的报文分类算法主要为小规则集或低维的分类问题,提出了一种新的多维快速报文分类算法。该算法通过压缩、分割和索引操作,设计了压缩分割规则表和索引列表结构表这两... -
报文分类算法可扩展性标准评测系统.pdf
2021-12-31 21:58:54报文分类算法可扩展性标准评测系统.pdf -
一种基于自适应缓存机制的报文分类算法.pdf
2022-01-01 11:38:46一种基于自适应缓存机制的报文分类算法.pdf -
可扩展报文分类算法研究与评测* (2009年)
2021-04-28 22:05:34针对报文分类算法的可扩展性,深入分析了典型可扩展报文分类算法的时间、空间复杂度;基于Class-Bench工具集开发出可扩展报文分类算法评测系统,利用该系统对典型算法在不同模拟场景下进行评测,并对各算法的性能... -
一种基于域冲突空间的分布式报文分类算法.pdf
2021-12-31 21:59:15一种基于域冲突空间的分布式报文分类算法.pdf -
论文研究-一种改进的多维高速报文分类算法.pdf
2019-07-22 22:54:36RFC算法是目前具有代表性的一种报文分类算法,具有匹配速度快、占用内存少、支持范围匹配等优点,但是它不能处理变长字符串域。结合多模式匹配算法的思想,对RFC算法进行了有益扩充,使新算法能够根据变长字符串域... -
基于FPGA的报文分类技术.pdf
2021-07-13 12:30:27基于FPGA的报文分类技术.pdf -
基于GPU的并行报文分类方法.pdf
2021-09-25 17:19:34基于GPU的并行报文分类方法.pdf -
论文研究-依据流统计特性的报文分类规则集动态优化.pdf
2019-07-22 18:57:47针对普遍使用的线性搜索报文分类方法在时间效率方面的固有弱点,设计了一种依据数据流统计特性的规则集自适应动态优化算法。其中包括:规则权重计算、规则优化排序、动态触发优化等部分。在占用较少资源的情况下,... -
网络游戏-报文分类方法及网络设备.zip
2021-09-19 17:19:52网络游戏-报文分类方法及网络设备.zip -
网络游戏-基于网络处理器的高速多维报文分类算法的设计和实现.zip
2021-09-19 21:55:45网络游戏-基于网络处理器的高速多维报文分类算法的设计和实现.zip -
一种新的快速报文分类算法--RC-FST* (2005年)
2021-05-18 10:57:46RC-FST 算法利用IP 地址高8 比特前缀建立Hash 压缩索引表,将分类规则集分成多个子集,并针对每个子集建立快速搜索树,而这些规模相对小的本地搜索树更利于实现快速建立、查找和优化。为提高搜索树性能,在规则分割... -
论文研究-一种新的快速报文分类算法——RC-FST*.pdf
2019-07-22 18:18:17RC-FST 算法利用IP 地址高8 比特前缀建立Hash 压缩索引表, 将分类规则集分成多个子集, 并针对每个子集建立快速搜索树, 而这些规模相对小的本地搜索树更利于实现快速建立、查找和优化。为提高搜索树性能, 在规则分割... -
OSPF报文分类与格式
2020-12-22 11:38:20OSPF报文介绍和格式: 五种报文类型 OSPF报头格式 OSPF报文直接封装为IP协议报文,因为OSPF是专为TCP/IP网络而设计的路由协议。以上所说到的五种OSPF报文使用相同的OSPF报头格式,如下图所示: Version 版本字段...OSPF报文介绍和格式:
五种报文类型
OSPF报头格式
OSPF报文直接封装为IP协议报文,因为OSPF是专为TCP/IP网络而设计的路由协议。以上所说到的五种OSPF报文使用相同的OSPF报头格式,如下图所示:
- Version
版本字段,占1个字节,指出所采用的OSPF协议版本号,目前最高版本为OSPF v4,即值为4(对应二进制就是0100)。 - Packet Type
报文类型字段,标识对应报文的类型。前面说了OSPF有5种报文,分别是:Hello报文、DD报文、LSR报文、LSU报文、LSAck报文。具体将在下面各小节介绍。 - Packet Length:包长度字段,占2个字节。它是指整个报文(包括OSPF报头部分和后面各报文内容部分)的字节长度。
- Router ID:路由器ID字段,占4个字节,指定发送报文的源路由器ID。
- Area ID:区域ID字段,占4个字节,指定发送报文的路由器所对应的OSPF区域号。
- Checksum:校验和字段,占2个字节,是对整个报文(包括OSPF报头和各报文具体内容,但不包括下面的Authentication字段)的校验和,用于对端路由器校验报文的完整性和正确性。
- AuType:认证类型字段,占2个字节,指定所采用的认证类型,0为不认证,1为进行简单认证,2采用MD5方式认证。
Authentication:认证字段,占8个字节,具体值根据不同认证类型而定:认证类型为不认证时,此字段没有数据,认证类型为简单认证时,此字段为认证密码,认证类型为MD5认证时,此字段为MD5摘要消息。
OSPF Hello报文及格式
OSPF协议使用一种称之为Hello的报文来建立和维护相邻邻居路由器之间的链接关系。这个报文很简单的,容量很小,仅用来向邻居路由器证明自己的存在,就像人与人之间的打招呼一样。RIP邻居路由器之间的邻接关系建立是都是定期的路由更新报文进行的,通过定期的路由更新来同时向邻居RIP路由器证明自己的存在。显然OSPF的这种Hello报文更简单,可大大减小网络中的报文传输流量。Hello报文被周期性(默认为10秒)地发向邻居路由器接口发送,如果在设定时间(默认为40秒,通常至少是Hello包发送时间间接4倍)内没有收到对方OSPF路由器发送来的Hello报文,则本地路由器会认为该对方路由器无效。报文内容包括一些定时器设置、DR、BDR以及本路由器已知的邻居路由器。整个Hello报文格式如下图所示:
- Network Mask 4字节 发送Hello报文接口所在的子网掩码。
- HelloInterval 2字节 指定发送Hello报文的时间间隔,默认为10秒。
- Options 1字节 可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组皤报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路。
- Rtr Pri 1字节 指定DR优先级,默认为1。如果设为0,则表示本路由器不参与DR/BDR选举。
RouterDeadInterval 4字节 指定路由器失效时间,默认为40秒。如果在此时间内没有收到邻居路由器发来的Hello报文,则认为该邻居路由器已失效。 - Designated Router 4字节 指定DR的接口IP地址。
- Backup Designated Router 4字节 指定BDR的接口IP地址。
- Neighbor 4字节 指定邻居路由器的RID。下面的省略号(…)表示可以指定多个邻居路由器RID。
OSPF DD报文及格式
DD报文是用来描述本地路由器的链路状态数据库(LSDB),在两个OSPF路由器初始化连接时要交换DD报文,进行数据库同步。DD报文内容部分包括:DD报文序列号和LSDB中每一条LSA的头部等,对端路由器根据所收到的DD报文中的OSPF报头就可以判断出是否已有这条LSA。由于数据库的内容可能相当长,所以可能需要多个数据库描述报文来描述整个数据库。所以有三个专门用于标识数据库描述报文序列的比特位,即DD报文格式中的I、M和M/S这三位。接收方对报文的重新排序使其能够真实地复制数据库描述报文。
DD交换过程按询问/应答方式进行,在DD报文交换中,一台为Master(主)角色,另一台为Slave(从)角色。Master路由器向从路由器发送它的路由表内容,并规定起始序列号,每发送一个DD报文,序列号加1,Slave则使用Master的序列号进行确定应答。但是显然,主从之间的关系会因每个DD交换的不同而不同。网络中的所有路由器会在不同时刻作用,在这个过程中既可能是主路由器又可能是从路由器。
- Interface MTU 2字节 指出发送DD报文的接口在不分段的情况下,可以发出的最大IP报文长度。
- Options 1字节 可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组播报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路。
- I 1比特 指定在连续发送多个DD报文,如果是第一个DD报文则置1,其它的均置0。
- M 1比特 指定在连续发送多个DD报文,如果是最后一个DD报文则置0,否则均置1。
- M/S 1比特 设置进行DD报文双方的主从关系,如果本端是Master角色,则置1,否则置0。
- DD Sequence Number 4字节 指定所发送的DD报文序列号。主从双方利用序列号来确保DD报文传输的可靠性和完整性。
- LSA Heaader 4字节 指定DD报文中所包括的LSA头部。后面的省略号(…)表示可以指定多个LSA头部。
OSPF LSR报文及格式
LSR报文用于请求相邻路由器链路状态数据库中的一部分数据。当两台路由器互相交换完DD报文后,知道对端路由器有哪些LSA是本LSDB所没有的,以及哪些LSA是已经失效的,则需要发送一个LSR报文,向对方请求所需的LSA。LSR报文内容包括所需的LSA摘要,如图:
- LS type 4字节 指定所请求的LSA类型,主要共6类。
- Link State ID 4字节 用于指定ospf所描述的部分区域,该字段的使用方法根据不同的LSA类型而不同:当为LSA 1时,该字段值是产生LSA 1的路由器的Router-ID,当为LSA 2时,该字段值是DR的接口地址,当为LSA 3时,该字段值是目的网络的网络地址,当为LSA 4时,该字段值是ASBR的Router-ID,当为LSA 5时,该字段值是目的网络的网络地址。
- Advertising Router 4字节 指定产生此所要请求的LSA的路由器ID。
如上三个字段可以表示唯一的一个LSA,一个LSR报文可以请求多个LSA。
OSPF LSU报文及格式
LSU报文是应LSR报文的请求,用来向对端路由器发送所需的LSA,内容是多条LSA完整内容的集合,LSU报文内容部分包括此次共发送的LSA数量和每条LSA的完整内容。LSU报文在支持组播和多路访问的链路上是以组播方式将LSA泛洪出去的,并且对没有收到对方确认应答(就是下面将要介绍的LSAck报文)的LSA进行重传,但重传时的LSA是直接送到没有收到确认应答的邻居路由器上,而不再是泛洪。
- Number of LSA 4字节 指定此报文中共发送的LSA数量。
- LSAs 4字节 是一条条具体的LSA完整信息,后面的省略号表示可多条LSA。
OSPF LSAck报文及格式
LSAck报文是路由器在收到对端发来的LSU报文后所发出的确认应答报文,内容是需要确认的LSA头部(LSA Headers),整个LSAck报文的格式如图所示。LSAck报文根据不同链路以单播或组播形式发送。
LSA报文格式:
常见LSA报文类型:
常用的LSA共有6种,分别为:Router-LSA、Network-LSA、Network-summary-LSA、ASBR-summary-LSA、AS-External-LSA和NSSA LSA。 所有的LSA都有相同的报文头:LSA头部:
- LS age 16比特 LSA产生后所经过的时间,单位是秒。无论LSA是在链路上传输,还是保存在LSDB中,其值都会在不停的增长。
- Options 8比特
- LS type 8比特 LSA的类型:
• Type1:Router-LSA。
• Type2:Network-LSA。
• Type3:Network-summary-LSA。
• Type4:ASBR-summary-LSA。
• Type5:AS-External-LSA。
• Type7:NSSA-LSA。 - Link State ID 32比特 与LS Type一起描述路由域中唯一一个LSA。
- Advertising Router 32比特 产生此LSA的路由器的Router ID。
- LS sequence number 32比特 LSA的序列号。其他路由器根据这个值可以判断哪个LSA是最新的。
- LS checksum 16比特 除了LS age外其它各域的校验和。
- length 16比特 LSA的总长度,包括LSA Header,以字节为单位。
Option字段补充:
DN:用来避免在MPLS VPN中出现环路。当PE向CE发送3类、5类和7类LSA时需要设置DN位,其他PE路由器从CE接收到该LSA时,不能够在它的OSPF路由计算中使用该LSA。
O:该字段指出始发路由器支持Opaque LSA(类型9、类型10和类型11)。
DC位:当始发路由器支持按需链路上的OSPF的能力时,该位将被设置。
EA:当始发路由器具有接收和转发External-Attributes-LSA(type8 LSA)的能力时,该位被置位。
N位:只用在Hello数据包中。N=1表明路由器支持7类LSA。N=0表明该路由器将不接收和发送NSSA LSA。
P位:只用在NSSA LSA。该位将告诉NSSA区域的ABR路由器将7类LSA转换为5类LSA。Router-LSA(Type1):
每个路由器都会产生,描述了路由器的链路状态和花费,仅在所属的区域内传播。
- Link State ID 32比特 生成LSA的Router ID。
V(Virtual Link) 1比特 如果产生此LSA的路由器是虚连接的端点,则置为1,否则置为0。
E(External) 1比特 如果产生此LSA的路由器是ASBR(AS Boundary Router),则置为1,否则置为0。
B(Border) 1比特 如果产生此LSA的路由器是ABR(Area Border Router),则置为1,否则置为0。 - links 16比特 LSA中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口。
- Link ID 32比特 路由器所接入的目标,其值取决于连接的类型:
• P2P:点到点连接Router ID。
• TransNetwork:DR(Designated Router)的接口IP地址。
• StubNetwork:网段/子网号。
• Virtual Link:虚连接中对端的Router ID。 - Link Data 32比特 连接数据,其值取决于连接的类型:
• P2P:自己接口IP地址。
• TransNetwork:自己接口IP地址。
• StubNetwork:网络掩码。
• Virtual Link:本地Vlink的IP地址。 - Type 8比特 路由器连接的基本描述:
• 1:点到点(P2P)。
• 2:连接到传输网络(TransNetwork)。
• 3:连接到stub网络(StubNetwork)。
• 4:虚拟链路(Virtual Link)。 - #ToS 8比特 服务类型ToS(Type of Service)数量。
- metric 16比特 链路的开销值。
- ToS 8比特 服务类型ToS。
- ToS metric 16比特 和指定ToS值相关联的度量。
Network-LSA(Type2):
由广播网或NBMA网络中的DR产生,PPP网络类型下不存在,Network-LSA中记录了这一网络上所有路由器的Router ID,描述本网段的链路状态,在所属的区域内传播。
- Link State ID 32比特 DR的接口IP地址。
- Network Mask 32比特 该广播网或NBMA网络地址的掩码。
- Attached Router 32比特 连接在同一个网络上的所有路由器的Router ID,也包括DR的Router ID。
Network-summary-LSA(Type3)和ASBR-summary-LSA(Type4):
Type3和Type4的LSA有相同的格式,它们都是由ABR产生,为了防止环路,都遵循水平分割原则。
三类LSA描述区域内所有网段的路由,可以通告给其他相关区域。
四类描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域,告知去往ASBR的下一跳是什么,设备与ASBR在同一区域内不需要4类LSA。
- Link State ID 32比特 通告的网络地址。
- Network Mask 32比特 该广播网或NBMA网络地址的掩码。
- metric 24比特 到目的地址的路由开销。
- ToS 8比特 服务类型ToS。
- ToS metric 24比特 和指定ToS值相关联的度量。
说明:通告缺省路由时,Link State ID和Network Mask都设置为0.0.0.0。
AS-External-LSA(Type5)和NSSA-LSA(Type7):
五类LSA由ASBR产生,描述到AS外部的路由,这是五种LSA中,唯一一种通告到所有区域(除了Stub区域和NSSA区域)的LSA(不遵循水平分割原则)。
七类LSA作用和五类LSA一致,主要是代替5类LSA存在与于NSSA区域中,有相同的格式、包括外部路由及掩码、Forwading-address Tag、Cost-Type及Cost。(具体不同点在特殊区域中分析)
- Link State ID 32比特 通告的网络地址。
- Network Mask 32比特 通告的目的地址的掩码。
- E 1比特 外部度量值类型:
• 0:第一类外部路由。
• 1:第二类外部路由。 - metric 24比特 到目的地址的路由开销。
- Forwarding Address 32比特 到所通告的目的地址的报文将被转发到这个地址。
- External Route Tag 32比特 添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理。
- ToS 8比特 服务类型ToS。
- ToS metric 24比特 ToS附加距离信息。
说明:Type5和Type7的LSA可以用来通告缺省路由,此时Link State ID和Network Mask都设置为0.0.0.0。
其余LSA:
总结:
归纳资料:华为hedex文档 - Version