配置VRRP出现双主(双master)现象解析
本次解析是在只配置了VRRP且默认的STP配置情况下,即未配置任何STP优先级和MSTP实例优先级
通过本次解析可以了解VLAN隔离广播域后产生的一些现象,需要配置STP等协议去解决

本次实验使用使用CE6800作为实验设备,与S5700在配置命令上相同。
一、故障现象
CE1与CE2配置VRRP后查看VRRP主备 ,显示状态皆为master。
二、原因分析
1、心跳线接口STP状态为转发情况
即一般为CE1和CE2之间为了保证VRRP正常建立主备而配置的eth-trunk聚合链路。
分析默认情况下STP接口状态
因为拖出的交换机默认优先级为32768且MAC地址为随机值,所以在未指定STP优先级之前,CE1和CE2并不一定是根桥和备用根桥,CE3,CE4,CE5也有可能因为自身MAC地址数值小从而选举为根桥。
通过查询得到的MAC地址可得出,CE2为根桥,CE3为备用根桥。如下图:

恰好CE1或是CE2的MAC地址数值小被选为根交换机时,另一台设备与其的心跳线不会被STP阻塞且在eth-trunk配置trunk并放通了对应的vlan,此时VRRP主备状态正常。


2、心跳线接口STP状态为阻塞情况
将CE2与CE4调换位置后且配置相应命令,可发现此时CE1与CE4的心跳线接口被STP阻塞,此时VRRP出现双主现象,CE1与CE4只能够通过蓝色线路。
通过查询得到的MAC地址可得出,CE2为根桥,CE3为备用根桥。如下图:

正常情况10 30 50在CE1为master,20 40在CE2为master,此时由于CE1与CE4建立VRRP只能够通过CE2来转发,CE2只有VLAN 30和40,所以此时CE1和CE4只有VLANIF30和VLANIF40的接口VRRP状态正常,如下图:


三、查看各设备的STP接口状态
以默认情况心跳线被阻塞为例
1、查看默认STP接口状态
先查看默认的CE1到CE5的接口STP状态,虽然华为交换机默认运行MSTP,但是在未配置实例的情况下,所有VLAN在一个实例0中。
CE1

CE4

CE3

CE2

CE5

根据设备的接口状态可得

2、手工配置CE1为根桥,CE2为备用根桥
CE1
stp instance 0 root primary
CE4
stp instance 0 root secondary
CE1到CE5对比前后端口状态,端口角色
CE1


CE4


CE3


CE2


CE5


默认选举根桥情况下STP端口阻塞情况

手工指定CE1为根桥CE4为备用根桥情况下端口阻塞情况

查看VRRP状态,已正常建立主备


四、解决方法
简单地说就是手工指定核心交换机CE1为根桥,CE4为备用根桥,配置之后查看心跳线是否正常转发。
配置命令:
CE1
stp instance 0 root primary
CE4
stp instance 0 root secondary
注意:此方法只是配置STP达到VRRP主备正常,如果要达到VRRP的负载均衡的效果则需要配置MSTP的实例