Layer2-网关冗余技术HSRP、VRRP、GLBP

session 1 ARP代理技术
1、arp代理
       arp代理功能是L3层网关设备所有的功能,路由器或者L3层交换机。arp代理功能利用arp协议的不可靠性来代替终端进行L3层转发,因为arp-requst广播被L3层隔离,所以需要L3层网关代替终端进行arp-requst,当PC发送arp-requst去往不同目的网段时,网关设备会收到arp广播,并且用自己的MAC地址作为PC请求的目的主机的MAC地址回给发送端PC(利用arp欺骗原理),让PC构建一个目的ip对应网关MAC的帧,这样再次发送单播数据的时候L2头部封装的就是网关的MAC地址,而源、目的ip还是终端PC和目的PC的,网关收到这个帧后修改L2头部的源为网关自己路由出口的MAC,目的为下一条目的接口或者目标PC的MAC,将数据帧发给目的PC(同样利用arp欺骗原理让目的pc的arp表也对应的发送端PC的ip和网关连接目的PC接口的MAC),目的PC在回复arp-reply给发送方PC的时候根据arp表直接发往了网关的接口,网关再次修改L2头部进行代理转发。具体转发过程参看Layer2 ,L3层转发原理。
        arp代理冗余:两个网关设备都开启arp代理,终端不需要填写默认网关。终端PC发送数据通过网关(假冒的)arp回应来转发数据,2个网关谁后发来就使用哪个网关的地址做默认网关,当其中一个设备down后(这里说的情况不是设备本身坏了,而是设备与internet的连接断开了)另一个设备会继续接收转发工作,缺点是当一个L3网关设备down后,由于PC的arp表不会马上清除,所以在PC的arp的age-time 30min结束前,PC都存的是down网关的MAC地址,所以PC发送数据的时候不会发送arp广播,只会将数据发往外网down的网关,但是外网down的网关由不能连接到internet造成无法通信,直到arp经过30min或者手动清除cache后才能够学到冗余网关的MAC地址。
       虽然说L3层网关设备开启了arp代理功能后,连接在网关下面的终端PC就可以不需要设置默认网关地址,而通过arp广播来让网关设备主动帮助转发,但是在真实环境中,win7以上的操作系统(winxp没有测试)在不设置默认网关的情况下发行数据包时,如果该数据的目的ip地址主机检测到不和自己在同一个网段,那么主机将不发送arp请求直接丢弃,但是可以随意设置默认网关地址用来触发arp广播从而使得网关设备能收到PC终端的arp包而代理PC进行数据的转发,哪怕网关写的和PC的地址完全不在一个网络也没有问题,网关会根据目的ip地址和MAC地址代理转发。
现在这种arp代理技术基本被淘汰了,所以建议接口中关闭。
SW(config-fi)#no ip proxy-arp,cisco默认是都开启的
补充:
1、代理arp能够工作的前提是这台设备在连接了用户端的接口上开启了代理arp功能,并且有去往目的ip地址的路由转发才可以,否则代理arp也无法工作。

2、在多点访问的网络中(MA网络),静态路由建议写下一条地址的原因是如果对端设备没有开启代理arp功能的话,写出接口的路由条目通信将会不通。不通的原理是:arp请求包封装的问题,以下图为例说明。


