基于环网的业务报文转发方法及系统与流程

文档序号:31341448发布日期:2022-08-31 10:21阅读:119来源:国知局

1.本技术涉及以太网通信技术领域,特别涉及一种基于环网的业务报文转发方法及系统。


背景技术:

2.在对以太接入网进行网络部署时,为了保障链路出现故障时业务的倒换性能,常采用环形网络部署方式。环上可以运行stp(spanning tree protocol,生成树协议)、rrpp(rapid ring protection protocol,快速环网保护协议)或erps(ethernet ring protection switching,以太环保护切换协议)等环路协议,这些协议都是通过将环网中的某个端口设置成block(阻塞)状态,防止数据环路形成网络风暴。当网络中某条链路、设备发生故障或者故障恢复时,需要切换环上端口的状态,达到链路与设备级保护的目的。环上传输的业务,可以是二层以太网业务,也可以是三层单播或三层组播业务。
3.当以太环网中某条链路、设备发生故障时,二层业务的链路切换一般满足50ms的倒换性能需求,有些高性能需求设备二层业务的切换在10ms之内完成。而三层单播业务的链路切换方式为:基于arp(address resolution protocol,地址解析协议)学习的方式,通过遍历已学习到的arp表项来发送arp报文,在收到arp响应报文后更新软件arp表项,进而更新硬件路由出端口,由此完成三层单播业务出端口的切换。
4.在实现本技术的过程中,发明人发现上述关于三层单播业务的链路切换方式,涉及到cpu收发包、arp协议栈的处理和芯片路由表的更新,倒换性能一般为秒级,因此导致二层业务和三层业务的倒换性能严重不匹配,三层业务的倒换性能低于二层业务的倒换性能,使得业务流量的倒换时长较长,难以满足对业务流量的倒换性能需求。
5.需要说明的是,本背景技术部分中公开的信息仅用于理解本技术构思的背景技术,并且因此,它可以包含不构成现有技术的信息。


技术实现要素:

6.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本技术的第一个目的在于提出一种基于环网的业务报文转发方法,利用内部口的环回将三层单播转发映射成二层转发的方案,环上出现链路切换时,不需要通过arp学习机制来触发路由出端口的更新,无需关心环上设备已学习到的arp表项数量及mac地址数量,通过清除mac地址表操作,即可完成三层单播业务的链路切换,由此提高三层单播业务的倒换性能,使其与二层以太网业务的倒换性能相同,满足50ms的倒换需求,使得以太环网场景中链路切换时三层单播业务能够快速收敛。
7.本技术的第二个目的在于提出一种基于环网的业务报文转发系统。
8.为达上述目的,本技术第一方面实施例提出了一种基于环网的业务报文转发方法,包括:环网上的第一节点接收到源设备发来的三层单播业务报文后,将所述三层单播业务报文发送至自身配置的内部端口进行环回,以将所述三层单播业务报文在所述第一节点
处的三层转发变换为二层转发;在所述环网发生链路故障时,触发对所有环上端口的mac地址表的清空,以使所述第一节点的环上端口通过报文洪泛的方式将所述三层单播业务报文转发至所述环网上的第二节点,由所述第二节点将所述三层单播业务报文发送至目标设备。
9.根据本技术实施例提出的基于环网的业务报文转发方法,在以太环网上出现链路故障、设备故障、故障回切等链路切换时,利用了芯片的内部端口作为环回端口,arp芯片路由的出端口始终采用内部环回端口,三层单播业务查询到路由表后从内部端口转出后又从该内部端口环入,将普通的三层单播转成了端口环回和二层转发相结合的转发方式,实现将三层单播业务芯片转发映射成二层转发,所有的三层业务在清除mac表时完成了链路切换,与二层单播业务实现路径切换的方式完全一致,由此实现在链路切换时arp协议栈不需要更新芯片路由表,也无需关心需要切换的三层业务数量、节点设备学习到的arp数量与mac地址数量,释放了cpu资源,将三层单播业务链路切换收敛时间从秒级缩短到50ms以内,使得三层单播业务与二层单播业务的倒换性能一致,甚至在高性能设备能上应用时能够满足10ms以内的链路切换性能。
10.根据本技术的一个实施例,所述第一节点接收到源设备发来的三层单播业务报文后,所述方法还包括:依据arp路由表更新所述三层单播业务报文的源mac地址、目的mac地址和vlan信息,并将所述内部端口设为出端口。
11.根据本技术的一个实施例,通过预先配置所述第一节点的arp表项来使所述第一节点将所述内部端口作为发送所述三层单播业务报文的出端口。
12.根据本技术的一个实施例,将所述三层单播业务报文发送至自身配置的内部端口进行环回,包括:依据arp路由表将所述三层单播业务报文进行三层转发后从所述内部端口转出,其中,所述三层单播业务报文从所述内部端口转出后直接从所述内部端口的输入端传回所述内部端口。
13.根据本技术的一个实施例,触发对所有环上端口的mac地址表的清空,包括:通过环网上配置的环路协议对所述链路故障进行响应,将所述链路故障通知环上各节点,以使处于阻塞状态的环上端口的端口状态切换为转发状态,并对环上各节点的环上端口的mac地址表进行清空。
14.根据本技术的一个实施例,在所述环网发生链路故障时,通过环网上配置的故障检测协议识别所述环网上的链路故障,并通过中断的方式上报故障。
15.根据本技术的一个实施例,所述报文转发方法还包括:在触发对所有环上端口的mac地址表的清空之后,通过故障节点向外发出的arp信息来进行环网上各节点的arp表项更新和mac地址的学习,其中,各节点按学到的mac地址进行报文转发。
16.根据本技术的一个实施例,所述arp信息为故障节点发出的免费arp报文,或者所述arp信息为故障节点发出的arp请求报文和arp响应报文。
17.为达上述目的,本技术第二方面实施例提出了一种基于环网的业务报文转发系统,包括:环网上的所有节点,以及mac地址清空模块,其中,所述所有节点中包括第一节点和第二节点;所述第一节点接收到源设备发来的三层单播业务报文后,将所述三层单播业务报文发送至自身配置的内部端口进行环回,以将所述三层单播业务报文在所述第一节点
处的三层转发变换为二层转发;所述mac地址清空模块用于在所述环网发生链路故障时,触发对所有环上端口的mac地址表的清空,以使所述第一节点的环上端口通过报文洪泛的方式将所述三层单播业务报文转发至环网上的第二节点;所述第二节点将所述三层单播业务报文发送至目标设备。
18.根据本技术的一个实施例,所述第一节点在接收到源设备发来的三层单播业务报文后,还依据arp路由表更新所述三层单播业务报文的源mac地址、目的mac地址和vlan信息,并将所述内部端口设为出端口。
19.根据本技术的一个实施例,通过预先配置所述第一节点的arp表项来使所述第一节点将所述内部端口作为发送所述三层单播业务报文的出端口。
20.根据本技术的一个实施例,所述第一节点通过以下方式将所述三层单播业务报文发送至自身配置的内部端口进行环回:依据arp路由表将所述三层单播业务报文进行三层转发后从所述内部端口转出,其中,所述三层单播业务报文从所述内部端口转出后直接从所述内部端口的输入端传回所述内部端口。
21.根据本技术的一个实施例,所述业务报文转发系统还包括:故障响应模块以及端口状态切换模块,所述故障响应模块用于通过环网上配置的环路协议对所述链路故障进行响应,将所述链路故障通知环上各节点,以使所述端口状态切换模块将处于阻塞状态的环上端口的端口状态切换为转发状态,并使所述mac地址清空模块对环上各节点的环上端口的mac地址表进行清空。
22.根据本技术的一个实施例,所述业务报文转发系统还包括:故障检测模块,用于在所述环网发生链路故障时,通过环网上配置的故障检测协议识别所述环网上的链路故障,并通过中断的方式上报故障。
23.根据本技术的一个实施例,所述业务报文转发系统还包括: arp表项更新模块,用于在所述mac地址清空模块触发对所有环上端口的mac地址表的清空之后,通过故障节点向外发出的arp信息来进行环网上各节点的arp表项更新和mac地址的学习,其中,各节点按学到的mac地址进行报文转发。
24.根据本技术的一个实施例,所述arp信息为故障节点发出的免费arp报文,或者所述arp信息为故障节点发出的arp请求报文和arp响应报文。
25.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
26.图1是本技术一个实施例的基于环网的业务报文转发方法的流程示意图。
27.图2是本技术一个实施例中业务报文在环网上转发的示意图。
28.图3是本技术一个实施例中三层单播业务报文在单个节点处进行转发的示意图。
29.图4是本技术一个实施例中当环网发生链路故障时进行链路切换后的业务报文进行转发的示意图。
30.图5是本技术一个实施例的基于环网的业务报文转发系统的结构框图。
31.图6是本技术另一个实施例的基于环网的业务报文转发系统的结构框图。
具体实施方式
32.下面详细描述本技术的实施例,下文描述的实施例的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
33.下面参考附图描述本技术实施例的基于环网的业务报文转发方法及系统。
34.请参阅图1,本技术实施例中的基于环网的业务报文转发方法,包括以下步骤100和步骤200。
35.s100,环网上的第一节点接收到源设备发来的三层单播业务报文后,将三层单播业务报文发送至自身配置的内部端口进行环回,以将三层单播业务报文在第一节点处的三层转发变换为二层转发。
36.请参阅图2,dev_a~dev_e均为环网上的节点,均属于同一个vlan(virtual local area network,虚拟局域网),并且配置相同网段的ip地址。pc为计算机,server为服务器,并且server属于另一个网段。假设节点dev_d为pc的网关,当pc要与server进行通信,例如向server发送业务流量时,则需要通过环网上的节点dev_d和节点dev_a对业务流量进行三层转发,由于pc是节点dev_d的下接设备,服务器server为节点dev_a的下接设备,因此dev_d即为第一节点,pc为源设备,dev_a为第二节点,服务器server为目的设备。
37.环网上的各节点均设有内部端口,当pc将三层单播业务报文发送至节点dev_d时,dev_d接收到该三层单播业务报文,然后先将该业务报文发送至dev_d的内部端口innerportd,该业务报文会通过内部端口innerportd进行环回,环回后的业务报文会在内部端口innerportd处从三层转发变换为二层转发。其中,单播指的是节点收到一个报文后以点对点形式进行转发。
38.节点内部的环回过程请参阅图3,图3中dev为环网中的一个节点,port1和port2分别为节点dev的两个对外端口,innerport为节点dev的一个内部端口,具体可以是节点dev的芯片上的内部端口。其中,内部端口innerport不对外提供和公开,仅用于节点内部使用,并且内部端口innerport被预先配置为将输入自身的三层业务流量进行环回后变换为二层转发。
39.可以理解的是,三层业务位于以太网七层协议中的第三层(网络层),通过arp表项转发,每个节点设备会配置有一个arp表,用于记录arp表项;二层业务位于以太网七层协议中的第二层(数据链路层),通过mac(media access control)地址转发。
40.三层单播业务报文在节点dev_d内通过内部端口innerportd进行环回的过程与上述节点内部的环回过程相同,由此将三层单播的出端口查找在芯片实现层面从arp学习方式转换成了二层转发方式。
41.另外需要说明的是,节点dev_c的端口portc1和节点dev_b的端口portb1均由于环路协议的配置而处于block状态,在图2中以点状线表示,相当于dev_c与dev_b之间的链路中断。当环网上采用stp协议时,则根据根节点和生成树来确定出被设置为block状态的环上端口;当环网上采用erps协议时,则根据用户设置来确定出被设置为block状态的环上端口。将部分环上端口设置为block状态的目的在于避免报文洪泛,当以广播或组播的形式在环网上传递报文时,报文会在环网上一直传递,最终导致环网的网络带宽被占满,导致洪泛,通过设置block状态能够防止设备成环,使得业务流能正常转发,广播和组播的报文不
会是无限转发下去。
42.此时由于环网上没有发生链路故障或设备故障,因此从内部端口innerportd环出的三层单播业务报文会通过节点dev_d的端口port2转发出去,依次通过节点dev_e和节点dev_a后,到达服务器server,完成三层单播业务报文的发送。
43.s200,在环网发生链路故障时,触发对所有环上端口的mac地址表的清空,以使第一节点的环上端口通过报文洪泛的方式将三层单播业务报文转发至环网上的第二节点,由第二节点将三层单播业务报文发送至目标设备。
44.请参阅图4,假设此时节点dev_a和节点dev_e之间发生链路故障,导致链路不通,在图4中用“x”表示。故障发生时,环路协议会响应故障并更新端口状态,将节点dev_c的端口portc1和节点dev_b的端口portb1的block状态更新为forward状态,forward状态为转发状态,因此节点dev_c和dev_b之间的链路从中断变为了通路。
45.若在传输上述三层单播业务报文时,环网发生了链路故障,则对所有的环上端口的mac地址表进行清空,也就是各节点将各自环上端口上的mac地址表中存储的mac地址信息清除掉。
46.具体的,在环网未发生故障时,环上端口的mac地址表未被清除,则环上端口通过mac学习的方式学到mac地址,并基于学到的mac地址进行二层转发。例如图2中,三层单播业务流量从内部端口innerportd转出至端口portd2,从端口port2d经节点dev_e转发至节点dev_a,而不是从内部端口innerportd转出至端口portd3,从端口portd3经节点dev_c和节点dev_b转发至节点dev_a,是因为dev_d是在端口portd2上学到dev_a的mac地址,而在端口portd2上学到dev_a的mac地址的原因在于端口portc1和端口portb1均为block状态。
47.而当环网发生了链路故障,环上端口的mac地址表被清除后,被变换为二层转发的业务流量在内部端口innerportd转出时,由于端口portd2和端口portd3的mac地址表均被清空,则端口portd2上学到的节点dev_a的mac地址自然也已被清除,无法按照学到的mac地址进行转发,此时会引发业务报文在vlan内的洪泛,洪泛具体表现为:节点dev_d的所有的环上端口(端口portd2和端口portd3)各自向外发出三层单播业务报文,由此依次引起其他节点的环上端口各自向外发出三层单播业务报文。
48.由于节点dev_a和节点dev_e之间发生链路故障导致链路不通,所以从端口portd2发出的三层单播业务报文不会到达dev_a,但由于节点dev_c和节点dev_b之间的链路从中断变为了通路,因此从端口portd3发出的三层单播业务报文能够经dev_c和dev_b到达dev_a。
49.具体的,从端口portd3发出的三层单播业务报文到达节点dev_c之后,由于节点dev_c的环上端口也被清空,因此dev_c也无法按照原先学到的mac地址进行转发,因此dev_c也会以洪泛的方式对业务报文进行转发,其中从端口portc1发出的业务报文到达节点dev_b。对于dev_b来说,同样通过洪泛的方式对业务报文进行转发,最终会有一份三层单播业务报文到达节点dev_a,从而实现从pc到服务器server的三层业务流量在链路故障时的链路切换和正确转发。
50.需要说明的是,由于在步骤100中先经过了环回,因此从内部端口innerportd转出的业务报文就全部依赖于二层的目的mac转发,而不是同时依赖于arp表项和mac地址转发,因此通过清空环上端口的mac地址表引发洪泛时,三层业务报文可以完全的基于mac地址进
行二层转发,而无需考虑arp表项。而业务报文全部依赖于二层的目的mac转发,就能够使三层单播业务的中断时间变为从链路发生故障到节点dev_d完成mac地址表的清除,进而使得三层单播业务与二层单播业务的倒换时间相同。在此期间,arp协议栈不需要操作芯片路由表即可完成三层单播业务的链路切换,替换掉了从arp协议栈更新再到硬件更新的这种较慢的方式,提高了倒换性能。若不进行环回而清空mac地址表,则只能使二层的业务流量进行洪泛,三层的业务流量还是会依据arp表项而从portd2发出,因为在未发生故障时,dev_d从portd2收到arp报文,因此arp对应的ip地址学习在portd2上。
51.根据本技术实施例提出的基于环网的业务报文转发方法,在以太环网上出现链路故障、设备故障、故障回切等链路切换时,利用了芯片的内部端口作为环回端口,arp芯片路由的出端口始终采用内部环回端口,三层单播业务查询到路由表后从内部端口转出后又从该内部端口环入,将普通的三层单播转成了端口环回和二层转发相结合的转发方式,实现将三层单播业务芯片转发映射成二层转发,所有的三层业务在清除mac表时完成了链路切换,与二层单播业务实现路径切换的方式完全一致,由此实现在链路切换时arp协议栈不需要更新芯片路由表,也无需关心需要切换的三层业务数量、节点设备学习到的arp数量与mac地址数量,释放了cpu资源,将三层单播业务链路切换收敛时间从秒级缩短到50ms以内,使得三层单播业务与二层单播业务的倒换性能一致,甚至在高性能设备能上应用时能够满足10ms以内的链路切换性能。
52.在一些实施例中,步骤100中,第一节点接收到源设备发来的三层单播业务报文后,还可以依据arp路由表更新三层单播业务报文的源mac地址、目的mac地址和vlan信息,并将内部端口设为出端口。
53.请继续参阅图4,节点dev_d接收到pc发来的三层单播业务报文后,三层单播业务报文从端口portd1进入,然后在dev_d上查询arp路由表,查到相应路由后,对业务报文的源mac地址、目的mac地址与vlan信息。
54.具体的,由于该业务报文是发给服务器server的,在环上需要从dev_d转发至dev_a,因此,当dev_d收到该业务报文时,此时报文的源mac地址是pc的地址,目的mac地址是dev_d的地址。当dev_d收到该业务报文之后,会将该业务报文中的源mac地址更新为dev_d自己的,将目的mac地址更新为dev_a的,然后再发送至内部端口innerportd。
55.对于二层转发来说,节点在转发业务报文时,报文的源mac地址和目的mac地址都是不变的;而对于三层转发来说,节点在转发业务报文时,报文的源mac地址会改为当前节点自己的,目的mac地址改为下一节点的。但由于在步骤100中通过环回将三层转发变换为二层转发,因此当dev_d将报文转发给dev_e时,报文的源mac地址和目的mac不会被dev_e进行更新,转发至其他节点也是同理,因为此时已经变为二层转发了。
56.在一些实施例中,通过预先配置第一节点的arp表项来使第一节点将内部端口作为发送三层单播业务报文的出端口。
57.继续参阅图4,无论环网上是否发生链路故障,业务报文从端口portd1进入后,均会先进入内部端口innerportd,而不是按学习到的arp表项进入portd2,是因为dev_d学习到arp表项后,通过预先对arp表项进行了修改,将arp表项的出端口改为innerportd,使得业务报文在节点dev_d内部转发时,先进入内部端口innerportd进行环回,若dev_e和dev_a之间未发生链路故障,则业务报文从端口portd1进入后也会先进入内部端口innerportd,
然后再按学习到的mac地址进入portd2。
58.在一些实施例中,步骤100中的将三层单播业务报文发送至自身配置的内部端口进行环回,具体可以为:依据arp路由表将三层单播业务报文进行三层转发后从内部端口转出,其中,三层单播业务报文从内部端口转出后直接从内部端口的输入端传回内部端口。
59.继续参阅图4,当节点dev_d的端口portd1接收到三层单播业务报文后,利用dev_d的内部端口innerportd作为环回口,将三层单播业务报文进行三层转发之后,此时的出端口为innerportd,也就是将三层单播业务流量发送至innerportd进行转出。之后,三层单播业务流量在innerportd实现内环,从innerportd转出的三层业务流量直接环回到innerportd自身,进而再次进入dev_d,在dev_d内部再次进行二层转发,并且该环回的过程中,三层业务流量未流经任何其他模块或单元,由此实现通过环回的方式将进入innerportd时的三层转发在映射为从innerportd出来后的二层转发。
60.在一些实施例中,步骤200中触发对所有环上端口的mac地址表的清空,具体可以为:通过环网上配置的环路协议对链路故障进行响应,将链路故障通知环上各节点,以使处于阻塞状态的环上端口的端口状态切换为转发状态,并对环上各节点的环上端口的mac地址表进行清空。
61.继续参阅图4,当节点dev_a和dev_e之间发生链路故障时,dev_a和dev_e会发出故障信息,而环上运行的环路协议会对故障进行响应,将故障信息发送至dev_b、dev_c和dev_d,其中,dev_b和dev_c在收到故障信息后,将端口portc1和portb1的block状态变更为forward状态,并且对环上各节点的端口portd2、portd3、portc1、portb1等端口进行mac地址表清空。
62.需要说明的是,对全部的环上端口进行清空而不是只对部分环上端口进行清空,其原因在于,链路故障影响的是整个链路,在链路未发生故障时,如图2所示,若dev_a向外发出报文,则对于dev_c来说,是由dev_c的在图中的左侧端口(图中未示出)来学到mac地址,若该左侧端口不进行mac地址表的清空,则在发生链路故障后,dev_d在环回后通过portd3发出的报文到达dev_c后,由于mac地址表还保留原有的mac地址信息,因此dev_c还会依据之前学到的mac地址将报文返回发给dev_d,而不会通过洪泛的方式通过左侧端口和右侧的portc1进行分别外发给dev_d和dev_b,则报文就无法通过dev_b到达dev_a了。
63.还需要说明的是,对mac地址表中的清空而不是选择性地清除与dev_d和dev_a相关的mac地址信息,其原因在于,各节点和端口无法预知发生故障时,自己会收到哪个节点发给哪个节点的报文,因此无法进行针对性清除,而清除必须发生在收到报文之前,否则就会按照未清除时的mac地址表进行转发,因此需要清除mac地址表中的全部mac地址信息。
64.在一些实施例中,在环网发生链路故障时,可以通过环网上配置的故障检测协议识别环网上的链路故障,并通过中断的方式上报故障。
65.为了实现环上业务的快速收敛,一般使用oam(operation administration and maintenance,操作维护管理)协议或bfd(bidirectional forwarding detection)协议等故障检测协议来检测链路连通性,当链路或设备发生故障时,故障两端设备运行的oam或bfd或其他故障检测协议来快速感知故障,以中断方式上报故障信息。
66.具体的,当dev_e和dev_a之间发生故障时,端口porte1和porta1会发生宕事件,发生宕事件后,故障检测协议马上会感知到端口的宕事件,然后故障检测协议就会把端口宕
事件的状态写到协议的标志位里,该标志位用来表征链路故障。然后dev_e和dev_a通过环路协议将链路故障信息传递至环上各节点以进行通知,当dev_b收到并解析链路故障信息,通过上述标志位识别出环网上发生故障,因此把端口portb1的状态从block改为forward。对于dev_c同理。
67.在一些实施例中,在步骤200中触发对所有环上端口的mac地址表的清空之后,可以通过故障节点向外发出的arp信息来进行环网上各节点的arp表项更新和mac地址的学习,其中,各节点按学到的mac地址进行报文转发。
68.虽然通过步骤100和步骤200使得在链路发生故障时能够立即进行链路切换,但由于是采用了洪泛的方式进行转发,因此该转发方式只用于临时过渡,此时还需要寻求在链路保持故障的情况下能够适于常态化的报文转发方案。因此,在链路切换的过程中,也就是触发mac地址表清空之后,与故障相关联的节点需要外发arp信息,以使各节点对自身的arp表项进行更新,对mac地址进行学习,由于arp表项更新的过程要慢于步骤100和步骤200中的链路切换,因此当更新完成后,步骤100和步骤200的链路切换已经完成并且已经开始转发业务报文了,之后各节点通过更新后的arp表项和新学到的mac地址进行业务流量的转发,不再通过洪泛的方式进行转发。
69.具体的,继续参阅图4,dev_e和dev_a为故障节点,因此dev_e通过它的左侧端口(图中未示出)向dev_d、dev_c、dev_b和dev_a发出arp信息,dev_a通过它的上侧端口(图中未示出)向dev_b、dev_c、dev_d和dev_e发出arp信息,由此实现所有节点的arp表项更新。
70.在一些实施例中,arp信息可以为故障节点发出的免费arp报文。也就是说,上述通过向外发出arp信息来对各节点的arp表项进行更新的具体方式可以是:故障节点向外发送免费arp报文,以使环网上的其他节点通过该免费arp报文进行自身arp表项的更新和mac地址的学习。
71.免费 arp 报文与普通 arp 请求报文的区别在于报文中的目标 ip 地址。普通 arp 报文中的目标 ip 地址是其他节点的 ip 地址,而免费 arp 的请求报文中,目标 ip 地址是自身的 ip 地址。通过向外发送免费arp,宣告自身ip地址,环上节点的arp学习模式设置成learn all模式,在收到其他节点的免费arp报文后更新软件arp表项,并更新芯片路由出端口。该方式无需进行响应,对于其他节点来说,只需接收该免费arp报文并对自身arp表项进行更新即可。
72.具体的,继续参阅图4,dev_e和dev_a分别向外发出免费 arp 报文,dev_c从portc1学到dev_a的mac地址,dev_d从portd3学到dev_a的mac地址,等等,由此使得各节点均学到其他节点的mac地址。
73.另外,arp信息还可以为arp信息为故障节点发出的arp请求报文和arp响应报文。也就是说,上述通过向外发出arp信息来对各节点的arp表项进行更新的具体方式还可以是:故障节点向外发送arp请求报文进行自身arp表项的更新,其他节点也会向外发送arp请求报文进行自身arp表项的更新,故障节点在收到其他节点发来的arp请求报文后,会对此作出响应从而发出arp响应报文,其他节点在收到故障节点发来的arp请求报文后,同样会对此作出响应从而发出arp响应报文,由此,所有节点均实现了自身arp表项的更新。
74.另外,请参阅图5,本技术的实施例还提供一种基于环网的业务报文转发系统,本实施例中的业务报文转发系统与上述实施例中的业务报文转发方法相对应。本实施例中的
业务报文转发系统包括:环网上的所有节点,以及mac地址清空模块10,其中,所有节点中包括第一节点dev_1和第二节点dev_2。
75.第一节点dev_1接收到源设备发来的三层单播业务报文后,将三层单播业务报文发送至自身配置的内部端口进行环回,以将三层单播业务报文在第一节点dev_1处的三层转发变换为二层转发。
76.mac地址清空模块10用于在环网发生链路故障时,触发对所有环上端口的mac地址表的清空,以使第一节点dev_1的环上端口通过报文洪泛的方式将三层单播业务报文转发至环网上的第二节点dev_2。其中,mac地址清空模块10可以设置于环网上的每个节点内,以进行自身节点的mac地址清除。
77.第二节点dev_2将三层单播业务报文发送至目标设备。
78.根据本技术实施例提出的基于环网的业务报文转发系统,在以太环网上出现链路故障、设备故障、故障回切等链路切换时,利用了芯片的内部端口作为环回端口,arp芯片路由的出端口始终采用内部环回端口,三层单播业务查询到路由表后从内部端口转出后又从该内部端口环入,将普通的三层单播转成了端口环回和二层转发相结合的转发方式,实现将三层单播业务芯片转发映射成二层转发,所有的三层业务在清除mac表时完成了链路切换,与二层单播业务实现路径切换的方式完全一致,由此实现在链路切换时arp协议栈不需要更新芯片路由表,也无需关心需要切换的三层业务数量、节点设备学习到的arp数量与mac地址数量,释放了cpu资源,将三层单播业务链路切换收敛时间从秒级缩短到50ms以内,使得三层单播业务与二层单播业务的倒换性能一致,甚至在高性能设备能上应用时能够满足10ms以内的链路切换性能。
79.在一些实施例中,第一节点dev_1在接收到源设备发来的三层单播业务报文后,还依据arp路由表更新三层单播业务报文的源mac地址、目的mac地址和vlan信息,并将内部端口设为出端口。
80.在一些实施例中,通过预先配置第一节点dev_1的arp表项来使第一节点dev_1将内部端口作为发送三层单播业务报文的出端口。
81.在一些实施例中,第一节点dev_1通过以下方式将三层单播业务报文发送至自身配置的内部端口进行环回:依据arp路由表将三层单播业务报文进行三层转发后从内部端口转出,其中,三层单播业务报文从内部端口转出后直接从内部端口的输入端传回内部端口。
82.请参阅图6,在一些实施例中,业务报文转发系统还包括:故障响应模块20以及端口状态切换模块30,故障响应模块20用于通过环网上配置的环路协议对链路故障进行响应,将链路故障通知环上各节点,以使端口状态切换模块30将处于阻塞状态的环上端口的端口状态切换为转发状态,并使mac地址清空模块10对环上各节点的环上端口的mac地址表进行清空。其中,故障响应模块20和端口状态切换模块30可以设置于环网上的每个节点内,以进行自身节点的故障响应和端口状态切换。
83.在一些实施例中,业务报文转发系统还包括:故障检测模块40,用于在环网发生链路故障时,通过环网上配置的故障检测协议识别环网上的链路故障,并通过中断的方式上报故障。其中,故障检测模块40可以设置于环网上的每个节点内,以进行自身节点的故障检测。
84.在一些实施例中,业务报文转发系统还包括:arp表项更新模块50,用于在mac地址清空模块10触发对所有环上端口的mac地址表的清空之后,通过故障节点向外发出的arp信息来进行环网上各节点的arp表项更新和mac地址的学习,其中,各节点按学到的mac地址进行报文转发。其中,arp表项更新模块50可以设置于环网上的每个节点内,以进行自身节点的arp表项更新和mac地址的学习。
85.在一些实施例中,arp信息为故障节点发出的免费arp报文,或者arp信息为故障节点发出的arp请求报文和arp响应报文。
86.需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
87.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
88.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
89.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的
要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
90.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
91.以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1