具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本发明总体方案为:通过主控板上cpu中运行arp模块,以借助定时器主动发送arp 请求包进行保活打通的机制,保证其他板卡上的硬件芯片中的主机路由信息实时动态更新。
本方法的改进点在于——动态实时更新,其包括以下步骤: 1)路由模块、协议栈IP转发模块主动驱动arp模块,主动建立arp pending 状态的arp条目,同时主动发出arp request报文给邻接,获取硬件地址信息,开启重传定时器决定下一步的跳转;2)通过网管系统(如cli/web方式)配置模块添加静态arp、应用层协议模块主动建立arp完备活动状态的arp条目,前者建立的条目永久存活,邻接不可达时,需要通过配置删除其他板卡中的信息;后者的条目信息为应用层协议模块在外部邻接无法处理arp报文的状态下主动添加的arp条目,完成ip报文的转发,同时开启保活定时器,定时保活,有变化则动态添加、删除和更新其他板卡中的缓存表信息;3)路由模块根据注册计数器,实时、及时删除下一条邻接的arp信息;4)arp模块接收arp报文动态学习,建立arp完备活动状态的arp条目,开启保活定时器,定时保活,通过板间通信模块动态添加、删除和更新其他板卡中的主机路由的下一跳硬件地址信息,保证交换芯片中的路由信息的可靠性。
如图1,本系统包括了主控板上的arp模块000、应用层协议模块100、协议栈IP转发模块200、定时器模块300、路由模块400、邻接信息变化模块500、配置模块600和其他板卡中的硬件主机路由。arp模块000与其他七个模块都有连接,其中应用层协议模块100、协议栈IP转发模块200、路由模块400、邻接信息变化模块500和配置模块600是触发条件,触发arp条目的添加、更新和删除,定时器模块300维护了arp模块状态机的运转。arp条目的变化需要及时更新其他板卡中硬件芯片的主机路由表的信息。
如图2,协议栈IP转发模块引发主机路由信息变化工作流程步骤如下:
步骤10,网络接入设备IP转发模块转发报文时,报文驱动打通;
步骤11,以报文的目的ip地址赋值给邻接ip;
步骤12, 要发送的报文暂时缓存在主机路由信息中;
步骤13, 以邻接ip主动添加前一个状态和当前状态均为arp pending状态的邻接arp条目,硬件地址字段为NULL,arp生成方式为动态保活方式,跳转到步骤18。
如图2,路由模块引发主机路由信息变化工作流程步骤如下:
步骤14,路由注册打通时;
步骤15,以要注册的下一跳的ip地址首先查看缓存表中有无此ip地址的arp条目,有则跳转到步骤16,无则跳转到步骤17;
步骤16,记录此条目的当前状态为前一个状态,注册次数加1,如果当前状态为活动状态,跳转到步骤19,否则跳转到步骤45;
步骤17,以注册的ip地址赋值给邻接ip,跳转到步骤13;
步骤18,发送arp request报文,开启重传定时器,跳转到步骤45;
步骤19,开启保活定时器,进行邻接保活,跳转到步骤45。
如图3,路由注册取消删除arp信息工作流程步骤如下:
步骤20,路由注册取消时;
步骤21,以要注册取消的下一跳的ip地址首先查看缓存表中有无此ip地址的arp条目,有则跳转到步骤22,无则跳转到步骤45;
步骤22,注册计数器减1,跳转到步骤23;
步骤23,检查计数器是否为0,为0则转入步骤24,不为0 则跳转到步骤45;
步骤24,删除缓存表中信息,同时删除其他板卡中arp信息,通知路由模块,删除其他板卡中以该邻接为下一跳的路由信息,跳转到步骤45。
如图4,网管系统(如cli/web方式)配置模块配置静态arp主动添加动态arp信息工作流程步骤如下:
步骤25,手动添加arp条目;
步骤26,以要添加的邻接ip地址在路由表中查询有无此ip地址的arp条目,有则跳转到步骤45,无则跳转到步骤27;
步骤27,主动添加一条前一个状态和当前状态均为活动状态的邻接arp条目,硬件地址字段为邻接的mac值,arp生成方式为永久存在方式的邻接arp条目,此条目永久存在,跳转到步骤28;
步骤28,将arp条目信息下发到其他板卡的硬件芯片中,如果arp生成方式为永久存在,则跳转到步骤45,否则跳转到步骤19。
如图5,应用层协议模块主动添加动态arp信息工作流程步骤如下:
步骤29,应用层协议在邻接没有ip地址的情况下需要发送单播报文给邻接;
步骤30,以要发送报文的邻接ip在路由表中查询有无此ip地址的arp条目,有则跳转到步骤15,无则跳转到步骤31;
步骤31,主动添加一条前一个状态和当前状态均为活动状态的邻接arp条目,硬件地址字段为邻接的mac值,arp生成方式为动态保活方式的邻接arp条目,跳转到步骤28。
如图6,arp模块接收arp报文动态学习arp信息的工作流程步骤如下:
步骤32,接收arp报文;
步骤33,报文解析;
步骤34,根据响应报文中的源ip地址查看缓存表中有无此arp条目,如果有,则跳转到步骤35,无,则跳转到步骤31;
步骤35,检查报文中源mac信息和所属三层接口信息是否与缓存表中信息一致,不一致则跳转到步骤36,一致则跳转到步骤19;
步骤36,更新缓存表中信息,同时更新其他板卡的硬件芯片中的arp信息,并且需要通知路由相关模块更新其他板卡中路由的下一跳mac信息,跳转到步骤19。
如图7,重传定时器控制删除arp信息的工作流程步骤如下
步骤37,重传定时超时;
步骤38,重传次数小于配置的最大重传次数时,跳转到步骤39,否则跳转到步骤40;
步骤39,重传次数加1,跳转到步骤18;
步骤40,检查arp条目当前状态为arp pending状态,则跳转到步骤24,,否则跳转到步骤45。
如图8,保活定时器控制添加、更新arp信息的工作流程步骤如下:
步骤41,保活定时器超时;
步骤42,对比arp条目的前一个状态和当前状态,如果状态由arp pending状态切换到活动状态,则跳转到步骤44,否则跳转到步骤43;
步骤43,将arp当前状态置为pending状态,前一个状态置为活动状态,跳转到步骤18;
步骤44, arp信息添加到其他板卡的硬件芯片中,跳转到步骤43;
步骤45,结束。
术语说明:邻接:与网络接入设备连接的三层路由器接口或网络终端设备。
报文驱动打通:网络接入设备IP转发模块转发报文时,需要查找本地主机路由获取邻接的硬件地址信息,如果此时路由表中没有此信息,则需要利用要转发的报文,驱动arp模块利用arp协议去主动发送arp 请求包,获取邻接的硬件地址。
路由注册打通/取消:当网络接入设备需要手动添加/删除静态路由或动态路由协议学习删除动态路由时,某些硬件交换芯片是需要下一跳的硬件地址信息的,所以需要主动注册使用arp协议发送arp请求包,获取邻接的硬件地址,主动删除曾经建立的arp条目。
应用层协议主动添加arp信息:某些应用层协议需要发送单播报文给没有获取ip地址的邻接,此时无法采用报文驱动打通,所以主动添加arp信息。
本发明可以实时动态更新硬件芯片中的信息,做到外部邻接硬件信息或网络信息变化,可以及时更新到网络接入设备的硬件芯片中,大大提高了网络通信的实时性、准确度和流畅度。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。