PC1:192.168.1.2/24                   R1的f0/0:12.1.1.1/24
PC2:172.16.1.2/24                     R2的f0/0:12.1.1.2/24
条件:1、R1、R2没有开启arp代理,PC1设置了网关为R1的f0/0接口的ip
      PC1要发送数据去PC2,(假设PC1填写了网关,这时PC1发的arp包L2层头部的目的地址就不是广播了,而是R1的f0/0接口的MAC地址,如果PC1没有填写网关那么它将会发送一个L2层目的mac是广播的arp,这个arp在被R1收到后分两种情况,R1如果开启了arp代理,那么会帮助PC1转发这个arp广播包,并回给PC1自己的mac地址,如果没有开启arp代理,arp广播直接丢包),就会发送一个单播arp给R1,R1收到后首先就是查看有没有路由,发现有!有一条去往PC2网络的静态路由,使用的是出接口。路由有了,那么R1就可以发送数据了,R1将PC1的arp请求包重新组装好,在L2层源地址用的是自己f0/1接口的mac,目的地址用的是FFFF.FFFF.FFFF,L3层使用的源ip是自己f0/1口的ip,目的ip是PC2的ip(因为路由器没有网关,所以当R2发现PC2的地址和自己f0/1不是一个网段的时候也和PC机一样发arp广播,而不是给R2发单播),这个广播被R2收到后直接丢弃(R2没有开arp代理),等于R1直接去请求了PC2的mac地址,不通。
      而如果R1到达PC2的网络静态路由写的下一跳(R2的f0/0接口的话),那么R1会先发arp请求R2f0/0口的mac地址,然后将帮PC1转发的arp包以单播形式发给R2,R2在根据路由转发给PC2,完成一次单项通信,而PC2返回给PC1的数据包是单播arp-offer来完成了PC1和PC2之间的双向通信。
      所以这就是为什么写下一跳地址比写出接口更加好,或者是出接口、下一跳同时写。真是环境中cisco的路由器都是默认开启了arp代理的,所以都能通。
 
2、IP重定向技术解决arp代理down掉后
SW(config-fi)#ip redirects,cisco默认是都开启的
此命令是在上面的arp代理实例中当其中一个L3层网关与internet的连接down后,再收到PC终端的数据帧后会返回给PC终端一个ICMP的重定向,内容是目的地址的MAC地址(重定向到另外一个网关的MAC),使得终端PC立马更新自己的arp表项绑定目的ip与另外一个网关的MAC地址,从而实现切换功能。

3、IRDP冗余(host无默认网关技术)
IRDP是Icmp discovery protocol 利用L2层交换机来替代PC找L3层网关MAC地址的技术,该技术需要条件:
L3层运行RIP路由协议(SW监听rip路由协议)、PC支持IRDP协议(winxp以上的都已经不支持了) ,来达到PC不设网关通信的目的,由于局限性太大,已经被淘汰。

session 2 网关冗余技术

一、HSRP
      hot standby routing protocol 热备份路由协议,cisco私有协议。是利用L3层网关设备虚拟一个ip和MAC的网关地址供PC使用(arp写入),来实现网关冗余及故障后快速切换网关功能。
      HSRP使用UDP协议来代替传输,端口源及目的都是1985,具体格式见图可以看到使用UDP传输的


HSRP协议中L3层设备发出的三种消息:
1、hello报文:主路由器发送优先级和状态信息,默认3s一次。在初次选举的时候主、从路由器都发送用于比较
2、Coup报文:从路由变为主路由时发送
3、Resign报文:主路由发现更高优先级的路由的时候发送,或者主路由关闭、重启的时候发送(断电不算)
运行了HSRP协议的L3层网关所经历的六中状态(类似stp)
1、Init or Disable 初始状态,表示hsrp未运行。修改配置或接口刚启动时的状态
2、learn 学习状态,学习状态,不知道虚拟IP,未看到活跃路由器发hello。等待活跃路由器发hello
3、listen 监听状态,L3层设备已经得到了虚拟IP地址,但是它既不是活动路由器也不是等待路由器(比如冗余网关有3个,那么出去主和从的剩下一台的状态)。它一直监听从活动路由器和等待路由器发来的HELLO报文。
4、speak 发言状态,处于该状态的路由器定期发送hello消息,如果在一定时间内发现了优先级更高的hello包就转化为listen状态
5、standby 备用状态,从路由器定期发送hello消息,检测活跃主路由器的状态
6、Active 活跃状态,定期发送hello消息,并为PC提供网关服务
HSRP的具体配置命令:
SW(config-if)#standby 10 ip 192.168.1.150 虚拟ip配置在hsrp组10中(MAC自动虚拟出来),需要两台L3层设备都输入
show stanbdy查看hsrp的状态信息
HSRP选举活跃网关和备用网关的选举依据是:1、优先级(大),ip地址(大)的被选举为主路由器
SW(config-if)#standby use-bia   让HSRP使用真实接口物理MAC地址做虚拟MAC地址给PC,两台都要输入,用处是早期的硬件设备不支持一个接口上有2个MAC地址,所以只能使用接口真实物理地址。
SW(config-if)#standby 10 priority 150  修改HSRP的优先级,默认的是100
SW(config-if)#standby 10 preempt  配置抢占功能,被配置的设备立马成为active执行数据转发(前提是priority高,因为HSRP的特性是一旦备用设备成了active路由器就不在改变,哪怕主设备故障修理完毕也不能够成为active了,所以需要配置抢占来完成将active抢回来),在项目中建议在active路由器上开启保证active路由器故障被修好后能够切换回active路由状态进行转发数据。
SW(config-if)#standby 10 authentication md5 cisco  配置HSRP组的认证密码
SW(config-if)#standby 10 follw cisco 配置HSRP的组名,标识用没有实际意义
SW(config-if)#standby 10 mac-address 1234.1234.1234  自定义配置虚拟MAC地址
SW(config-if)#standby 10 times 3 10 指定hello包发送间隔3-10秒默认的是
SW(config-if)#standby 10 times msec 200  指定hello包发送间隔为200ms
SW(config-if)#standby 10 track f0/1 50 检测设备的f0/1状态,一旦down则将自己的priority减少50(默认是10)。用于主网       关本身没有down但是连接internet的光纤断了后,将检测自己连接internet的端口,一旦down则将自己的priority降低,让备份网关阶梯自己完成数据传输,配合备用网关设备抢占使用。(还能track很多东西,比如一个列表数,。在全局下设置了这个监控的内容就可以检测跟踪状态,包括路由条目、路由度量值、数据延迟等,全局下的track技术和sla技术非常使用,建议单独学习,并不是hsrp的重点)。


