Print

某局点S12504R VRRP虚地址32位主机路由学习在两个VPN中

2022-02-23 发表

组网及说明

设备:S12504R

涉及问题的版本:F3606 F3607 F3607P02

组网:两台12504R设备 VRRP组网,做下行设备的网关

问题描述

问题描述:设备为VRRP主设备,在三层口下绑定VPN 5GC_MGMN_in 然后配置VRRP相关配置,查看路由时发现在另一VPN 5GC_MGMN 中也能看到VRRP 虚地址的32位主机路由

相关配置:

interface Vlan-interface505

description to-S5552S-MGMN_IPMI

ip binding vpn-instance 5GC_MGMN_in

ip address 1.86.145.124 255.255.255.192

vrrp vrid 205 virtual-ip 1.86.145.126

vrrp vrid 205 priority 110

vrrp vrid 205 preempt-mode delay 5000

查看路由:


过程分析

梳理现场的操作记录发现,该接口原本绑定了VPN 5GC_MGMN 并配置了VRRP相关配置,重新规划组网后,现场直接将该VPN修改为5GC_MGMN_in 并配置上了相同的VRRP配置。

查看底层信息发现,在将VPN进行修改时,原本VPN下的VRRP虚地址32位主机路由没有删除的动作,因此在老VPN中依旧有路由。

[SNYL-GX5F-MEC_SPINE-S12504R-M-probe]display system internal route-direct event log reverse | inc f403

IPADDR_ADD Type=0x8000,vrfIdx=10,mtIdx=0,IfIdx=0xf403,1.86.145.126/32.                           //绑定新VPN时下发的路由

IPADDR_ADD Type=0x1,vrfIdx=10,mtIdx=0,IfIdx=0xf403,1.86.145.124/26.

DEBUG proc down->up State=0x8401,vrfIdx=0,mtIdx=0,IfIdx=0xf403,phyState=0x8480.

NET_UP State=0x8401,vrfIdx=0,mtIdx=0,IfIdx=0xf403.

VPN_BIND IfIdx=0xf403,VrfIdx=0xa.

IPADDR_DEL Type=0x1,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.124/26.

NET_DOWN State=0x4,vrfIdx=0,mtIdx=0,IfIdx=0xf403.

VPN_UNBIND IfIdx=0xf403,VrfIdx=0x1.

IPADDR_ADD Type=0x1,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.124/26.

IPADDR_DEL Type=0x1,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.125/26.

IPADDR_DEL Type=0x8000,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.1/32.

IPADDR_ADD Type=0x8000,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.126/32.                             //之前绑定老VPN时下发的路由,修改VPN后应该有个IPADDR_DEL 字段将这个老的路由删除

IPADDR_ADD Type=0x1,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.125/26. 

IPADDR_DEL Type=0x1,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.30/27.

IPADDR_ADD Type=0x8000,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.1/32.

IPADDR_DEL Type=0x8000,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.1/32.

IPADDR_ADD Type=0x8000,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.1/32.

NET_UP State=0x8480,vrfIdx=0,mtIdx=0,IfIdx=0xf403.

DEBUG proc down->up State=0x8401,vrfIdx=0,mtIdx=0,IfIdx=0xf403,phyState=0x8400.

NET_UP State=0x8401,vrfIdx=0,mtIdx=0,IfIdx=0xf403.

IPADDR_ADD Type=0x1,vrfIdx=1,mtIdx=0,IfIdx=0xf403,1.86.145.30/27.

VPN_BIND IfIdx=0xf403,VrfIdx=0x1.

IF_ACTIVE State=0x8400,vrfIdx=1,mtIdx=0,IfIdx=0xf403,Vlan-interface505.

IF_CREATE State=0x8400,vrfIdx=0,mtIdx=0,IfIdx=0xf403,Vlan-interface505.  


问题触发原因:下发undo ip bind vpn时,vrrp响应l3vpn去绑定事件,会删除vrrp虚ip并通知地址管理,通知地址管理时填充参数的vrfIndex为当前的值(undo后为0),实际应该使用添加时候的值(配置vpn时的值为1)。Vrf填充错误因此地址管理没有发布删除事件,导致路由残留。


解决方法

规避恢复方法

1、先把绑定新VPN端口下的VRRP配置删除掉, 再把VPN修改为之前残留的VPN,然后配上VRRP配置,再把VRRP配置删除,最后再把VPN改为新VPN 再加上VRRP配置

2、设备重启

彻底解决方法

在新版本F3608中解决该问题。