1.Introduction 终端主机决定到外部网络的第一跳路由器方法: 运行或监听动态路由协议; 运行IDRP协议; 静态配置默认网关; 2.VRRP仅为IPV4准备的;(VRRPv2基于IPv4,VRRPv3基于IPv6) 3.Definition: VRRP Router 运行了VRRP协议的路由器; Virtual Router 在多路访问LAN中,行使默认网关功能的抽象的对象; Ip 地址拥有者 把虚拟路由器的ip地址作为真实物理接口地址的VRRP路由器; 主ip地址 从一组真实接口地址选出来的一个ip地址;VRRP通告总是使用其作为IP数据包 的源IP;(真正用作虚拟路由器ip的IP;) (从虚拟路由器的一组真实的ip中选 出的一个地址???) 虚拟路由器Master 负责转发发送给虚拟路由器的数据包;回应对虚拟路由器IP的ARP请求;如果一 个IP地址拥有者可用,则它将一直是Master; 虚拟路由器Backup 在目前的Master失效后,能够承担转发发送给虚拟路由器数据包的责任 的VRRP路由器; 虚拟路由器的IP地址可以是备份组所在网段中未被分配的IP地址,也可以和备份组内的某个路由器的接 口IP地址相同。 接口IP地址与虚拟IP地址相同的路由器被称为“地址拥有者”。 在同一个VRRP备份组中,只允许配置一个地址拥有者。 4.所有的VRRP协议消息都使用IP广播数据包; 每个虚拟路由器都有一个分配给它的周知的MAC地址; 虚拟路由器的MAC地址被Master用作发送周期性VRRP消息的源MAC地址; 虚拟路由器是通过虚拟路由器标识符(VRID)和一组IP地址定义的; 同一台路由器上的相同VRID可以配置在不同的局域网接口中; 为了减少网络流量,只有Master为虚拟路由器发送周期性的通告消息; Backup路由器不会抢占成为Master,除非它拥有更高的priority; 默认开启了preempt; 5.VRRP定义了三种验证方法;1)、不验证;2)、Clear text;3)、AH; 6.Protocal: VRRP数据包的目的是为了让所有VRRP路由器知道有特定VRID Master路由器的优先级 和状态; VRRP数据包封装在IP数据包中,发送给分配给VRRP 的IPV4组播地址; 7.1VRRP 数据包格式: |Version| Type | Virtual Rtr ID| Priority | Count IP Addrs| | Auth Type | Adver Int | Checksum | | IP Address (1) | | IP Address (n) | | Authentication Data (1) | | Authentication Data (2) | IP域部分: 源地址:某个发送数据包的接口的Primary_address; 目的地址:IANA分配给VRRP协议的组播地址是 224.0.0.18; TTL: Must 被设置为255;若VRRP路由器接收到TTL不等于255的数据包,Must丢弃; IP协议号:IANA分配给VRRP的协议号是112; 注:HSRP允许在UDP层上,端口号 1985,发送给224.0.0.2 ,TTL=1; VRRP域部分: Version: 本文档定义为version 2; Type:本版本的VRRP协议仅定义了一种VRRP数据包类型;未知类型的包Must 被丢弃; 1 Advertisemnet; VRID:标识被通告状态的虚拟路由器;1-255 Priority:为某个虚拟路由器的VRRP路由器的优先级;0-255;值越大,优先级越高; 优先级0系统保留给特殊用途使用,255则是系统保留给IP地址拥有者的。 若为ip地址拥有者,改变优先级对其无效; 默认值为 100; 地址拥有者的优先级Must 是 255; 其它的处于备份虚拟路由器的VRRP路由器的优先级在 1-254之间; 优先级为0的预示着目前的Master已经停止参加VRRP了;用于触发备份路由器立即转化为Master,而无需等待目前的Master过期; Count IP Addrs:VRRP通告中包含的IP地址的数量; 认证类型:0-255 未知的认证类型或与本地匹配的认证类型的包都Must被丢弃; RFC2338的认证类型 0 无验证 1 clear text 2 IP Authentication Header RFC3768中的认证类型: 0 - No Authentication 1 – Reserved 向后兼容RFC2338的; 2 – Reserve 向后兼容RFC2338的; 通告间隔:连续两个通告之间的时间间隔;默认1s; Checksum:校验和,校验VRRP消息的完整性; IP_Address:与虚拟路由器关联的IP地址; 8.VRRP协议的状态机制: 每个接口参数:认证类型;认证数据; 每个虚拟路由器参数:VRID 1-255 Priority 缺省100,0保留,255保留;1-254; Ip_address Advertisement_interval 默认1s; Skew_Time (256-priority)/256;skew master-down-interval in second; Master-Down-Interval (3*Advertisement_interval)+skew_time Preempt-Mode true允许抢占;false不允;缺省为true; 计时器:Master-Down-timer Adver-timer 9.状态机制: Initialize 这个状态是等待一个startup_event;如果收到了一个启动事件,则: 1).如果Priority=255(路由器是ip地址拥有者) 发送一个通告advertisement; 广播一个reply/gratuitous ARP请求,请求虚拟路由器关联的每个IP地址的MAC; 把计时器Adver_Timer设置成Advertisement_Interval的值; 转换成Master状态; 2).否则: 把计时器Master_Down_Timer设置成Master_Down_Interval的值; 转换成Backup状态 Backup状态: 这个状态是为了监控Master_Router的可用性和状态; 不可对请求虚拟路由器关联的IP地址的ARP请求做出回应; 必须丢弃链路层目的地址为虚拟路由器MAC的数据包; 必须不能接受目的地址为虚拟路由器关联的IP地址的数据包; 1).如果接收到shutdown事件: 删除Master_Down_Timer计时器; 转换成Initialize状态; 2).如果Master_Down_Timer期满: 发送一个Advertisement通告; 广播一个gratuitous ARP请求,请求虚拟路由器关联的每个IP地址的MAC; 把Adver_Timer计时器设置成Advertisement_Interval的值; 转换为Master状态; 3).如果接收到Advertisement包: 若报文中的Priority=0,那么把Master_Down_Timer设置成Skew_Timer值; 若抢占模式是False或者报文中的优先级大于或等于本地的,重置Master_Down_Timer为Maseter_Down_interval的值; 否则,丢弃该advertisement报文;Master-Down-Timer就会过期; Master:这个状态实行转发功能; 必须对请求与虚拟路由器相关联IP的ARP包进行回应; 必须转发链路层地址等于虚拟路由器MAC的数据包; 如果它不是ip地址拥有者,它一定不可以”接受”目的IP为虚拟路由器的IP的数据包; 如果它是IP地址拥有者,它必须”接受”目的IP为虚拟路由器的IP的数据包; 思考:是否ping的问题,即若不是ip拥有者,不能不能对ping 做出回应?? 1).如果接收到shutdown事件: 删除Adver_Timer计时器; 发送一个priority=0的Advertisement报文; 转换成Initialize状态; 2).如果Adver_Timer计时器期满: 发送一个Advertisement包; 重置Adver_Tiemr为Advertisement_Interval的值; 3).如果接收到一个Advertisement报文: 如果报文中的priority=0,则 发送一个advertisement报文; 重置Adver_Timer计时器为advertisement_Interval的值; 否则:若优先级比本地的高或者是优先级等于本地的并且主IP地址比本地的大,则, 删除Adver_Timer; 把Master_Down_timer设置成Master_Interval的值; 转换成Backup状态; 否则,丢弃数据包; (注:优先级相等,就看接口IP地址的大小,类似HSRP中Active的选举;) 思考:Master什么时候会收到advertisement报文呢?? 10.VRRP的选举机制:VRRP优先级;接口IP地址大小; 11.发送和接受VRRP数据包: 接收到VRRP数据包,必须: 检测IP_TTL=255; 检测VRRP_version :2 检测接收到的报文长度大于或等于VRRP_Header; 检测接收接口的VRID被配置以及本地路由器不是ip地址拥有者; 检测checksum; 检测认证类型和认证数据; 以上有任何一个不符合,接收者都必须丢弃数据包; 检测接收接口上的VRID;若失败,则丢弃数据包; 可能会检测VRID关联的ip地址是否合法;(count、list); 若失败,接收者应该记录配置错误信息; 若不是由IP地址拥有者生成的包,必须丢弃; 必须检测Adver_Interval与本地的相同;若失败,必须丢弃包; 发送VRRP数据包: 填写虚拟路由器的正确的配置状态; 计算checksum; 把源MAC地址设置成虚拟路由器的MAC; 把源IP地址设置成虚拟路由器的接口主IP地址; 把IP协议设置为VRRP; 把VRRP数据包发送给IP组播组 224.0.0.18; 注意:VRRP数据包的发送使用的是虚拟路由器的MAC地址; VRRP数据包的发送使用的是实际物理接口的IP; VRRP数据包的发送的目的MAC是组播MAC:01-00-5e-00-00-12; VRRP数据包的发送的目的IP是组播224.0.0.18; 12.虚拟路由器的MAC地址: 格式: 00-00-5E-00-01-{VRID} 前3个八元组,是IANA的OUI;Cisco的OUI是:0000.0c 接下来的两个八元祖,是分配给VRRP协议的地址块; 最后一个八元组,是VRRP虚拟路由器的标识符; 13. 操作性事件:ICMP 重定向:类似HSRP中的; 主机ARP请求: Master 虚拟路由器必须用虚拟路由器的MAC对其做出回应; Master不可以用其真实的物理MAC地址来回应; 当一个VRRP路由器重启或重新加载,它不应该用其物理MAC地址为其拥有的IP地址发送任何的ARP消息;仅应当用其虚拟路由器的MAC地址来发送ARP消息;包括: 当配置一个接口时,VRRP路由器应当为那个接口上的每个IP地址广播一个ARP请求; 系统启动,初始化接口的VRRP操作时,只有IP地址和虚拟路由器的MAC配置后才发送ARP请求; 代理ARP 当使用proxy-ARP时,VRRP路由器必须用虚拟路由器的MAC地址来通告; 否则,可能会导致终端机学到VRRP路由器的真实MAC地址; 潜在的转发环路: A VRRP router SHOULD not forward packets addressed to the IP Address(es) it becomes Master for if it is not the owner. 14.安全考虑: TTL设置成255,在接收到消息时,检测;以此避免从外部网络注入VRRP数据包; 15.配置: 配置备份组的虚拟IP地址可以被Ping通; 本配置需要在备份组创建之前就进行设定。如果路由器上已经创建了备份组,将不允许再进行本配置。 进入系统视图: system-view Vrrp ping-enable 缺省,可以被ping通; MAC地址和虚拟IP地址的对应关系有两种: 本配置需要在备份组创建之前就进行设定。如果路由器上已经创建了备份组,则不允许修改MAC地址和虚拟IP地址的对应关系。 System-view; Vrrp method {real-mac|virtual-mac} 缺省,采用虚拟路由器的MAC和虚拟路由器 的ip地址对应; 创建备份组并配置虚拟IP地址: # int # vrrp {vrid} ip {virtual_ip_add} ; 创建备份组,并配置虚拟IP地址: vrrp vrid {}virtual-ip {} 缺省,没有创建备份组; 单接口可以配置最大VRRP组数为16,单个备份组可配置最大IP地址数为16个。 备份组中所有虚拟IP地址都被删除后,该备份组也将同时被删除掉,并且该备份组的所有配置都不再有效。 备份组的虚拟IP地址不能为全零地址(0.0.0.0)、广播地址(255.255.255.255)、环回地址、非A/B/C类地址和其它非法IP地址(如0.0.0.1)。 只有配置的虚拟IP地址和接口IP地址在同一网段,且为合法的主机地址时,备份组才能够正常工作;否则,如果配置的虚拟IP地址和接口IP地址不在同一网段,或为接口IP地址所在网段的网络地址或网络广播地址,则可以配置成功,但是备份组的状态始终会处于Initialize状态。 配置备份组优先级、抢占方式及监视指定接口: 在配置备份组优先级、抢占方式及监视指定接口之前,需要先在接口上创建备份组并配置虚拟IP地址。 # interface # vrrp {vrid} priority 缺省为100; # vrrp {vrid} preempt [ delay {delay-value}] 缺省工作在抢占,抢占延迟为0秒; 如果设置备份组中的路由器工作在非抢占工作,则抢占延迟时间会自动变为0秒 # vrrp {vrid} track interface {int} [reduced priority-reduced] 缺省没有启用接口监视; 对于IP地址拥有者,在VRRP报文中的优先级始终为255,无需用户配置。 不允许对IP地址拥有者进行监视指定接口的配置。 被监视的接口可以是三层以太网接口、VLAN接口、同异步串口和MP-group端口。 被监视接口的状态由down变为up后,对应设备的优先级数会自动恢复。 配置VRRP报文的相关属性: 在配置VRRP报文的相关属性之前,需要先在接口上创建备份组并配置虚拟IP地址; # interface # vrrp {vrid} authentication {md5|text} {key} 缺省,不验证; # vrrp {vrid} timers advetise {adver_interval} 缺省为1s;0-254 # vrrp {vrid} timers learn 在设置了定时器学习功能后,它会从主路由器的VRRP广告中学习VRRP广告发送间隔,并由此计算Master路由器失效间隔,而不是使用自己本地设置的VRRP广告发送间隔来计算,本命令可以实现与Master路由器的VRRP广告发送定时器同步。
|