拓扑图
步骤一. IP编址与基本配置
给所有路由器配置IP地址信息。
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname R1
[R1]interface loopback 0
[R1-LoopBack0]ip address 1.1.1.1 32
[R1-LoopBack0] GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 10.0.123.1 24
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname R2
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.0.123.2 24
[R2-GigabitEthernet0/0/0]interface GigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.1.2 24
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname R3
[R3]interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0]ip address 10.0.123.3 24
[R3-GigabitEthernet0/0/0]interface GigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.1.3 24
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname R4
[R4]interface GigabitEthernet 0/0/1
[R4-GigabitEthernet0/0/1]ip address 192.168.1.4 24
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname R5
[R5]interface GigabitEthernet 0/0/1
[R5-GigabitEthernet0/0/1]ip address 192.168.1.5 24
配置完成后,在R1上测试到R2和R3的连通性。
测试R2、R3、R4和R5之间的连通性,以R2为例。
步骤二. 配置OSPF协议和静态路由
R1的环回口0,R1、R2和R3互连接口运行在OSPF的区域0,R2和R3连接S1交换机的接口也要宣告进OSPF,但不建立邻居,只为发布路由,因此使用silent模式。
R4和R5为模拟PC,使用静态默认路由指向该网段的192.168.1.1(VRRP虚拟地址)。
最终实现的目标是R1可以学到192.168.1.0网段路由,R2和R3可以学到1.1.1.1路由。
[R1]ospf router-id 10.0.0.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R2]ospf router-id 10.0.0.2
[R2-ospf-1]silent-interface GigabitEthernet 0/0/1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R3]ospf router-id 10.0.0.3
[R3-ospf-1]silent-interface GigabitEthernet 0/0/1
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R4]ip route-static 0.0.0.0 0.0.0.0 192.168.1.1
[R5]ip route-static 0.0.0.0 0.0.0.0 192.168.1.1
配置完成后,观察各设备的路由表,以R1、R2和R4为例
从以上输出可以看到,R1可以学习到192.168.1.0/24路由,R2可以学习到1.1.1.1/32路由,R4有一条静态默认路由指向192.168.1.1。
步骤三. 配置VRRP组和虚拟地址
在R2和R3 的相应接口上启用VRRP并配置虚拟组ID和虚拟地址。
[R2-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.1
由于R2先进行了配置,经历一个等待周期后发觉组内没有其他成员,因此自己成为Master。
[R3-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.1
配置完成后,在R2和R3上观察VRRP状态。
R2成功当选Master路由器,R3为Slave路由器。但此时并没有配置优先级,主备优先级都是100,这种情况下如果R3先启动,那么主设备会变成R3,这种结果不是我们期望的。
步骤四. 配置VRRP设备优先级,验证主备切换
在R2和R3配置VRRP的优先级,优先级越大越高,因此R2是120,R3是110。
[R2-GigabitEthernet0/0/1]vrrp vrid 1 priority 120
[R3-GigabitEthernet0/0/1]vrrp vrid 1 priority 110
验证优先级修改后的结果。
由输出信息,发现优先级已经成功修改完毕,默认情况下VRRP开启抢占,如果修改R3的优先级更高,那么产生主备切换。
最后验证从R4到R1的互通。
由输出显示,虚拟网关已经正常工作,可以把R4所在LAN的数据转发到R1。正常情况下,由Master转发数据,因此流量经过R2。为了验证故障切换状态,我们开启R4到R1的长ping,并关闭R2连接S1的接口。
[R2-GigabitEthernet0/0/1]shutdown
在主备切换的过程中,R4丢了2个数据包,但后续数据正常转发。
由于主备切换,R3成为Master。
步骤五. 配置跟踪上行链路特性
VRRP主备切换是通过侦听通告报文实现的,如果Slave路由器侦听不到Master的消息或自己优先级更高,那么执行抢占(默认无抢占等待时间)。
如果故障点发生在上行链路,主备不切换,那么所有上网流量到达R2之后将无法转发。因此这里引入一个VRRP的特性——跟踪上行链路。确保在上行链路出现故障的时候,R2自动降低自己的优先级,R3可以执行抢占,从而将流量引导到备用路由器和备用上行链路进行转发。
在R2上配置跟踪上行接口,设置惩罚值为30,即当链路失效,R2的运行优先级会变为90,低于R3的110:
[R2-GigabitEthernet0/0/1]vrrp vrid 1 track interface GigabitEthernet 0/0/0 reduced 30
检查跟踪配置:
在R4上开启长ping,同时shutdown R2的上行接口:
[R2-GigabitEthernet0/0/0]shutdown
检查主备状态R3成为Master,流量成功引导到R3上网。
将R2上行链路恢复,优先级恢复,重新抢占成为Master路由器(此过程的R4丢包数量较多,原因是OSPF路由没有快速收敛的缘故,加快路由收敛部分请阅读OSPF实验)。
[R2-GigabitEthernet0/0/0]undo shutdown
注意:因为在接口up之后,R2上行接口要重新建立OSPF邻居,如果没有配置OSPF快速收敛,将会有数秒钟无法转发数据。因此建议回切时配置抢占延时,延时时间要大于OSPF收敛时间。
[R2-GigabitEthernet0/0/1]vrrp vrid 1 preempt-mode timer delay 10
再次检查VRRP,延时抢占已经配置成功。
步骤六. 配置VRRP多组负载均衡
在正常状态下,所有流量都从Master设备转发,Slave设备处于闲置状态。
如果想实现双网关的负载均衡,可以采用VRRP多组的方式:在R2和R3上分别建立VRRP组1,虚拟地址为192.168.1.1,Master设备是R2,VRRP组2,虚拟地址为192.168.1.254,Master设备是R3。并且将R4的默认网关指向192.168.1.1,R5的默认网关指向192.168.1.254。这样的设计,可以将这个网段上的主机上网流量,分担到两台网关上。
下面是具体配置:
[R2-GigabitEthernet0/0/1]vrrp vrid 2 virtual-ip 192.168.1.254
[R2-GigabitEthernet0/0/1]vrrp vrid 2 priority 110
[R3-GigabitEthernet0/0/1]vrrp vrid 2 virtual-ip 192.168.1.254
[R3-GigabitEthernet0/0/1]vrrp vrid 2 priority 120
[R3-GigabitEthernet0/0/1]vrrp vrid 2 track interface GigabitEthernet0/0/0 reduced 30
[R5]undo ip route-static 0.0.0.0 0.0.0.0 192.168.1.1
[R5]ip route-static 0.0.0.0 0.0.0.0 192.168.1.254
在R2和R3上查看双组负载均衡状态:
使用tracert来确认发到两条默认路由的数据被哪个网关来处理,可以看到从R4发出的数据由组1的Master转发,R5发出的数据由组2的Master转发:
验证上行链路失效后的流量切换:
观察切换后的VRRP双组状态:
正常状态R2和R3负载分担,R2出现故障,R3可以接管R2的所有流量,至此VRRP双组负载均衡配置完毕。
配置文件参考
<R1>display current-configuration
#
sysname R1
#
interface GigabitEthernet0/0/0
ip address 10.0.123.1 255.255.255.0
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
ospf 1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.0.123.1 0.0.0.0
#
return
<R2>display current-configuration
#
sysname R2
#
interface GigabitEthernet0/0/0
shutdown
ip address 10.0.123.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.1.2 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.1
vrrp vrid 1 priority 120
vrrp vrid 1 preempt-mode timer delay 10
vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 30
vrrp vrid 2 virtual-ip 192.168.1.254
vrrp vrid 2 priority 110
#
ospf 1
silent-interface GigabitEthernet0/0/1
area 0.0.0.0
network 10.0.123.2 0.0.0.0
network 192.168.1.0 0.0.0.255
#
return
<R3>display current-configuration
#
sysname R3
#
interface GigabitEthernet0/0/0
ip address 10.0.123.3 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.1.3 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.1
vrrp vrid 1 priority 110
vrrp vrid 2 virtual-ip 192.168.1.254
vrrp vrid 2 priority 120
vrrp vrid 2 track interface GigabitEthernet0/0/0 reduced 30
#
ospf 1
silent-interface GigabitEthernet0/0/1
area 0.0.0.0
network 10.0.123.3 0.0.0.0
network 192.168.1.0 0.0.0.255
#
return
<R4>display current-configuration
#
sysname R4
#
interface GigabitEthernet0/0/1
ip address 192.168.1.4 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 192.168.1.1
#
return
<R5>display current-configuration
#
sysname R5
#
interface GigabitEthernet0/0/1
ip address 192.168.1.5 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 192.168.1.254
#
return