2、VRRP
VRRP(Virtual Router Redundancy Protocol):虚拟路由冗余协议
跟HSRP的区别
1、公有标准网关冗余协议
2、虚拟ip地址可以使用接口真实ip地址,虚拟MAC地址是0000.5e00.01XX,其中XX是VRRP组号
当虚拟ip地址设置为一台网关设备的真实接口ip地址时,这台设备的priority会自动被设置为255,成为主网关。
3、HSRP选举结束后是一个active'一个备用,而VRRP是一个master多个备用(也就是说在一个VRRP组中除了master其他的设备都是backup)。且只有active设备会发送hello包
4、每一台路由网关的默认priority,默认是100,如果配置为0表示不再是VRRP虚拟组的成员
5、协议号112,组播地址224.0.0.18,默认通告间隔3s,hold=3
6、VRRP默认有抢占机制,无需单独配置。
7、HSRP支持直接track跟踪接口,VRRP不支持直接track跟踪接口,只支持track调用一个工程(object)。这个工程是事先在全局模式中定义好的工程,该工程的内容是定义一些流量的参数,比如源、目的、ip、路由度量、延迟、语音、视频数据、协议等参数。(流量工程中知识,在VRRP中不是重点)
8、HSRP的L4层调用UDP协议进行传输,VRRP自己就是公有协议传输不调用其他协议传输
VRRP的报文结构如下:


9、VRRP只有一种消息报文:Announcement,当设备的接口down后,报文中的priority会自动变为0
session 2
VRRP配置命令
SW(config-if)#vrrp 10 authentication
md5 cisco  配置vrrp组的认证密码
SW(config-if)#vrrp 10 description
v10zu 配置vrrp的组名为v10zu,标识用没有实际意义
SW(config-if)#vrrp 10 timers advertise
10  指定hello包发送间隔为10s,默认是1s
SW(config-if)#vrrp 10 track 1 decrement 50
检测跟踪一个track工程1,如果失效则priority自动减少50

session 3 GLBP 
GLBP:Gateway Load Balancing Protocol 网关负载均衡协议,cisco私有协议
      glbp是将多台网关路由设备配置成一个组时向用户提供单一的虚拟ip地址,及最多4个虚拟MAC地址(最多支持4台可以带终端转发数据的网关设备,包括AVG、备用AVG和AVF),让glbp组中所有的网关设备都能为用户提供数据转发,而不在成为备份的空闲设备。组内所有成员之间使用hello包进行交流,默认3s,holdtime=10s,使用组播地址为224.0.0.102,blbp同hsrp一样借用L4层UDP协议传输,端口322。


