一种IPv4和IPv6共栈时虚拟IP地址浮动的方法与流程

文档序号:35466797发布日期:2023-09-16 06:44阅读:43来源:国知局

本发明属于网络通信的,具体涉及一种ipv4和ipv6共栈时虚拟ip地址浮动的方法。


背景技术:

1、在双栈技术中,ipv4和ipv6的协议栈都将被部署到同一网络节点中。由于装备了两种协议栈,这些双栈的网络节点能够发送和接收的数据包,既可以是ipv4的,也可以是ipv6的。当前方案均是同时实现vrrp4和vrrp6协议栈,分别为虚拟ipv4和虚拟ipv6地址提供服务。在ipv4和ipv6共栈运行时,如果存在大量的虚拟ipv4和ipv6地址会占用额外的cpu和内存资源。其次,同时实现ipv4和ipv6协议栈存在工作量,并提高了代码的复杂程度。

2、在现有技术中,一个虚拟ip地址启用一个vrrp进程进行vrrp状态协商和迁移。如果ipv4和ipv6共栈,则必须同时实现vrrp4和vrrp6协议栈。一次在仅实现了ipv4协议栈时,不能支持虚拟ipv6地址。如果同一组网下存在多个虚拟ipv4或者ipv6地址,需要对每一个ipv4和ipv6地址启用一个vrrp进程,存在大量虚拟ip地址时对系统资源浪费较大。


技术实现思路

1、本发明的目的在于提供一种ipv4和ipv6共栈时虚拟ip地址浮动的方法,旨在解决上述的问题。

2、本发明主要通过以下技术方案实现:

3、一种ipv4和ipv6共栈时虚拟ip地址浮动的方法,若在主备设备间运行vrrpv4,则虚拟ipv4地址在主备设备间浮动,虚拟ipv6地址与vrrp进程消息交互,虚拟ipv6地址通过联动vrrp4状态变迁实现虚拟ipv6地址在主备设备间浮动;当vrrp4处于初始状态和备用状态时,虚拟ipv6地址处于静默状态,当vrrp4处于活动状态时,虚拟ipv6地址处于活动状态,在设备上使用虚拟ipv6地址和虚拟mac地址运行nd协议;

4、同理,若在主备设备间运行vrrpv6,则虚拟ipv6地址在主备设备间浮动,虚拟ipv4地址与vrrp进程消息交互,虚拟ipv4地址通过联动vrrp6状态变迁实现虚拟ipv4地址在主备设备间浮动;当vrrp6处于初始状态和备用状态时,虚拟ipv4地址处于静默状态,当vrrp6处于活动状态时,虚拟ipv4地址处于活动状态,在设备上使用虚拟ipv4地址和虚拟mac地址运行nd协议。

5、为了更好地实现本发明,进一步地,当主备设备间运行vrrpv4时,包括以下步骤:

6、步骤s100:在防火墙上配置虚拟ipv6地址和关联配置:在配置虚拟ipv6地址绑定vrrp进程,虚拟ipv6地址订阅vrrp进程的消息;

7、步骤s200:当vrrp进程的状态发生变迁时,发送状态变迁消息;

8、步骤s300:当虚拟ipv6地址收到状态变迁消息时,根据vrrp4的状态确定虚拟ipv6地址的状态。

9、为了更好地实现本发明,进一步地,所述步骤s100包括以下步骤:

10、步骤s110:配置虚拟ipv6地址绑定制定接口,虚拟ipv6地址与接口配置的访问控制策略绑定;

11、步骤s120:配置虚拟ipv6地址跟踪指定的vrrp4进程状态;

12、步骤s130:配置虚拟ipv6地址,使用物理接口mac或者使用虚拟mac。

13、为了更好地实现本发明,进一步地,所述步骤s110中,与虚拟ipv6地址绑定的接口为物理接口、聚合接口、三层子接口、vlan接口中的任意一个。

14、为了更好地实现本发明,进一步地,所述步骤s300中,当虚拟ipv6地址在本机上处于静默状态时,进行以下处理:

15、不使用该虚拟ipv6地址主动发送任何nd协议报文;

16、当收到对该虚拟ipv6地址的nd请求时,直接丢弃不做任何处理;

17、当收到对该虚拟ipv6地址发起的上层请求时,直接丢弃,不做任何处理;

18、将所有静态路由中下一跳与该虚拟ipv6地址同网段的路由设置为不可达,通过这些路由转发的业务报文全部丢弃;

19、当虚拟ipv6地址使用接口mac时,若收到dmac为虚拟mac的ipv6报文,则直接丢弃;若收到dmac为物理接口mac的报文,如果绑定接口上存在其他ipv6地址,则转发,否则丢弃报文;

