一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文转发方法及设备与流程

2022-02-22 02:53:53 来源:中国专利 TAG:


1.本技术涉及通信技术,特别涉及一种报文转发方法及设备。


背景技术:

2.drni(distributed resilient network interconnect,分布式弹性网络互连)技术将两台物理设备虚拟成一台设备来实现跨设备链路聚合,提供设备级冗余保护和流量负载分担。
3.两台物理设备之间通过ipl(intra-portal link,内部控制链路)连接,定期发送drcp报文根据接收的对端设备的drcp协商报文判断两端的dr接口(distributed relay interface,分布式聚合接口)编号是否属于相同dr组(distributed-relay group,分布式聚合组),如果属于相同dr组则组成dr系统。ipl既可以是以太网聚合链路,也可以是vxlan隧道。作为ipl的vxlan隧道自动与设备上的所有vxlan关联。
4.两台物理设备组成dr(distributed resilient)系统后,通过交互的drcp(distributed relay control protocol,分布式聚合控制协议)报文携带的设备角色优先级信息协商具有高角色优先级的通信设备为主设备。两台设备间通过ipl链路实时同步mac地址表项、arp表项等对端信息。dr系统的两台设备形成负载分担,共同进行流量转发,当其中一台设备的dr接口的成员端口故障,将流量切换到另一台设备。
5.在vxlan(virtual extensible local area network,虚拟可扩展局域网)组网中,dr系统的两台设备均以虚拟设备的虚拟ip地址与对端的vtep(vxlan tunnel end point)建立vxlan隧道,收到来自对端的vxlan数据报文后解封装,根据以太网数据报文的目的mac地址查找ac(attached circuit,接入电路),通过作为ac的出端口的dr接口向dr发送以太网数据报文到外部设备。但是,当dr系统的其中一台设备的dr接口的所有成员端口故障时,需要将ac接口硬件表项的出端口由dr接口刷新为ipl链路的ipp接口,当故障的dr接口恢复时,再将ac接口的表项的出端口修改为dr接口。虚拟交换实例(virtual switch instance,vsi)中不同外部二层设备接入vxlan网络内vtep的ac不同,因此当dr系统接入的设备越多,流量切换所需修改ac接口的硬件表项越多,无法保证网络快速切换和流量收敛。


技术实现要素:

6.本技术的目的提供一种报文转发方法及设备,将故障dr接口转发的下行流量快速转发到邻居分布式聚合组设备。
7.为实现上述目的,本技术提供了一种报文转发方法,该方法包括:在流表中记录由控制器写入的有效状态的流量切换流表项;其中,流量切换流表项的匹配域字段为本地dr接口,流量切换流表项的指令字段为通过连接邻居分布式弹性dr设备的第一vxlan隧道发送;在虚拟交换实例的mac地址表中查找到待转发第一以太网数据报文的第一目的mac地址匹配的第一mac地址表项;查找第一mac地址表项的接入链路的出端口为本地dr接口;在流表中基于本地dr接口匹配到流量切换流表项,根据第一vxlan隧道的封装信息封装第一待
转发以太网数据报文并通过第一vxlan隧道的出端口发送到邻居dr设备。
8.为实现上述目的,本技术还提供了一种报文转发设备,该设备包括:流表项模块,用于在流表中记录由控制器写入的有效状态的流量切换流表项;其中,流量切换流表项的匹配域字段为本地dr接口,流量切换流表项的指令字段为通过连接邻居分布式弹性dr设备的第一vxlan隧道发送;查找模块,用于在虚拟交换实例的mac地址表中查找到待转发第一以太网数据报文的第一目的mac地址匹配的第一mac地址表项;查找第一mac地址表项的接入链路的出端口为本地dr接口;发送模块,用于在流表中基于本地dr接口匹配到流量切换流表项,根据第一vxlan隧道的封装信息封装第一待转发以太网数据报文并通过第一vxlan隧道的出端口发送到邻居dr设备。
9.本技术的有益效果在于,故障dr接口所在的dr设备无需修改ac表项就可以将需要通过本地dr接口发送的下行流量快速切换到ipp接口,保证网络流量的快速切换和流量收敛。
附图说明
10.图1为本技术提供的报文转发方法实施例的流程图;
11.图2a-2c为本技术提供的流量切换转发示意图;
12.图3为本技术提供的报文转发设备实施例的流程图。
具体实施方式
13.将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本技术的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。
14.使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。
15.图1所示为本技术提供的报文转发方法实施例的流程图;该实施例包括以下步骤:
16.步骤101,在流表中记录由控制器写入的有效状态的流量切换流表项;
17.流量切换流表项的匹配域字段为本地dr接口,流量切换流表项的指令字段为通过连接邻居分布式弹性dr设备的vxlan隧道发送;
18.步骤102,在虚拟交换实例的mac地址表中查找到待转发以太网数据报文的目的mac地址匹配的mac地址表项;
19.步骤103,查找mac地址表项的接入链路的出端口为本地dr接口;
20.步骤104,在流表中基于本地dr接口匹配到流量切换流表项,根据vxlan隧道的封装信息封装待转发以太网数据报文并通过vxlan隧道的出端口发送到邻居dr设备。
21.图1所示实施例的有益效果在于,故障dr接口所在的dr设备无需修改ac表项就可以将下行流量快速切换到ipp接口,保证网络流量的快速切换和流量收敛。
22.图2a-2c为本技术提供的流量切换转发示意图。图2a中,drni(distributed resilient network interconnect,分布式弹性网络互连)网络中,vtep(vxlan tunnel end point,vxlan隧道端点)1和2在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而
提供设备级冗余保护和流量负载分担。
23.vtep1和vtep2互为dr邻居设备,vtep1的dr接口201a和vtep2的201b属于同一dr组201(distributed-relay group,分布式聚合组)。
24.vtep1和vtep2配置具有相同的虚拟ip地址1.2.3.4,对外表现为一台虚拟vtep设备,并以该ip地址与vtep3建立vxlan隧道。
25.vtep1的本地接口配置的ip地址为1.1.1.1;vtep2的本地接口配置的ip地址为2.2.2.2,并以该ip地址与vtep4建立连接彼此的vxlan隧道。本实例便于说明,没有图示出各vxlan隧道上的中间设备。
26.vtep 1建立以为ip1.1.1.1为源ip地址且ip2.2.2.2为目的ip地址的vxlan隧道(参见图2a中的双点划线所示链路),vtep 2建立以为ip2.2.2.为源ip地址且ip1.1.1.1为目的ip地址的vxlan隧道(参见图2a中的双点划线所示链路)。
27.vtep1和vtep2之间以vxlan隧道作为互联的ipl,将作为ipl的vxlan隧道关联每个vxlan网络的vsi(virtual switch instance,虚拟交换实例)。vtep1和vtep2各自的ipp口(图中未示)为各自建立的vxlan隧道的隧道口。vtep1和vtep2通过ipl链路定期交互drcp(distributed relay control protocol,分布式聚合控制协议)报文,同步学习的转发表项。
28.vtep1和vtep2间还通过keep alive(保活)链路定期交互keep alive报文。
29.服务器s2和s3通过交换机5接入vtep1和vtep2,交换机5收到来自服务器s2和s3的以太网数据报文时,在连接vtep1和vtep2的上行链路中根据负载分担策略选择一条链路。
30.vtep1和vtep2在sdn(software defined network)网络内连接至控制器c。vtep1分别向控制器c发送带有本地dr接口201a以及dr组标识201的open flow协议报文21作为聚合组通告消息。vtep2分别向控制器c发送带有本地dr接口201b以及dr组标识201的open flow协议报文22作为聚合组通告消息。
31.控制器c收到open flow协议报文21和22,基于携带相同dr组标识201,确定dr接口201a和201b属于相同的dr组。
32.控制器c基于sdn网络拓扑向vtep1发送设置无效状态(disable)流表项的open flow协议报文23。vtep1接收open flow协议报文23,设置无效状态的流量切换流表项;其中,匹配域字段为dr接口201a,流量切换流表项的指令字段为通过连接vtep2的vxlan隧道发送。
33.控制器c基于sdn网络拓扑向vtep2发送设置无效状态的流表项的open flow协议报文24。vtep1接收open flow协议报文24设置无效状态的流量切换流表项;其中,匹配域字段为dr接口201b,流量切换流表项的指令字段为通过连接vtep1的vxlan隧道发送。
34.图2b中,vtep1在vsi的mac地址表中查找到待转发以太网数据报文30a的目的mac地址mac s2匹配的mac地址表项;查找到mac地址表项的接入链路的出端口为dr接口201a。vtep1的流表项为无效状态,因此vtep1不会基于dr接口201a去查找流表项。
35.vtep1从dr接口201a的选中成员端口选择一个成员端口,通过选择的成员端口发送以太网数据报文30a到交换机5。交换机5根据以太网数据报文30a的目的mac地址mac s2对应的出端口发送以太网数据报文30a到服务器s3。
36.vtep1转发的以太网数据报文30a既可以是接收自vtep3的vxlan数据报文31解封
装得到的;vtep1转发的以太网数据报文30a也可以自相同vsi的服务器s1收到的待转发以太网数据报文34。
37.图2b中,vtep2基于待转发以太网数据报文30b的目的mac地址mac s3在vsi的mac地址表中查找,vtep2查找到mac地址s3匹配的mac地址表项,查找到该mac地址表项的接入链路的出端口为dr接口201b。
38.vtep2的流表项为无效状态,vtep2不会基于本地dr接口201b查找流表项。vtep2从dr接口201b的选中成员端口选择一个成员端口,通过选择的成员端口发送以太网数据报文30b到交换机5。
39.交换机5根据以太网数据报文30b的目的mac地址mac s3对应的出端口发送以太网数据报文30b到服务器s3。
40.vtep2转发的以太网数据报文30b既可以是接收自vtep3的vxlan数据报文32解封装得到的;也可以是接收自vtep4的vxlan数据报文33解封装得到的。
41.图2c中,vtep1的dr接口201a的成员端口都故障,vtep1的dr接口201a没有选中的成员端口时,生成携带dr接口201a以及dr组标识201的open flow协议报文25作为聚合组故障消息,并发送open flow协议报文25至控制器c。
42.控制器c收到open flow协议报文25,基于sdn网络拓扑向vtep1发送设置有效状态(able)流表项的open flow协议报文26。
43.vtep1接收open flow协议报文26,设置有效状态的流量切换流表项;其中,匹配域字段为dr接口201a,流量切换流表项的指令字段为通过连接vtep2的vxlan隧道发送。
44.当vtep1收到来自服务器s1的以太网数据报文41,根据以太网数据报文41的目的mac地址在vsi mac地址表中查找到匹配的mac地址表项,查找到该mac地址表项的接入链路的出端口为dr接口201a。
45.vtep1在流表中基于dr接口201匹配到有效状态的流量切换流表项,根据指令字段读取连接vtep2的vxlan隧道的封装信息,根据封装信息将以太网数据报文41封装为vxlan数据报文42,并通过连接vtep2的vxlan隧道的出端口发送到邻居dr设备vtep2。
46.vtep2收到通过连接邻居dr设备vtep1的vxlan隧道收到vxlan数据报文42,将vxlan数据报文42解封装为以太网数据报文41。
47.vtep2根据以太网数据报文41的目的mac地址s2查找vsi mac地址表,vtep2查找到目的mac地址mac s2匹配的mac地址表项吗,查找到该mac地址表项中接入链路的出端口为dr接口201b。
48.vtep2的流表项为无效状态,因此vtep2不会基于本地dr接口201b查找流表项。
49.vtep2从dr接口201b的选中成员端口选择一个成员端口,通过选择的成员端口发送以太网数据报文41到交换机5。
50.交换机5根据以太网数据报文41的目的mac地址mac s2对应的出端口发送以太网数据报文41到服务器s2。
51.vetp1收到来自vtep3的vxlan数据报文后,解除vxlan封装可按照图2c实施例的相同方式进行转发。同样地,vtep2的dr接口201b故障时,vtep2可按照图2c实施例的方式对原本需要通过dr接口201b发送的以太网数据报文进行转发。
52.当vtep1的dr接口201a的一个以上成员端口工作,dr接口201a因为具有一个以上
选中的成员端口恢复,vtep1可以按照图2a实施例的方式设置无效状态的流表项,不再通过ipl链路发送需要经由dr接口201a发送的以太网数据报文,本技术不再赘述。
53.图2a-2c实施例中,vtep1的dr接口201a故障时,vtep1无需修改ac接口的硬件表项,而是根据流量切换流表项通过ipl发送到vtep2,因此vtep1和vtep2构成的dr系统接入的设备增加也不增加修改ac接口的硬件表项的时间,可以保证网络快速切换和流量收敛。本技术通过在dr系统的设备上设置有效状态或无效状态的流量切换流表项,使得dr系统的设备的在dr接口故障时还无需更改转发流程。
54.图3为本技术提供的报文转发设备实施例的流程图。该设备30设备包括:网络接口,交换芯片,cpu以及存储器。交换芯片至少包括接收模块、查找模块、发送模块。处理器通过运行存储器中的处理器可执行指令用以执行分布式聚合组模块、流表项模块。
55.流表项模块,用于在流表中记录由所述控制器写入的有效状态的流量切换流表项;其中,流量切换流表项的匹配域字段为本地dr接口,流量切换流表项的指令字段为通过连接邻居分布式弹性dr设备的第一vxlan隧道发送;查找模块,用于在虚拟交换实例的mac地址表中查找到待转发第一以太网数据报文的第一目的mac地址匹配的第一mac地址表项;查找第一mac地址表项的接入链路的出端口为本地dr接口;发送模块,用于在流表中基于本地dr接口匹配到流量切换流表项,根据第一vxlan隧道的封装信息封装第一待转发以太网数据报文并通过第一vxlan隧道的出端口发送到邻居dr设备。
56.分布式聚合组模块,基于本地dr接口故障事件生成聚合组故障消息;其中,聚合组故障消息携带本地dr接口及所属的分布式聚合组的分布式聚合组标识;发送模块,还用于向软件定义网络的控制器发送聚合组故障消息;接收模块,还用于接收来自控制器的用于设置有效状态的流量切换流表项的第一流表项设置消息。
57.分布式聚合组模块,还用于基于本地dr接口恢复事件生成聚合组通告消息;聚合组通告消息携带本地dr接口及分布式聚合组标识;发送模块,还用于向控制器发送聚合组通告消息;接收模块,还用于接收控制器用于设置无效状态的流量切换流表项的第二流表项设置消息;流表项模块,还用于根据第二流表项设置消息设置无效状态的流量切换流表项。
58.接收模块,还用于接收控制器根据聚合组故障消息发送的第一流表项消息;流表项模块,还用于根据第一流表项设置消息设置有效状态的流量切换流表项。
59.查找模块,还用于在虚拟交换实例的mac地址表中查找到待转发第二以太网数据报文的第二目的mac地址匹配的第二mac地址表项;查找到第二mac地址表项的接入链路的出端口为本地dr接口;发送模块,还用于从本地dr接口的选中成员端口选择一个成员端口,通过选择的成员端口发送第二以太网数据报文。
60.接收模块,还用于通过连接邻居dr设备的第二vxlan隧道接收vxlan数据报文;查找模块,还用于将vxlan数据报文解封装为第三以太网数据报文;在虚拟交换实例的mac地址表中查找到第三以太网数据报文的第三目的mac地址匹配的第三mac地址表项;查找到第三mac地址表项的接入链路的出端口为本地dr接口;发送模块,还用于从本地dr接口的选中成员端口选择一个成员端口,通过选择的成员端口发送第三以太网数据报文。
61.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献