9.VRRP
VRRP
虚拟网关冗余协议 Virtual Router Redundancy Protocol.三层网关冗余技术。对用户的网关做冗余。
拓扑图
R1、R2、PC1通过交换机SW1连接到一个LAN里,现在希望通过在R1和R2连接SW1的接口上启用VRRP来实现主机上网的第一跳冗余,R1为master,R2为Backup。交换机不做额外的配置,仅透明转发。R3作为局域网和外部网络的网关,通过交换机SW1和汇聚路由器R1、R2互联。
VRRP配置
这里需要4个可用地址,网关一个地址,R1、R2、PC 三个地址,所需主机位为3位,掩码位29位,即255.255.255.248
R1配置接口IP以及冗余网关
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys AR1
[AR1]inter gi 0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.10.2 29
[AR1-GigabitEthernet0/0/0]
[AR1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.1 #创建虚拟组1,并指定虚拟ip地址,该虚拟地址作为用户网关
[AR1-GigabitEthernet0/0/0]vrrp vrid 1 priority 105 #将R1优先级改为105
如果没有配置优先级,主备优先级都是100,这种情况下如果R2先启动,那么主设备会变成R2,优先级数字越大越优先,将R1优先级改为105,则R1会成为主设备。
R2配置接口IP以及冗余网关
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys AR2
[AR2]inter gi 0/0/0
[AR2-GigabitEthernet0/0/0]ip add 192.168.10.3 24
[AR2-GigabitEthernet0/0/0]
[AR2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.1
查看vrrp信息
PC配置
PC上ping网关10.1
工作原理
核心路由器 master会每隔一段时间(约2s)发送一个特定的vrrp 报文。backup如果一段时间没有收到对方发来的vrrp 报文,就认为对方master 设备出现故障。此时backup会自动切换为master。
根据上行链路状态切换vrrp的master
VRRP主备切换是通过侦听通告报文实现的,如果Backup路由器侦听不到Master的消息或自己优先级更高,那么执行抢占(默认无抢占等待时间)。
如果故障点发生在上行链路,主备不切换,那么所有上网流量到达R1之后将无法转发。因此这里引入一个VRRP的特性——跟踪上行链路。确保在上行链路出现故障的时候,R1自动降低自己的优先级,R2可以执行抢占,从而将流量引导到备用路由器和备用上行链路进行转发。
- 配置上行接口的IP
[AR1]inter gi 0/0/1
[AR1-GigabitEthernet0/0/1]ip add 12.1.1.2 29
Sep 25 2023 22:35:20-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/1 has entered the UP state.
[AR1-GigabitEthernet0/0/1]q
[AR1]
[AR2]inter gi 0/0/1
[AR2-GigabitEthernet0/0/1]ip add 12.1.1.3 29
Sep 25 2023 22:35:44-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/1 has entered the UP state.
[AR2-GigabitEthernet0/0/1]
[Huawei]sys AR3
[AR3]inter gi 0/0/0
[AR3-GigabitEthernet0/0/0]ip add 12.1.1.1 29
Sep 25 2023 22:36:33-08:00 AR3 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR3-GigabitEthernet0/0/0]inter loop 0
[AR3-LoopBack0]ip add 1.1.1.1 32
[AR3-LoopBack0]q
[AR3]
- 配置路由
可以换成OSPF
[AR1]ip route-static 1.1.1.1 29 12.1.1.1
[AR2]ip route-static 1.1.1.1 29 12.1.1.1
[AR3]ip route-static 192.168.10.0 29 12.1.1.2
----[AR3]ip route-static 192.168.10.0 29 12.1.1.3
- 在AR1和AR2上配置跟踪上行链路状态
[AR1]inter gi 0/0/0
[AR1-GigabitEthernet0/0/0]vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
[AR1-GigabitEthernet0/0/0]q
[AR1]
[AR2]inter gi 0/0/0
[AR2-GigabitEthernet0/0/0]vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
[AR2-GigabitEthernet0/0/0]
跟踪上联接口gi 0/0/1 的状态,当发现gi 0/0/1口down时,自动减少优先级(默认是10,可以通过配置reduced指定减少的额度),以让出 master的位置。
- 配置完后,将AR1的上联口gi 0/0/1 shutdown,测试vrrp主备切换。
[AR1]inter gi 0/0/1
[AR1-GigabitEthernet0/0/1]shutdown
- 查看vrrp状态
AR2的vrrp状态,变为master
AR1的优先级降低30,变成75
配置密码(可选配置)
[AR1]inter gi 0/0/0
[AR1-GigabitEthernet0/0/0]vrrp vrid 1 authentication-mode simple plain 123 #配置认证简单明文密码123
配置VRRP 多组负载均衡
正常状态下,所有流量都从Master设备转发,Backup设备处于闲置状态。
如果想实现双网关的负载均衡,可以采用VRRP多组的方式:在R1和R2上分别建立VRRP组1,虚拟地址为192.168.10.1,Master设备是R1,VRRP组2,虚拟地址为192.168.10.5,Master设备是R2。并且将PC1的默认网关指向192.168.10.1,PC2的默认网关设置为192.168.10.5。这样的设计,可以将这个网段上的主机上网流量,分担到两台网关上。
设置另一组vrrp的虚拟地址为192.168.10.5,注意让AR2成为master。
[AR2-GigabitEthernet0/0/0]vrrp vrid 2 virtual-ip 192.168.10.5
[AR1-GigabitEthernet0/0/0]vrrp vrid 2 virtual-ip 192.168.10.5
此时重新加一台PC2,设置IP为192.168.10.6,网关设置为192.168.10.5。
问题
问题1:
ping 1.1.1.1 的会包路由 这个时候要么到AR1,要么到AR2,必然只能生效一条。
如果这个时候AR2为master,但是AR3到192.168.10.0的路由到AR1上,对于PC1的去包走的AR2,回包走的却是AR1;
如果这个时候AR1为master,但是AR3到192.168.10.0的路由到了AR2上,对于PC1的去包走的AR1,回包走的却是AR2。
所以 如果希望在主路由器故障时保护回包路由也能切换,那么确实需要在另一侧的接口上也配置VRRP。这样可以确保无论哪个方向的流量,只要主路由器出现故障,备份路由器都能立即接管并继续转发数据
问题2:
先配置这条路由,对于PC2的去包走的AR2,回包走的却是AR1。
[AR3]ip route-static 192.168.10.0 255.255.255.248 12.1.1.2
再添加以下路由之后,回包会被泛洪给AR1和AR2
-----[AR3]ip route-static 192.168.10.0 255.255.255.248 12.1.1.3
LSW1的mac转发表变化
交换机VRRP+MSTP实现二层和三层的冗余
拓扑图
配置vlan和接口模式
[SW4]vlan batch 10 20
[SW4]inter gi 0/0/1
[SW4-GigabitEthernet0/0/1]port link-type trunk
[SW4-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20
[SW4-GigabitEthernet0/0/1]
[SW4-GigabitEthernet0/0/1]inter gi 0/0/2
[SW4-GigabitEthernet0/0/2]port link-type trunk
[SW4-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20
[SW4-GigabitEthernet0/0/2]
[SW5]vlan batch 10 20
[SW5]inter gi 0/0/2
[SW5-GigabitEthernet0/0/2]port link-type trunk
[SW5-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20
[SW5-GigabitEthernet0/0/2]
[SW5-GigabitEthernet0/0/2]inter gi 0/0/1
[SW5-GigabitEthernet0/0/1]port link-type trunk
[SW5-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20
[SW5-GigabitEthernet0/0/1]
[SW6]inter gi 0/0/1
[SW6-GigabitEthernet0/0/1]port link-type trunk
[SW6-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20
[SW6-GigabitEthernet0/0/1]inter gi 0/0/2
[SW6-GigabitEthernet0/0/2]port link-type trunk
[SW6-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20
[SW6-GigabitEthernet0/0/2]q
[SW6]vlan batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW6]inter gi 0/0/3
[SW6-GigabitEthernet0/0/3]port link-type access
[SW6-GigabitEthernet0/0/3]port default vlan 10
[SW6-GigabitEthernet0/0/3]
[SW6-GigabitEthernet0/0/3]inter gi 0/0/4
[SW6-GigabitEthernet0/0/4]port link-type access
[SW6-GigabitEthernet0/0/4]port default vlan 20
配置VRRP组1
[SW4]inter vlan 10
[SW4-Vlanif10]ip add 192.168.10.2 29
[SW4-Vlanif10]vrrp vrid 1 virtual-ip 192.168.10.1
[SW4-Vlanif10]vrrp vrid 1 priority 105
[SW4-Vlanif10]
[SW5]inter Vlanif 10
[SW5-Vlanif10]ip add 192.168.10.3 29
[SW5-Vlanif10]vrrp vrid 1 virtual-ip 192.168.10.1
[SW5-Vlanif10]
配置VRRP组2
[SW4]inter vlan 20
[SW4-Vlanif10]ip add 192.168.20.2 29
[SW4-Vlanif10]vrrp vrid 2 virtual-ip 192.168.20.1
[SW4-Vlanif10]
[SW5]inter Vlanif 20
[SW5-Vlanif20]ip add 192.168.20.3 29
[SW5-Vlanif20]vrrp vrid 2 virtual-ip 192.168.20.1
[SW5-Vlanif20]vrrp vrid 2 priority 105
配置跟踪接口
[SW4]inter vlan 10
[SW4-Vlanif10]vrrp vrid 1 track interface GigabitEthernet0/0/1
[SW4-Vlanif10]q
[SW4]
[SW5]inter vlan 20
[SW5-Vlanif20]vrrp vrid 2 track interface GigabitEthernet0/0/1
[SW5-Vlanif20]q
配置MSTP
在MSTP(Multiple Spanning Tree Protocol)中引⼊了域的概念,可以将⼀个⼤型交换网络可以被划分为多个MST域(MST Region),但是每个交换机只能配置一个MST域。这意味着在一个大的交换网络中,可以有多个交换机,每个交换机配置一个不同的MST域。然后在每个MST域内,可以运行多个生成树实例(MSTI)。每个生成树实例之间彼此独立。这样可以实现链路的负载分担和避免资源浪费。
该协议不是基于VLAN,⽽是基于Instance(实例)运⾏的:可以将⼀个或多个VLAN映射到⼀个 Instance,然后MSTP基于该Instance计算⽣成树。映射到同⼀个Instance的 VLAN共享⼀颗⽣成树。可以针对MSTI进⾏主根桥,次根桥,接⼝优先级或cost等相关配置。
SW4、SW5、SW6上面配置MSTP
# 进入系统视图
system-view
# 切换到MSTP模式
stp mode mstp
#配置STP(Spanning Tree Protocol)的区域配置
stp region-configuration #进入STP区域配置模式
region-name hcnp #指定STP区域名称
instance 1 vlan 10 #创建实例1,并指定VLAN 10
instance 2 vlan 20
active region-configuration #应用配置:使上面的配置生效
设置根桥
vlan 10实例(也就是instance 1) 的根桥设置:
[sw4]stp instance 1 root primary #设置sw4的实例1的主根桥
[sw5]stp instance 1 root secondary #设置sw5的实例1的备用根桥
vlan 20实例(也就是instance 2) 的根桥设置:
[sw4]stp instance 2 root secondary #设置sw4的实例2的备用根桥
[sw5]stp instance 2 root primary #设置sw5的实例2的主根桥
MSTP其他常用命令
stp instance 0 priority 81 #设置优先级
display stp brief #查看端口状态
display stp region-configurat #查看MSTP实例和VLAN的映射关系
display stp instance 1 #查看实例1的状态信息
display stp instance 1 br #查看MSTP实例1端口角色