20、当前虚拟ipv6地址使用虚拟mac时,若收到dmac为虚拟mac的ipv6报文,则直接丢弃。

21、为了更好地实现本发明,进一步地,所述步骤s300中,当虚拟ipv6地址处于活动状态时,进行以下处理:

22、设备使用虚拟ipv6地址运行nd协议,发送nd请求;

23、当设备接收到对该ipv6地址发起的nd请求时,进行nd响应;

24、将所有静态路由中下一跳与该虚拟ipv6地址同网段的路由置为可达;使用这些路由转发的业务报文通过该虚拟ipv6地址绑定的接口进行转发;

25、当设备接收到对该ipv6地址发起的上层请求时,根据虚拟ipv6地址绑定的接口上的访问控制策略进行处理;如果接口的访问控制策略为允许,则相应这些请求,如果接口访问控制策略为阻止,则丢弃这些请求;

26、若虚拟ipv6地址使用接口mac地址,当接收到dmac为绑定接口mac地址的ipv6报文时,对该报文进行ipv6转发;当接口到dmac为非接口mac地址的ipv6报文时,丢弃报文;

27、若虚拟ipv6地址使用虚拟mac,当接收到dmac为绑定接口mac地址或虚拟mac地址的ipv6报文时,对该报文进行ipv6转发;当接口到dmac为非接口mac地址,且也不为虚拟mac地址的ipv6报文时,则丢弃报文;

28、若虚拟ipv6地址绑定的接口上配置了地址池类型snat,当防火墙接收到该虚拟ipv6地址同网段的nd请求时,判定该nd请求的ipv6地址是否在snat的地址池理,如果在地址池里,则需要响应该nd请求,否则不响应该nd请求;

29、若虚拟ipv6地址绑定的接口上配置dnat,当防火墙接收到该虚拟ipv6地址同网段的nd请求时,需要响应该nd请求。

30、为了更好地实现本发明,进一步地,当虚拟ipv6地址或者虚拟ipv4地址引用了vrrp进程时,vrrp进程的引用计数加1;当删除虚拟ipv6地址或者虚拟ipv4地址时,对应的vrrp进程引用计数减1;当vrrp进程引用计数为0时,删除该进程,当vrr进程引用计数不为0时,不删除vrrp进程。

31、为了更好地实现本发明,进一步地,同一组网下的若干个虚拟ipv6地址、虚拟ipv4地址分别绑定同一vrrp进程。

32、本发明的有益效果如下:

33、(1)本发明通过虚拟ipv6地址绑定vrrp4进程的状态,实现在仅运行vrrp4协议栈时,可以支持虚拟ipv6地址在主备设备间浮动的功能;同理,在仅实现vrrp6协议栈时,可以通过该方法支持虚拟ipv4地址在主备设备间浮动;本发明在不代码实现vrrp6或者vrrp4协议栈的情况下,实现虚拟ipv6地址或者虚拟ipv4地址在主备设备上浮动,具有较好的实用性;

34、(2)对于同一组网下多个虚拟ipv4和ipv6地址可以绑定同一vrrp进程,实现一个vrrp进程为多个虚拟ipv4和ipv6地址提供状态变迁功能。只运行一个vrrp进程,为大量的虚拟ipv4地址和虚拟ipv6地址提供双机热备功能,在同一组网环境需要大量虚拟ip地址时,可以节约系统支援,具有较好的实用性;

35、(3)发明实现了虚拟ipv4地址、虚拟ipv6地址,跨越协议版本绑定vrrp进程。实现在ipv4和ipv6共栈场景下,仅实现一种协议版本的vrrp协议栈,就能实现两种版本的虚拟ip地址。其次,启用一个vrrp进程,同时为多个虚拟ip地址提供服务。在相同组网场景需要大量虚拟ip地址时,显著减少系统资源的占用。同一个接口上需要支持大量的虚拟地址时,可以通过不同的虚拟地址跟踪相同的vrrp进程状态机在实现双机热备功能时,减少系统资源占用,具有较好的实用性;

36、(4)防火墙工作在三层模式时,在ipv4和ipv6共栈场景下,仅实现了vrrp4协议(不实现vrrp6协议栈),同时提供虚拟ipv4地址和虚拟ipv6虚拟地址根据链路和设备状态在主备设备间浮动的功能。防火墙虚拟ipv6地址联动vrrpv4状态,为ipv6业务提供双机热备功能。当链路和设备状态发生故障时,ipv6业务可以进行切换。在链路和设备状态恢复时,ipv6业务可以回切,具有较好的实用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1