在GLBP组中,只有一台设备成为AVG(active virtual
       gateway动态虚拟网关),另外可以只有一台设备作为从AVG。其他路由器作为AFV(active virtualforward动态虚拟转发设备),当AVG不可用时备份的AVG会顶替AVG(备用AVG和AVF不冲突,一般情况都是一台设备同时是备用AVG和AVF)。在组中AVG的任务是为组中设备分配虚拟MAC地址(每个组成员一个,最多支持4个),并将这些MAC地址平均的回应给用户PC端,使多用户在发送数据的时候可以发送给多个网关设备,从而形成负载均衡(一般AVG也是AVF角色,同时负责MAC地址的分配和数据的转发)。这些能为用户提供数据转发是设备都叫做AVF。


GLBP支持负载均衡模式:
1、host-dependent 确保主机使用同一个虚拟MAC,已经淘汰
2、round-robin 每次轮流的分配AVF的虚拟MAC地址给终端用户
3、weighted 权重:终端前往AVF的流量大小取决于AVF自己的wighted值大小,越大的越优先


glbp的状态:
GLBP最多支持1024虚拟路由和4个虚拟MAC地址,AVG为active状态
备用AVG为standby状态,其余的AVF都为listen状态,weighted默认为100,最大值为200
AVG的选举和hsrp一样通过比较priority值和接口ip地址(大的)来选择
GLBP中抢占preempt是默认关闭的,同hsrp一样需要手动配置,配置了preempt后当AVG故障处理完毕后能够立即从备用AVG那里将AVG抢占回来。


GLBP的配置
R1(config-if)#glbp 10 ?
  authentication  Authentication method                      配置glbp的认证方式,可选MD5或明文,使用钥匙或钥匙串

  forwarder       Forwarder configuration                       配置路由器会抢占成为AVG,优先级低于priority
  ip              Enable group and set virtual IP address      配置共用的虚拟ip
  load-balancing  Load balancing method                     选择负载均衡的方式
  name            Redundancy name                                 配置glbp组的名称
  preempt   Overthrow lower priority designated routers   允许路由器进行AVG抢占,否则priority再高都不会进行抢占
  priority        Priority level                                             配置抢占优先级,默认为100,大的优先成为active主路由器
  timers          Adjust GLBP timers                                  配置hello时间
  weighting       Gateway weighting and tracking           配置权重


基本配置实例:

R1(config-if)#glbp 10 ip 12.1.1.10                                       配置虚拟ip地址为12.1.1.10
R1(config-if)#glbp 10 authentication md5 key-chain 123    配置md5密文认证,密码123

R1(config-if)#glbp 10 preempt delay minimum 2                开启抢占功能,延迟2s进行抢占

R1(config-if)#glbp 10 priority 200                                       配置路由器优先级为200,优先成为主网关
R1(config-if)#glbp 10 load-balancing weighted                  配置负载均衡模式为比较weighted

R1(config-if)#glbp 10 weighting 200                                   配置设备的权重为200,用户流量优先走R1

拓展配置:
R1(config-if)#glbp 10 weighting track 1 decrement 50        配置权重在track工程1失效时将权重降低50(配置track时才有效)
 
      在实际工程中HSRP、VRRP、GLBP都用的不多,因为无论是hsrp还是vrrp都无法实现负载均衡,只能有一个active设备进行数据转发,另外的备用网关设备永远在闲置(主网关无故障的情况下),造成大量的带宽和费用的浪费。为了解决这个问题衍生了GLBP技术,可以实现在冗余的前提下形成流量的负载均衡,使得资源得到最大化的利用,但是GLBP在很多实际的案例中都无法很好的工作,比如NAT环境,当配置了GLBP的AVGdown后,那么nat的outside地址就会从AVG的外网地址变为备用AVG(或其他的AVF)的外网地址,而之前从AVG中nat出去的流量无法再次通过AVG的外网地址nat回来,造成通信失败。还有许多ISP的技术都会在这几种冗余协议中产生严重的问题,所以在实际的工程中都是使用专业的负载均衡设备来支持网络,尤其是金融、军事等要求延迟和丢包为0的网络,这几种技术只是个在简单的企业网中使用。


你可能感兴趣的:(Layer2-网关冗余技术HSRP、VRRP、GLBP)