VRRP的工作原理以及设置
一、熟悉VRRP的工作原理。
1.VRRP概述
当发生单点故障时:单点故障是指系统中一点失效,就会让整个系统无法运作的部件,换句话说,单点故障即会整体故障。
解决单点故障最简单的方法就是加个备份,让多个路由器工作。
Virtual Router Redundancy Protocol ,也即虚拟路由器冗余协议。
利用VRRP ,一组路由器(同一个L AN中的接口)协同工作,但只有一个处于Master状态,处于该状态的路由器(的接口)承担实际的数据流量转发任务。在一个VRRP组内的多个路由器接口共用一个虚拟IP地址,该地址被作为局域网内所有主机的缺省网关地址。(缺省可以理解为备份的意思)
VRRP决定哪个路由器是Master,Master路由器负责接收发送至用户网关的数据包并进行转发,以及响应PC对于其网关IP地址的 ARP请求。
Backup路由器侦听Master路由器的状态,并在Master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。
主机设置默认网关只能设置一台网关!如果假如两台及两台以上路由器,我们要添加网关的话,我们就会通过VRRP协议设置一个虚拟IP地址来代替多个默认网关地址,这个虚拟地址是可以切换到不同路由器的。(一般会在Master路由器上,如果Master路由器不能用了,就会转到Backup路由器上)如下图:
此时,主机PC1想转发数据就通过主路由器转发(Master),而当主路由器出现故障时,VRRP就会做平滑切换,将虚拟地址附着到备用路由器上(Backup),如下图
2.VRRP术语
●VRRP路由器:
运行VRRP的路由器。一台VRRP路由器(的接口)可以同时参与到多个VRRP组中,在不同的组中,一台VRRP路由器可以充当不同的角色(如下图)。
●VRRP组:
●一个VRRP组由多个VRRP路由器组成,使用相同的VRID (虚拟路由器ID)进行标识,属于同一VRRP组VRRP路由器互相交换信息,每一个VRRP组中只能有一个Master.
●虚拟路由器:
●对于每一个VRRP组,抽象出来的一一个逻辑路由器,该路由器充当网络用户的网关,该路由器并非真实存在,事实上对于用户而言,只需知道虚拟路由器的IP,至于具体的虚拟路由器的角色由谁来承担、数据转发任务由谁来承担、Master故障后谁来接替,这是VRRP的工作。
●虚拟IP地址、MAC地址:
●虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。
●虚拟MAC地址是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为: 00-00-5E-00-01-{VRID}
●Master, Backup路由器:
●Master路由器:在VRRP组中实际转发数据包的路由器,在每一个VRRP组中,仅有Master响应对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间隔发送VRRP消息,以便通知Backup路由器自己的存活情况。
●Backup路由器:处于监听状态的路由器,一旦Master路由器出现故障,Backup路由器就开始接替工作。
●选举依据:先比较接口VRRP优先级(比大)如果相等,则比较接口IP地址(比大)
3.VRRP状态机
VRRP协议的状态共有三种,分别是lnitialize,Master ,Backup ,初始状态都是Initialize,通过比较优先级产生Master和Backup ,在规定时间内, Backup若没有收到Master发来的心跳报文,将切换为Master。
Master和Backup路由器作用
VRRP的作用:提供了局域网,上的设备备份机制。VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时由另一台路由器来代替,从而保证通讯的连续性和可靠性。VRRP工作时会在网络中加入一个含有虛拟IP和虛拟MAC地址的虚拟路由器,该路由器充当网络用户的网关,使得网络.上的主机与虛拟路由器通信无需了解这个网络上物理路由器的任何信息。
4.VRRP报文
Maste报文的发送:当Master正常工作时,它会每隔一段时间(缺省为1秒)向组内Backup设备发送vrrp通告报文,通告自己工作正常。(注:只有Master发送VRP报文)
VRRP通告报文被封装在IP报文里,通过组播地址224.0.0.18发送,TTL为255,协议号为112
VRRP报文:VRRP报文是一种组播报文,由Master路由器发出来通告它的存在,使用VRRP报文可以检测虚拟路由器的各种参数,用于主路由器的选择。VRRP报文是封装在IP报文中,通过组播的方式传送。也就是说VRRP协议跟ICMP协议一一样,工作在第三层(网络层),它是不具有端口的说法的。
Version: VRRP协议版本号,RFC3768定义了版本号2
Type:指明VRRP报文类型,RFC3768只定义了一种VRRP报文,即VRRP通告报文,所以该字段总为1(若收到的VPPR通告报文的该字段的类型为非1则会被丢弃)
virtual Rtr ID:即上面讲的大VRID。 一个VRID唯一标识了一个虚拟路由器,取值范围为[1,255]。(所以一台路由器的接口最多可以运行255个VRRP组)
Priority优先级:虚拟路由器中用该字段来决定Master路由器和Backup路由器,值越大表明优先级越高,取值为[1,255],缺省值为100(默认值)。
假设虛拟路由器的IP地址跟VRRP组中某台路由器IP地址相同,那么该路由器的发出的VRRP报文的该字段总为255,即使人为指定为其他值也不受影响。若此字段为0表示这是Master路由器出现故障发送的VRRP通告报文,当Backup路由器收到此通告报文后,会等待(Skew time (256-Backup路由器的优先级) /256)秒时间,然后将自己切换为Master路由器。
Count IP Address:VRRP通告报文中包含的IP数目,即被一个VRRP虛拟路由器所分配的IP地址的数量。
Auth Type:
认证类型字段,–个虚拟路由器只能使用-.种认证类型,若Backup路由器收到的通告报文段中认证类型字段是未知或者和本地配置不匹配,则将该数据包丢弃。
认证类型字段的定义:
0表示无认证
1表示保留,向前一个版本的RFC2338提供兼容性
2表示保留,向前–个版本的RFC2338提供兼容性
Adver Int: Mater路由器向外发送VRRP通告报文的时间间隔,以秒为单位,取值范围是[1,255],缺省为1
Checksum:整个VRRP报文的校验和
IP Address:VRRP虚拟路由器的虚拟IP地址(可配置多个)
Authentication Data:验证字。为了向RFC2338兼容,在实际的封装时,全置为0,接收方会忽略此字段。
总结:
VRRP:虚拟路由器冗余协议
作用:VRRP是一种路由器备份机制,保证网络主机的下一跳路由器故障时,可及时由另一台路由器代替,从而保证网络的连续性和可靠性。
VRID:每一个VRRP组都有一个vrid,作为唯一标识
虚拟路由、虚拟IP、虚拟MAC:
虚拟路由:VRRP虚拟出逻辑路由器,上面有虚拟IP,虚拟MAC
虚拟IP:VRRP组中由MASTER设备承接的虚拟IP地址,并且时所有局域网主机的默认网关
虚拟MAC:00-00-5E-00-01-{vrid}
MASTER:实际负责用于接收用户发送的数据和数据包的转发,响应局域网主机的ARP请求,周期性的给BACKUP发送VRRP报文通告自己的生存情况!
BACKUP:监听Master 发送VRRP报文,当在一定时间内没收到VRRP报文就会代替Master角色。
VRRP报文:封装在IP报文里,通知组播地址224.0.0.18发送,TTL为255,协议号为112
二、掌握VRRP的基本配置。
[R1]int vlanif 10 ##网关接口
[R1-vlanif10] ip add 192.168.10.10 24 ##给虚拟接口设置一个IP地址
[R1-vlanif10] vrrp vrid 1 virtual-ip 192.168.10.1 ##创建VRRP虚拟路由器的标识vrid为1,并配置vrid1的虛拟IP地址
[R1-vlanif10] vrrp vrid 1 priority 120 ##设置设备A的优先级为120 (缺省值为100),数值越大越优先,
[R1-vlanif10] vrrp vrid 1 preempt-mode timer delay 6 ##配置Master设备的抢占时延为6秒(缺省值为0,立即抢占),以防频繁地进行状态切换
[R1-vlanif10] vrrp vrid 1 track interface GigabitEthernet0/0/1 reduce 30 ##跟踪上行接F1G0/0/1的状态,如端口故障则Master优先级降低30(缺省值为10)
[R1-vlanif10] vrrp vrid 1 track interface g0/0/2 ##跟踪下行接口
实验1.如下图:三台计算机,三台路由器,一台交换机
首先我们要设置主机信息如下图的PC1的IP地址,子网掩码,网关就是我们设置的虚拟vrip
其次对路由器端口设置IP地址、查询是否打开端口(R1R2操作一致):
设置R3的静态路由
R1设置VRRP(虚拟IP、优先级、延迟时间、下一个跟踪接口),设置成Master路由器
R2设置VRRP,设置成Backup路由器
设置完后我们测试一下,PC1pingPC3,PC3pingPC1和PC2都成功了!
实验2.如下图:两台计算机,一台路由器,一台两层交换机,两台三层交换机以及一个回环闭路(loopback)
首先我们先设置PC1和PC2(PC1网关地址设置的是vrid10 的虚拟地址,PC2网关地址设置的是vrid20 的虚拟地址)
接下来在SW1(二层交换机)中添加vlan以及设置SW1交换机的端口模式(access是交换机连接计算机/路由器端口;trunk是交换机连接交换机端口)、SW2和SW3操作类似
设置三层交换机SW2的vlanif虚拟IP
设置三层交换机SW2vrrp设置(设置虚拟vrrp的IP地址,延迟时间,优先级等等)
SW2和SW3的操作类似,接下来就是路由器的操作,要设置接口的IP地址,还有静态路由(有一个要是设置优先级,以防静态平衡收到破坏)
测试一下,成功!