VRRP配置与维护手册-1
Posted 贺大卫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VRRP配置与维护手册-1相关的知识,希望对你有一定的参考价值。
http://www.gpxz.com/diannao/hulianwang/80526.html
一 VRRP简介< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
1.1 VRRP(Virtual Router Redundancy Protocol)
在VRRP协议中,有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。该虚拟路由器对外表现为一个具有唯一固定IP地址和MAC地址的逻辑路由器。处于同一个VRRP组中的路由器具有两种互斥的角色:主控路由器(master)和备份路由器(backup),一个VRRP组中有且只有一台处于主控角色的路由器,可以有一个或者多个处于备份角色的路由器。VRRP协议使用选择策略从路由器组中选出一台作为主控,负责ARP响应和转发IP数据包,组中的其它路由器作为备份的角色处于待命状态。当由于某种原因主控路由器发生故障时,备份路由器能在几秒钟的时延后升级为主路由器。由于此切换非常迅速而且不用改变IP地址和MAC地址,故对终端使用者系统是透明的。
1.2工作原理
一个VRRP路由器有唯一的标识:VRID,范围为0—255。该路由器对外表唯一的虚拟MAC地址,地址的格式为00-00-5E-00-01-[VRID]。主控路由器负责对ARP请求用该MAC地址做应答。这样,无论如何切换,保证给终端设备的是唯一一致的IP和MAC地址,减少了切换对终端设备的影响。 VRRP控制报文只有一种:VRRP通告(advertisement)。它使用IP多播数据包进行封装,组地址为224.0.0.18,发布范围只限于同一局域网内。这保证了VRID在不同网络中可以重复使用。为了减少网络带宽消耗只有主控路由器才可以周期性的发送VRRP通告报文。备份路由器在连续三个通告间隔内收不到VRRP或收到优先级为0的通告后启动新的一轮VRRP选举。 在VRRP路由器组中,按优先级选举主控路由器,VRRP协议中优先级范围是0—255。若VRRP路由器的IP地址和虚拟路由器的接口IP地址相同,则称该虚拟路由器作VRRP组中的IP地址所有者;IP地址所有者自动具有最高优先级:255。优先级0一般用在IP地址所有者主动放弃主控者角色时使用。可配置的优先级范围为1—254。优先级的配置原则可以依据链路的速度和成本、路由器性能和可靠性以及其它管理策略设定。主控路由器的选举中,高优先级的虚拟路由器获胜,因此,如果在VRRP组中有IP地址所有者,则它总是作为主控路由的角色出现。对于相同优先级的候选路由器,按照IP地址大小顺序选举。VRRP还提供了优先级抢占策略,如果配置了该策略,高优先级的备份路由器便会剥夺当前低优先级的主控路由器而成为新的主控路由器。为了保证VRRP协议的安全性,提供了两种安全认证措施:明文认证和IP头认证(MD5)。明文认证方式要求:在加入一个VRRP路由器组时,必须同时提供相同的VRID和明文密码。适合于避免在局域网内的配置错误,但不能防止通过网络监听方式获得密码。IP头认证的方式提供了更高的安全性,能够防止报文重放和修改等攻击。
1.3工作过程
VRRP 的工作过程如下:
(1) 路由器使能VRRP 功能后,会根据优先级确定自己在备份组中的角色。优先级高的路由器成为Master 路由器,优先级低的成为Backup 路由器。Master 路由器定期发送VRRP 通告报文,通知备份组内的其他设备自己工作正常;Backup 路由器则启动定时器等待通告报文的到来。
(2) 在抢占方式下,当Backup 路由器收到VRRP 通告报文后,会将自己的优先级与通告报文中的优先级进行比较。如果大于通告报文中的优先级,则成为Master 路由器;否则将保持Backup状态。
(3) 在非抢占方式下,只要Master 路由器没有出现故障,备份组中的路由器始终保持Master或Backup 状态,Backup 路由器即使随后被配置了更高的优先级也不会成为Master 路由器。
(4) 如果Backup 路由器的定时器超时后仍未收到Master 路由器发送来的VRRP 通告报文,则认为Master 路由器已经无法正常工作,此时Backup 路由器会认为自己是Master 路由器,并对外发送VRRP 通告报文。备份组内的路由器根据优先级选举出Master 路由器,承担报文的转发功能。
二 VRRP配置要素及注意事项
VRRP配置较为简单,必须配置的内容:VRRP组及虚拟IP地址和优先级。
1.配置VRRP组IP
Ruijie(config-if-VLAN 2)#vrrp 1 ip 192.168.1.254
2.配置VRRP组优先级
Ruijie(config-if-VLAN 2)#vrrp 1 priority 120
以下为可选配置:
1.配置关闭抢占模式(默认开启)
Ruijie(config-if-VLAN 2)#no vrrp 1 preempt
2.调整VRRP通告间隔(一般选择默认)
Ruijie(config-if-VLAN 2)#vrrp 1 timers advertise 2 [当网络对故障恢复时间要求不是很高的时候,可以适当增大通告时间,减少设备负担,降低线路带宽使用率,特别是设备上VRRP Group特别多的时候]
3.配置监听接口
Ruijie(config-if-VLAN 2)#vrrp 1 track gigabitEthernet 0/1 40 [某些特殊拓扑中可能会用到]
4.配置认证
Ruijie(config-if-VLAN 2)#vrrp 1 authentication ruijie [ 极少使用,对网络安全要求特别高的可能有此需求]
注意事项:
1. VRRP状态建立需要交互VRRP报文,参数必须匹配,例如:组号、虚拟IP地址、通告时间、认证,两台设备这些参数必须配置一致。
2.1配置案例1
用户网络中存在一个SVI上多个sec IP的应用,现在使用双核心运行VRRP,如何配置?
错误配置(认为只需要在VRRP组地址上配置虚拟地址就可以了)
interface VLAN 1
no ip proxy-arp
ip address 192.168.100.1 255.255.255.0
vrrp 1 ip 192.168.100.254
vrrp 1 ip 192.168.101.254 secondary
vrrp 1 ip 192.168.102.254 secondary
如上进行配置后,主机配置192.168.100.111 能够ping通各虚拟地址,但如果主机设置192.168.101.111后却无法ping通各虚拟地址,无法学习到网关arp。
在交换机上debug arp
Ruijie#debug arp
Ruijie#*Apr 29 13:30:54: %7: ARP:recv req src 192.168.102.112 0021.8652.da96; dst 192.168.102.254 0000.0000.0000; VLAN 1
*Apr 29 13:30:54: %7: ARP: source of request is not neighbor !
*Apr 29 13:30:54: %7: ARP:filter req src 192.168.102.112 0021.8652.da96; dst 192.168.102.254 0000.0000.0000; VLAN 1
*Apr 29 13:31:00: %7: ARP:recv req src 192.168.102.112 0021.8652.da96; dst 192.168.102.254 0000.0000.0000; VLAN 1
*Apr 29 13:31:00: %7: ARP: source of request is not neighbor !
原因:
Show ip route
Gateway of last resort is no set
C 192.168.100.0/24 is directly connected, VLAN 1
C 192.168.100.1/32 is local host.
C 192.168.100.254/32 is local host.
C 192.168.101.254/32 is local host.
C 192.168.102.254/32 is local host.
由于没有在interface SVI上配置Sec IP,交换机没有第二网段的路由表,arp无法进行回应。
正确配置:
interface VLAN 1
no ip proxy-arp
ip address 192.168.100.1 255.255.255.0
ip address 192.168.101.1 255.255.255.0 secondary
ip address 192.168.102.1 255.255.255.0 secondary
vrrp 1 ip 192.168.100.254
vrrp 1 ip 192.168.101.254 secondary
vrrp 1 ip 192.168.102.254 secondary
2.2配置案例2
用户有两台核心交换机,需要用户网关在其中一台上,服务器网关在另外一台上。双核心双链路连接至防火墙。这样如何实现?有何注意事项?
拓扑图如下:
解答:
根据客户需求,VRRP部分网关(用户的)在core1上,部分(服务器的)在core2上,由于与sw1和sw2间为双链路冗余结构,必须使用MSTP技术。为了达到最优架构及避免出现的问题,需要使用MSTP的instace实例配置,将服务器VLAN所属的instace的根桥设置在core2上,保证和VRRP的主IP在同一台设备上。
另外一个需要重点考虑的是交换机和防火墙的互联
方案1:
防火墙2接口路由口和交换机跑静态路由:
core1和core2都运行缺省路由指向防火墙,浮动静态路由互指(主要考虑防火墙和交换机之间的接口down),防火墙指服务器明细路由到core2上,指用户网段路由到core1上,再指服务器/用户段浮动路由到core1/core2上。
方案2
WALL使用混合口,两交换机使用路由口运行VRRP。Core1、2上指缺省路由到防火墙混合口的地址。为何不适用access口?因为如果为access口生成树会阻塞一条链路,会存在绕路的问题。
方案3:
防火墙和交换机用路由口跑OSPF。Core1和Core2在重发布的时候,调整发布的metric值,Core2发布服务器网段的metric为10,办公网段metric 20。Core1发布办公网段的metric10,服务器网段metric20
配置示例:以Core1为参考。
spanning-tree mst configuration
instance 1 vlan 10
//用户VLAN
instance 2 vlan 20
//服务器VLAN
name test
revision 1
spanning-tree mst 0 priority 4096
//缺省instace也按照优先级来设定根桥
spanning-tree mst 1 priority 4096
//设置SW1的实例1优先级最高,手动指定实例1的根桥为SW1)
spanning-tree mst 2 priority 8192
//Core2上设置mst2 priority 4096,手动指定为实例2的根桥)
interface Vlan 10(设置Core1上VLAN10的VRRP的优先级为150,高于默认的100-Core2上的VLAN10的VRRP优先级为100)
ip address 192.168.10.2 255.255.255.0
standby 10 ip 192.168.10.1
standby 10 priority 150
//用户VLAN
interface Vlan 20
ip address 192.168.20.3 255.255.255.0
standby 20 ip 192.168.20.1
//服务器VLAN
2.3配置案例3
在接入设备与我司两台核心生成树不兼容的情况下,我司2台核心设备运行VRRP该如何处理?
如下图所示:sw1/sw2为其他厂家设备,与我司生成树不兼容
解答:
1.遇到此类情况,建议对产品升级。一般来说MSTP、RSTP都是标准协议可以通过升级解决兼容,如果不需要使用负载均衡的功能(VRRP网关分别在不同设备上),建议使用RSTP。
2. 如果sw1上和sw2上都只有一个VLAN,可以让core1和core2和交换机sw1/sw2互联的接口使用路由口,运行VRRP。Sw1和sw2的管理地址需要使用和用户网段相同,或使用第二地址的方式来实现不同网段。
配置示例:
Core1配置:
interface GigabitEthernet 2/30
no switchport
no ip proxy-arp
ip address 10.166.127.130 255.255.255.248
vrrp 1 priority 120
vrrp 1 timers advertise 2
vrrp 1 ip 10.166.127.129
description To_华为S3500
Core2配置:
interface GigabitEthernet 2/30
no switchport
no ip proxy-arp
ip address 10.166.127.131 255.255.255.248
vrrp 1 priority 80
vrrp 1 timers advertise 2
vrrp 1 ip 10.166.127.129
description To_华为3500
3.如果sw1和sw2上有多VLAN的需求,在生成树又无法兼容的情况下,建议采用单线上联。
三 VRRP状态查看方法与命令
1. 查看VRRP的整体情况,三层接口、VRRP组号、优先级、抢占模式、主路由器地址
ruijie-2#show vrrp brief
Interface Grp Pri timer Own Pre State Master addr Group addr
VLAN 2 1 90 3 - P Master 192.168.1.2 192.168.1.254
VLAN 10 10 120 3 - P Master 192.168.10.2 192.168.10.254
2. 查看具体三层接口对应的VRRP组、状态、通告时间、优先级等详细参数
ruijie-2#show vrrp interface vlan 2
VLAN 2 - Group 1
State is Master
Virtual IP address is 192.168.1.254 configured
Virtual MAC address is 0000.5e00.0101
Advertisement interval is 1 sec
Preemption is enabled
min delay is 0 sec
Priority is 90
Master Router is 192.168.1.2 (local), priority is 90
Master Advertisement interval is 1 sec
Master Down interval is 3 sec
说明:正常情况下VRRP配置较为简单,VRRP很快就能协商出master与backup状态。如果出现两台设备都是master设备,最大可能性为参数设置不一致或组号不对。参考故障处理流程。
四 VRRP故障处理过程
VRRP 如果出现故障可以通过考察配置以及调试信息来分析和解决,VRRP故障定位基本流程如下:
1. 检查配置是否正确,是否按照规范执行。最好是使用工具进行比较,例如组号、通告时间、认证、虚拟IP等。
2. 确认接口是否UP及配置正确(能否保证对方能收到VRRP报文,如debug vrrp无输出,较大可能性为接口配置错误)
3. 前面2项已经可以排查配置错误导致的VRRP故障,例如常见故障:两边都是VRRP mater设备(通告间隔不一致、认证、IP地址配置错误、组号配置错误),转入下一步处理[如果配置较难查看,可尝试使用debug vrrp errors]
4. 查看设备表项,是否有虚拟IP的主机路由、arp表项是否正常,开启debug vrrp packets开关,查看设备是否正常发送出了vrrp报文或是否从对方收到了vrrp报文。
5. 主机上是否有虚拟网关对应的arp表项,如没有可捉包或在设备上开启debug arp ACL
6. 在较为复杂的环境中,例如VRRP+MSTP,需要结合考察端口的生成树状态,以防端口被阻塞掉,VRRP报文无法接收。同时注意是否有生成树的震荡情况,如有请优先排查生成树故障。【生成树一定要优化好,包括综合使用portfast、BPDU-guard、BPDU-filter等】
7. 如果是VRRP状态频繁倒换的情况,在查看设备收发报文的同时请尤其注意设备资源使用情况,建议可开启CPP和TPP保护技术,并调整VRRP响应的优先级。如需优化建议调整VRRP的通告间隔。
8. 收集log信息(注意时间开关和时间的准确性)提供后台分析。
五 VRRP故障处理案例
S7606 VRRP备份机状态切换异常故障案例
背景描述:
SA_CLT_SW_1和SA_CLT_SW_2为XX行客户端区汇聚交换机,其中SA_CLT_SW_1为VRRP主机,SA_CLT_SW_2为VRRP备机,在SA_CLT_SW_2上show log发现< xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />2月24日凌晨0点和5点二个时刻有部分三层接口(VLAN56、VLAN58)状态切换为VRRP主机(0点这个时刻的日志被冲掉),1秒后又切换回备机,而SA_CLT_SW_1上没有相关日志。客户认为当时网络很稳定,也没有业务流量,不应该发生这种切换,2月25日工程师在现场蹲点观察,故障没有重现。3月3日,客户告知该故障再次重现。
设备ios RGNOS 10.2.00(2), Release(39392)
拓扑图
故障处理思路:
备机VRRP状态发生切换,说明3S没有收到主机的VRRP通告报文(或没有处理),1S后恢复,说明又马上收到了并处理正常。
可能的原因包括:
1. SA_CLT_SW_1当时CPU高没有发出VRRP报文
2. SW_1发出了报文,但在传输中丢失或SW_2未处理
3. 由于客户网络中同时运行了STP,可能发生链路切换或阻塞导致传输丢失。
处理此类故障一般需要收集设备详细的log,即当时环境是否发生了某些变化,例如端口Up/down导致的生成树收敛,由于当时日志及没有获取其他信息,无法立刻做出判断。但一个疑点是:为什么其他VLAN的状态没有发生切换呢?
建议做如下工作:
1. 检查接入层交换机配置,完善STP配置,包括接入端口的portfast+BPDU-guard
2. 检查端口等是否有CRC错误、丢包等。
3. 将设备log记录到FLASH或发送至syslog
4. 状态异常时,show cpu-protect mainbord查看是否有协议报文丢弃,如无法实时监控,建议写脚本定期show cpp状态及VRRP状态(晚上每隔30分,进行无人监控)
5. 部署网管软件,监控两台交换机的CPU利用率
6. 优化策略:调整VRRP的通告间隔为2S,减少设备繁忙导致状态切换的可能性
调整CPP的配置,将VRRP的优先级调高
配置拓扑保护,防止设备繁忙时,STP或VRRP状态发生变化。CPU利用率建议设置在60-70%左右。
按照以上动作进行优化后发现故障仍然复现,设备CPU不高,CPP也未见有协议报文丢弃。在间隔时间为2S的情况下仍然发生异常,基本可以判定为设备在VRRP发包方面存在漏洞。提交研发分析,确认为软件缺陷,升级版本至10.2(3b27)后正常。
六 VRRP FAQ
6.1 是否可使用接口IP作为虚拟IP?
答:可以,使用接口作为虚拟IP后,VRRP 优先级默认变为255(最高优先级)
6.2 VRRP主设备是否会发免费arp?
答:目前实现的机制是及时vrrp发生切换,虚拟IP对应的mac仍然不变。用户端不需要更新主设备的arp信息。但如果发生切换,新的master设备会发送免费arp进行通告。
6.3 VRRP虚拟IP地址能否和接口IP地址不在同一个网段?
答:可以配置成功,实际应用中不这样做,浪费IP还可能发生冲突。
华为的设备:备份组会始终处于Initialize 状态,此状态下VRRP不起作用。
我司设备:可以成功协商状态。但由于没有虚拟IP网段的路由,只有虚拟IP的主机路由。主机不能配置此虚拟网段的地址,等同于无效。【可以参考配置案例1的原理】
6.4 备份设备是否会有接口下的arp信息呢?
答:根据arp学习机制,当arp请求时即会记录对方的arp信息,arp请求都会收到,但备份设备不会响应,但会学习并记录。
6.5 备份设备是否会处理送往其真实接口IP地址的arp或路由报文呢?
答:正常处理。
6.6 VRRP报文备份设备会通告吗?
答: 不会
6.7 我司VRRP是否支持VRRP负载均衡模式?(可以参考H3C配置,多设备分配不同的虚拟mac)
答:不支持
6.8 某接口下支持多少组VRRP?每组VRRP支持多少IP?
答:接口下支持64组,每组支持最多16个IP。
Ruijie(config-GigabitEthernet 0/8)#vrrp 64 ip 2.2.64.1
Ruijie(config-GigabitEthernet 0/8)#vrrp 65 ip 2.2.65.1
VRRP: only support 64 groups per interface.
Ruijie(config-GigabitEthernet 0/8)#vrrp 1 ip 2.17.1.1 secondary
VRRP: It is allowed to assign at most 16 IP addresses to one virtual router.
6.9 VRRP报文格式和各字段的作用?
答:报文格式如下:(V4和V6)
各字段解释如下:
? Version:协议版本号,VRRPv2 对应的版本号为2;VRRPv3 对应的版本号为3。
? Type:VRRP 报文的类型。VRRPv2 和VRRPv3 报文只有一种类型,即VRRP 通告报文
(Advertisement),该字段取值为1。
? Virtual Rtr ID(VRID):虚拟路由器号(即备份组号),取值范围1~255。
? Priority:路由器在备份组中的优先级,取值范围0~255,数值越大表明优先级越高。
? Count IP Addrs/Count IPv6 Addrs:备份组虚拟IP 地址的个数。1 个备份组可对应多个虚拟IP 地址。
? Auth Type:认证类型。该值为0 表示无认证,为1 表示简单字符认证,为2 表示MD5 认证。VRRPv3 不支持MD5 认证。
? Adver Int:发送通告报文的时间间隔。VRRPv2 中单位为秒,缺省为1 秒;VRRPv3 中单位为厘秒,缺省为100 厘秒。
? Checksum:16 位校验和,用于检测VRRP 报文中的数据破坏情况。
? IP Address/IPv6 Address:备份组虚拟IP 地址表项。所包含的地址数定义在Count IP
Addrs/Count IPv6 Addrs 字段。
? Authentication Data:验证字,目前只用于简单字符认证,对于其它认证方式一律填0。
6.10我司产品现在支持VRRP3吗?
答:支持,从10.4(2)开始支持。其实现原理和VRRP2一致。只是一个是针对IPV4的,一个是针对IPV6的。
七 附debug 信息及syslog说明
7.1 debug vrrp errors
*Mar 11 10:11:02: %7: VRRP: Grp 10 Advertisement from 192.168.10.1 has different IP address.
*Mar 11 10:11:03: %7: VRRP: Grp 1 Advertisement from 192.168.1.1 has inconsistentauthentication type 1, expected authentication type is 0.
*Mar 11 10:11:03: %7: VRRP: Grp 10 Advertisement from 192.168.10.1 has different IP address.
**注意查看错误信息,一般来说对排查错误配置非常有用
7.2 debug vrrp packets
*Mar 11 10:13:43: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:13:44: %7: VRRP: Grp 1 on interface VLAN 2 is sending advertisement checksum c255.
*Mar 11 10:13:44: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:13:45: %7: VRRP: Grp 1 on interface VLAN 2 is sending advertisement checksum c255.
**注意查看通告间隔,目前的版本并未显示收到的VRRP报文。
7.3 debug vrrp events
*Mar 11 10:19:24: %VRRP-6-STATECHANGE: VLAN 10 group 10 state Master -> Backup
** 注意可以显示在什么时间点发生了状态切换。一般结合操作log来查看分析问题。
7.4 show log
ruijie-2#$ show log
Syslog logging: enabled
Console logging: level debugging, 777 messages logged
Monitor logging: level debugging, 0 messages logged
Buffer logging: level debugging, 778 messages logged
Standard format: flase
Timestamp debug messages: datetime
Timestamp log messages: datetime
Sequence-number log messages: disable
Sysname log messages: disable
Count log messages: disable
Trap logging: level informational, 18 message lines logged,0 fail
Log Buffer (Total 4096 Bytes): have written 4096, Overwritten 4009
*Mar 11 10:14:49: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:18:10: %7: VRRP: Grp 1 on interface VLAN 2 is sending advertisement checksum c255.
*Mar 11 10:18:10: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:18:18: %7: VRRP: Grp 1 on interface VLAN 2 is sending advertisement checksum c255.
*Mar 11 10:18:18: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*******************************省略**************************************
*Mar 11 10:18:25: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:18:26: %7: VRRP: Grp 1 on interface VLAN 2 is sending advertisement checksum c255.
*Mar 11 10:18:26: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:18:27: %7: VRRP: Grp 1 on interface VLAN 2 is sending advertisement checksum c255.
*Mar 11 10:18:27: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:18:28: %7: VRRP: Grp 1 on interface VLAN 2 is sending advertisement checksum c255.
*Mar 11 10:18:28: %7: VRRP: Grp 10 on interface VLAN 10 is sending advertisement checksum 9b4c.
*Mar 11 10:18:46: %SYS-5-CONFIG_I: Configured from console by console
*Mar 11 10:19:23: %SYS-5-CONFIG_I: Configured from console by console
*Mar 11 10:19:24: %VRRP-6-STATECHANGE: VLAN 10 group 10 state Master -> Backup
** syslog不仅可以记录系统当时其他的信息,例如端口up、down同时可以记录debug的信息输出。所以建议当排查故障时,可以将syslog发送至服务器或记录在FLASH中,并注意时间的准确性。
7.5 其他syslog信息
请查阅10.X syslog说明,里面有日志提示表示的含义解释。
以上是关于VRRP配置与维护手册-1的主要内容,如果未能解决你的问题,请参考以下文章