一、VRRP概述
1.VRRP协议 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
2.vrrp术语 参考:H3C VRRP技术白皮书 |
| 虚拟路由器 | 由一个Master路由器和多个Backup路由器组成。主机将虚拟路由器当作默认网关。 | VRID | 虚拟路由器的标识。有相同VRID的一组路由器构成一个虚拟路由器 | Master路由器 | 虚拟路由器中承担报文转发任务的路由器,主节点(仅能有一个) | Backup路由器 | Master路由器出现故障时,能够代替Master路由器工作的路由器,备用节点(可以有多个) | 虚拟IP地址(VIP) | 虚拟路由器的IP地址。已改为虚拟路由器可以拥有一个或多个IP地址 | IP地址拥有者 | 接口IP地址与虚拟IP地址相同的路由器被称为IP地址拥有者 | 虚拟MAC地址(VMAC) | 一个虚拟路由器拥有一个虚拟MAC地址。虚拟路由器回应APR请求使用的是细腻MAC地址,只有虚拟路由器做特护配置的时候,才会回应接口的真实MAC地址 | 优先级 | VRRP根据优先级来确定虚拟路由器中每台路由器的地位 | 非抢占方式 | 若Backup路由器工作在非抢占方式下,只要Master路由器每出现故障,Backup即使随后被配置更高的优先级也不会成为Master路由器 | 抢占方式 | 若Backup路由器工作在抢占方式下,当收到VRRP报文后,会将自己的优先级与通告报文中的优先级进行比较。若当前的Master路由器的优先级高,就会主动抢占成为Master路由器;否则保持Backup状态 |
3.工作过程 (1) 虚拟路由器中的路由器根据优先级选举出Master。Master路由器通过发送ARP报文,将自己的虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。 (2) Master路由器周期性发送VRRP报文,以公布其配置信息(优先级等)和工作状况 (3) 若Master路由器出现故障,虚拟路由器中的Backup路由器将根据优先级重新选举新的Master (4) 虚拟路由器状态切换时,Master路由器由一台设备切换为另一台设备,新的Master路由器知识简单地发送一个携带虚拟路由器的MAC地址和虚拟IP地址信息的ARP此昂管信息。网络中的主机感知不到Master路由器已经切换为另外一台设备 (5) Backup路由器的优先级高于Master路由器时,由Backup路由器的工作方式(抢占和非抢占)决定是否重新选举Master
4.VRRP功能 (1)Master路由器选举 (2)Master路由器状态通告 (3)VRRP认证功能
5.VRRP高可用工作模型 (1)主备备份 业务仅由Master路由器承担。当Master路由器出现故障时,才会由选举出来的Backup路由器接替它工作 (2)主主备份 在路由器的一个接口上可创建多个虚拟路与其,使得该路由器可以在一个虚拟路由器中作为Master路与其,同时在其他的虚拟路由器中做为Backup路由器。主主备份方式能实现负载分担的功能
二、keepalived高可用调度器 1.keepalived功能 keepalived程序是vrrp协议在Linux主机上以守护进程方式的实现。能够根据配置文件生成ipvs规则,并对各Real Server的健康做检测,以及LoadBalance主机和BackUP主机之间failover的实现 keepalived在CentOS 6.4+收录到发行版光盘内,佛在需要编译安装或者第三方RPM包
2.程序组件 核心程序、IO复用器、内存管理、配置文件分析器 核心组件具体如下: |
| Watch dog | 高可用监视器 | checkers | 健康状态检测器(TCP、HTTP、SSL、MISC… ...) | smtp | 支持发送邮件通告机制 | System call | 支持系统调用机制,作出管理操作 | vrrp stack | VRRP栈的实现,实现VRRP协议调用 | Netlink Reflectior | VRRP借助于Netlink监控网络,实现网络功能配置 | ipvs wrapper | ipvs控制 |
3.keepalived高可用集群配置前提 (1)各节点时间要同步;必须不能超过一秒,一般使用网络偶时间服务器(ntp server) (2)确保iptables及selinux不会成为障碍; (3)各节点之间可通过主机名互相通信;节点的名称设定与hosts文件中解析的主机名都要保持一致; #uname -n 获得的主机,与解析的主机名要相同; (4)各节点之间基于密钥认证的方式通过ssh互信通信; 说明:第三条和第四条非必须
三、keepalived程序环境配置 1.主配置文件:/etc/keepalived/keepalived.conf (1)GLOBALCONFIGURATION:全局配置 global_defs # Block id { ... } 常用配置: notification_email { … } | 收件人邮箱地址 | notification_email_from | 发件人邮箱地址 | smtp_server | 邮件发送服务器IP; | smtp_connect_timeout | 邮件服务器建立连接的超时时长;默认30秒 | router_id LVS_DEVEL | 物理节点的标识符;建立使用主机名; | vrrp_mcast_group4 | IPV4多播地址,默认224.0.0.18; |
(2)VRRPDCONFIGURATION:配置vrrp实例 vrrp instance:虚拟路由器 vrrp_instance NAME { ... } vrrp synchronization group vrrp_sync_group NAME { ... } 1)常用配置: state MASTER|BACKUP | 在当前VRRP实例中此节点的初始状态; | interface IFACE_NAME | vrrp用于绑定vip的接口; | virtual_router_id # | 当前VRRP实例的VRID,可用范围为0-255,默认为51; | priority # | 当前节点的优先级,可用范围0-255; | advert_int 1 | 通告时间间隔;默认1秒 |
2)认证方式配置: authentication{ # Authentication block #PASS||AH #PASS - Simple Passwd (suggested) #AH - IPSEC (not recommended)) auth_typePASS #Password for accessing vrrpd. #should be the same for all machines. #Only the first eight (8) characters are used. auth_pass1234 } 3)虚拟IP配置: virtual_ipaddress{ <IPADDR>/<MASK>brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL> } (3)LVSCONFIGURATION:ipvs的相关配置集群服务,服务内的RS;
2.双主备份VRRP配置实例 第一步:node1节点配置 vrrp_instanceVI_1 { stateMASTER interfaceeno16777736 virtual_router_id101 priority100 advert_int1 authentication{ auth_typePASS auth_passZPNnTQ6F } virtual_ipaddress{ 172.16.100.9/16 } } vrrp_instanceVI_2 { stateBACKUP interfaceeno16777736 virtual_router_id102 priority99 advert_int1 authentication{ auth_typePASS auth_passIWyijM5Q } virtual_ipaddress{ 172.16.100.10/16 } } 第二步:node2节点配置 vrrp_instanceVI_1 { stateBACKUP interfaceeno16777736 virtual_router_id101 priority99 advert_int1 authentication{ auth_typePASS auth_passZPNnTQ6F } virtual_ipaddress{ 172.16.100.9/16 } } vrrp_instanceVI_2 { stateMASTER interfaceeno16777736 virtual_router_id102 priority100 advert_int1 authentication{ auth_typePASS auth_passIWyijM5Q } virtual_ipaddress{ 172.16.100.10/16 } }
|