O1/
VRRP基本概念和工作原理
-VRRP基本概念-
随着Internet的发展,人们对网络的可靠性的要求越来越高。对于局域网用户来说,能够时刻与外部网络保持联系是非常重要的。
通常情况下,内部网络中的所有主机都设置一条相同的缺省路由,指向出口网关(即图1中的路由器RouterA),实现主机与外部网络的通信。当出口网关发生故障时,主机与外部网络的通信就会中断。
配置多个出口网关是提高系统可靠性的常见方法,但局域网内的主机设备通常不支持动态路由协议,如何在多个出口网关之间进行选路是个问题。
IETF(Internet Engineering Task Force,因特网工程任务组)推出了VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议,来解决局域网主机访问外部网络的可靠性问题。
VRRP是一种容错协议,它通过把几台路由设备联合组成一台虚拟的路由设备,并通过一定的机制来保证当主机的下一跳设备出现故障时,可以及时将业务切换到其它设备,从而保持通讯的连续性和可靠性。
使用VRRP的优势在于:既不需要改变组网情况,也不需要在主机上配置任何动态路由或者路由发现协议,就可以获得更高可靠性的缺省路由。
VRRP协议对应的是RFC3768,该协议仅适用于IPv4。
1.VRRP路由器(VRRP Router)运行VRRP的设备,它可能属于一个或多个虚拟路由器。
2.虚拟路由器(Virtual Router)由VRRP管理的抽象设备,又称为VRRP备份组,被当作一个共享局域网内主 机的缺省网关。 它包括了一个虚拟路由器标识符和一组虚拟IP地址。
3.虚拟IP地址(Virtual IP Address) 虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。
4.IP地址拥有者(IP Address Owner)如果一个VRRP路由器将虚拟路由器的IP地址作为真实的接口地址,则该设备是IP地址拥有者。 当这台设备正常工作时,它会响应目的地址是虚拟IP地址的报文,如ping、TCP连接等。
5.虚拟MAC地址 是虚拟路由器根据虚拟路由器ID生成的MAC地址。 一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID}。 当虚拟路由器回应ARP请求时,使用虚拟MAC地址,而不是接口的真实MAC地址。
6.主IP地址(Primary IP Address)从接口的真实IP地址中选出来的一个主用IP地址,通常选择配置的第一个IP地址,VRRP广播报文使用主IP地址作为IP报文的源地址。
7.Master路由器(Virtual Router Master)是承担转发报文或者应答ARP请求的VRRP路由器,转发报文都是发送到虚拟IP地址的。 如果IP地址拥有者是可用的,通常它将成为Master。
8.Backup路由器(Virtual Router Backup)一组没有承担转发任务的VRRP路由器,当Master设备出现故障时,它们将通过竞选成为新的Master。
9.抢占模式 在抢占模式下,如果Backup的优先级比当前Master的优先级高,将主动将自己升级成Master。
-VRRP的工作原理-
VRRP将局域网的一组路由器构成一个备份组,相当于一台虚拟路由器。局域网内的主机只需要知道这个虚拟路由器的IP地址,并不需知道具体某台设备的IP地址,将网络内主机的缺省网关设置为该虚拟路由器的IP地址,主机就可以利用该虚拟网关与外部网络进行通信。
VRRP将该虚拟路由器动态关联到承担传输业务的物理路由器上,当该物理路由器出现故障时,再次选择新路由器来接替业务传输工作,整个过程对用户完全透明,实现了内部网络和外部网络不间断通信。
主机利用该虚拟网关与外部网络通信。路由器工作机制如下:
根据优先级的大小挑选Master设备。Master的选举有两种方法:
比较优先级的大小,优先级高者当选为Master。
当两台优先级相同的路由器同时竞争Master时,比较接口IP地址大小。接口地址大者当选为Master。
其它路由器作为备份路由器,随时监听Master的状态。
当主路由器正常工作时,它会每隔一段时间(Advertisement_Interval)发送一个VRRP组播报文,以通知组内的备份路由器,主路由器处于正常工作状态。
当组内的备份路由器一段时间(Master_Down_Interval)内没有接收到来自主路由器的报文,则将自己转为主路由器。一个VRRP组里有多台备份路由器时,短时间内可能产生多个Master,此时,路由器将会将收到的VRRP报文中的优先级与本地优先级做比较。从而选取优先级高的设备做Master。
O2/
VRRP报文和状态机
Version:协议版本号,现在的VRRP为版本2。
Type:报文类型,只有一种取值,1,表示Advertisement。
Virtual Rtr ID(VRID):虚拟路由器ID,取值范围是1~255。
Priority:发送报文的VRRP路由器在虚拟路由器中的优先级。取值范围是0~255,其中可用的范围是1~254。0表示设备停止参与VRRP,用来使备份路由器尽快成为主路由器,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。
Count IP Addrs:VRRP广播中包含的虚拟IP地址个数。
Authentication Type:验证类型说明:
变更的原因:实践和分析证明,这些认证方式不能提供真正的安全。而限制TTL=255可以阻止大多数对本地脆弱性的***。
实现了Simple Text Password认证方式
Advertisement Interval:发送通告报文的时间间隔,缺省为1秒。
Checksum:校验和。
IP Address(es):虚拟路由器IP地址,地址个数是Count IP Addrs的值。
Authentication Data:验证字,目前只有明文认证才用到该部分,对于其它认证方式,一律填0。
-VRRP状态机-
VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于活动状态的设备才可以转发那些发送到虚拟IP地址的报文。
Initialize
设备启动时进入此状态,当收到接口Startup的消息,将转入Backup或Master状态(IP地址拥有者的接口优先级为255,直接转为Master)。在此状态时,不会对VRRP报文做任何处理。
Master
当路由器处于Master状态时,它将会做下列工作:
定期发送VRRP报文。
以虚拟MAC地址响应对虚拟IP地址的ARP请求。
转发目的MAC地址为虚拟MAC地址的IP报文。
如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。
如果收到比自己优先级大的报文则转为Backup状态。
如果收到优先级和自己相同的报文,并且发送端的主IP地址比自己的主IP地址大,则转为Backup状态。
当接收到接口的Shutdown事件时,转为Initialize。
Backup
当路由器处于Backup状态时,它将会做下列工作:
接收Master发送的VRRP报文,判断Master的状态是否正常。
对虚拟IP地址的ARP请求,不做响应。
丢弃目的MAC地址为虚拟MAC地址的IP报文。
丢弃目的IP地址为虚拟IP地址的IP报文。
Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器;如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址。
当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,才会转为Master(Master_Down_Timer)。
当接收到接口的Shutdown事件时,转为Initialize
O3/
VRRP的配置
一.VRRP单备份组配置举例
- 组网需求
? ? Host A 需要访问 Internet 上的 Host B,Host A 的缺省网关为 10.1.1.111/24;
? ? 当 Switch A 正常工作时,Host A 发送给 Host B 的报文通过 Switch A 转发;当 Switch A 出现
故障时,Host A 发送给 Host B 的报文通过 Switch B 转发。
配置步骤
注:IntranetSwitch仅起交换作用,在这个例子里不用做配置
(1) 配置 Switch A 配置 VLAN2,3。
<SwitchA> system-view
[SwitchA] vlan 2
[SwitchA-vlan2] port gigabitethernet 1/0/11
[SwitchA-vlan2] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 255.255.255.0
[SwitchA-Vlan-interface2]quit
[SwitchA] vlan 3
[SwitchA-vlan3] port gigabitethernet 1/0/13
[SwitchA-vlan3] quit
[SwitchA] interface vlan-interface 3
[SwitchA-Vlan-interface3] ip address 10.1.3.1 255.255.255.0
[SwitchA-Vlan-interface3]quit
[SwitchA]ip route-static 0.0.0.0 0 10.1.3.2
创建备份组 1,并配置备份组 1 的虚拟 IP 地址为 10.1.1.111。
[SwitchA]inter vlan 2
[SwitchA-Vlan-interface2] vrrp vrid 1 virtual-ip 10.1.1.111
设置 Switch A 在备份组 1 中的优先级为 110,高于 Switch B 的优先级 100,以保证 Switch A 成为 Master 负责转发流量。
[SwitchA-Vlan-interface2] vrrp vrid 1 priority 110
设置 Switch A 工作在抢占方式,以保证 Switch A 故障恢复后,能再次抢占成为 Master,即只要Switch A 正常工作,就由 Switch A 负责转发流量。为了避免频繁地进行状态切换,配置抢占延迟时间为 5 秒。
[SwitchA-Vlan-interface2] vrrp vrid 1 preempt-mode delay 500
(2) 配置 Switch B
配置 VLAN2。
<SwitchB> system-view
[SwitchB] vlan 2
[SwitchB-Vlan2] port gigabitethernet 1/0/12
[SwitchB-vlan2] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 10.1.1.2 255.255.255.0
[SwitchB-Vlan-interface2]quit
[SwitchB] vlan 3
[SwitchB-vlan3] port gigabitethernet 1/0/14
[SwitchB-vlan3] quit
[SwitchB] interface vlan-interface 3
[SwitchB-Vlan-interface3] ip address 10.1.4.1 255.255.255.0
[SwitchB-Vlan-interface3]quit
[SwitchB]ip route-static 0.0.0.0 0 10.1.4.2
创建备份组 1,并配置备份组 1 的虚拟 IP 地址为 10.1.1.111。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] vrrp vrid 1 virtual-ip 10.1.1.111
设置 Switch B 在备份组 1 中的优先级为 100。
[SwitchB-Vlan-interface2] vrrp vrid 1 priority 100
设置 Switch B 工作在抢占方式,抢占延迟时间为 5 秒。
(3) 配置 Switch C
配置 VLAN2。
<SwitchC> system-view
[SwitchC] inter g 1/0/13
[SwitchC-GigabitEthernet1/0/13]port link-mode route
[SwitchC-GigabitEthernet1/0/13]ip add 10.1.3.2 24
[SwitchC-GigabitEthernet1/0/13]undo shut
[SwitchC-GigabitEthernet1/0/13]quit
[SwitchC] inter g 1/0/14
[SwitchC-GigabitEthernet1/0/14]port link-mode route
[SwitchC-GigabitEthernet1/0/14]ip add 10.1.4.2 24
[SwitchC-GigabitEthernet1/0/14]undo shut
[SwitchC-GigabitEthernet1/0/14]quit
[SwitchC] vlan 2
[SwitchC-Vlan2] port gigabitethernet 1/0/1
[SwitchC-vlan2] quit
[SwitchC] interface vlan-interface 2
[SwitchC-Vlan-interface2] ip address 10.1.2.2 255.255.255.0
[SwitchC-Vlan-interface2]quit
[SwitchC]ip route 10.1.1.0 24 10.1.3.1
[SwitchC]ip route 10.1.1.0 24 10.1.4.1
- 验证配置
配置完成后,在 Host A上可以 ping通 Host B。通过 display vrrp verbose 命令查看配置后的结果。
显示 Switch A 上备份组 1 的详细信息。
二.多个VLAN中的VRRP备份组配置举例
- 组网需求
? ? VLAN 2 内主机的缺省网关为 10.1.1.100/25;VLAN 3 内主机的缺省网关为 10.1.1.200/25;
? ? Switch A 和 Switch B 同时属于虚拟 IP 地址为 10.1.1.100/25 的备份组 1 和虚拟 IP 地址为
10.1.1.200/25 的备份组 2;
? ? 在备份组 1中 Switch A的优先级高于Switch B,在备份组 2中 Switch B的优先级高于 Switch
A,从而保证 VLAN 2 和 VLAN 3 内的主机分别通过 Switch A 和 Switch B 通信,当 Switch A
或 Switch B 出现故障时,主机可以通过另一台设备继续通信,避免通信中断。
配置步骤
(1) 配置 Switch A
<H3C> system-view
[H3C]hostname SwitchA
[SwitchA]inter range g 1/0/21 to g 1/0/24
[SwitchA-if-range]port link-type trunk
[SwitchA-if-range]port trunk per vlan all
[SwitchA-if-range]quit
配置 VLAN 2。
[SwitchA] vlan 2
[SwitchA-vlan2] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 255.255.255.128
创建备份组 1,并配置备份组 1 的虚拟 IP 地址为 10.1.1.100。
[SwitchA-Vlan-interface2] vrrp vrid 1 virtual-ip 10.1.1.100
设置 Switch A 在备份组 1 中的优先级为 110,高于 Switch B 的优先级 100,以保证在备份组 1中 Switch A 成为 Master 负责转发流量。
[SwitchA-Vlan-interface2] vrrp vrid 1 priority 110
[SwitchA-Vlan-interface2] quit
配置 VLAN 3。
[SwitchA] vlan 3
[SwitchA-vlan3] quit
[SwitchA] interface vlan-interface 3
[SwitchA-Vlan-interface3] ip address 10.1.1.130 255.255.255.128
创建备份组 2,并配置备份组 2 的虚拟 IP 地址为 10.1.1.200。
[SwitchA-Vlan-interface3] vrrp vrid 2 virtual-ip 10.1.1.200
[SwitchA-Vlan-interface3]quit
[SwitchA]inter g 1/0/1
[SwitchA-GigabitEthernet1/0/1]port link-m r
[SwitchA-GigabitEthernet1/0/1]ip add 10.1.3.1 24
[SwitchA-GigabitEthernet1/0/1]undo shut
[SwitchA-GigabitEthernet1/0/1]quit
[SwitchA]ip route-static 0.0.0.0 0 10.1.3.2
配置 Switch B
<H3C> system-view
[H3C]hostname SwitchB
[SwitchB]inter range g 1/0/21 to g 1/0/24
[SwitchB-if-range]port link-type trunk
[SwitchB-if-range]port trunk per vlan all
[SwitchB-if-range]quit
配置 VLAN 2。
[SwitchB] vlan 2
[SwitchB-vlan2] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 10.1.1.2 255.255.255.128
创建备份组 1,并配置备份组 1 的虚拟 IP 地址为 10.1.1.100。
[SwitchB-Vlan-interface2] vrrp vrid 1 virtual-ip 10.1.1.100
[SwitchB-Vlan-interface2] quit
配置 VLAN 3。
[SwitchB] vlan 3
[SwitchB-vlan3] quit
[SwitchB] interface vlan-interface 3
[SwitchB-Vlan-interface3] ip address 10.1.1.131 255.255.255.128
创建备份组 2,并配置备份组 2 的虚拟 IP 地址为 10.1.1.200。
[SwitchB-Vlan-interface3] vrrp vrid 2 virtual-ip 10.1.1.200
设置 Switch B 在备份组 2 中的优先级为 110,高于 Switch A 的优先级 100,以保证在备份组 2
中 Switch B 成为 Master 负责转发流量。
[SwitchB-Vlan-interface3] vrrp vrid 2 priority 110
[SwitchA-Vlan-interface3]quit
[SwitchA]inter g 1/0/2
[SwitchA-GigabitEthernet1/0/2]port link-m r
[SwitchA-GigabitEthernet1/0/2]ip add 10.1.4.1 24
[SwitchA-GigabitEthernet1/0/2]undo shut
[SwitchA-GigabitEthernet1/0/2]quit
[SwitchA]ip route-static 0.0.0.0 0 10.1.4.2
(3)配置SwitchC
<H3C> system-view
[H3C]hostname SwitchC
[H3C]vlan 2
[H3C-vlan2]port g 1/0/1 to g 1/0/10
[H3C-vlan2]quit
[H3C]vlan 3
[H3C-vlan3]port g 1/0/11 to g 1/0/20
[H3C-vlan3]quit
[SwitchC]inter range g 1/0/21 to g 1/0/24
[SwitchC-if-range]port link-type trunk
[SwitchC-if-range]port trunk per vlan all
[SwitchC-if-range]quit
4)配置SwitchD
<H3C> system-view
[H3C]hostname SwitchD
[SwitchD]inter g 1/0/1
[SwitchD-GigabitEthernet1/0/1]port link-m r
[SwitchD-GigabitEthernet1/0/1]ip add 10.1.3.2 24
[SwitchD-GigabitEthernet1/0/1]undo shut
[SwitchD-GigabitEthernet1/0/1]quit
[SwitchD]inter g 1/0/2
[SwitchD-GigabitEthernet1/0/2]port link-m r
[SwitchD-GigabitEthernet1/0/2]ip add 10.1.4.2 24
[SwitchD-GigabitEthernet1/0/2]undo shut
[SwitchD-GigabitEthernet1/0/2]quit
[SwitchD]inter g 1/0/11
[SwitchD-GigabitEthernet1/0/11]port link-m r
[SwitchD-GigabitEthernet1/0/11]ip add 10.1.2.1 24
[SwitchD-GigabitEthernet1/0/11]undo shut
[SwitchD-GigabitEthernet1/0/11]quit
[SwitchD]ip route-s 10.1.1.0 24 10.1.3.1
[SwitchD]ip route-s 10.1.1.0 24 10.1.4.1
- 验证配置
可以通过 display vrrp verbose 命令查看配置后的结果。
显示 Switch A 上备份组的详细信息。
[SwitchA] display vrrp verbose
显示 Switch B 上备份组的详细信息。
[SwitchB] display vrrp verbose
显示信息表示在备份组1中Switch A为Master,Switch B为Backup,缺省网关为10.1.1.100/25
的主机通过 Switch A 访问 Internet;备份组 2 中 Switch A 为 Backup,Switch B 为 Master,缺省网
关为 10.1.1.200/25 的主机通过 Switch B 访问 Internet。
原文地址:https://blog.51cto.com/14220480/2414619