高可用技术之keepalived原理简单了解
2018-01-28 16:28
204 查看
Keepalived
工作原理
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
TCP/IP四层模型
具体实现及ARP协议简单了解
在实际应用中,当我们想给目标主机发送消息时,需要首先通过DNS获取到目的主机的IP地址;但在实际网络的链路上传送数据帧时,最终还是必须使用该主机的硬件地址。但是怎么知道对方MAC地址呢?这就是ARP需要做的事,通过IP地址解析到对方的MAC地址。同时在每个主机上都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址对应硬件地址的列表,都是通过发送ARP报文解析到的 也就是说是通过更改ip对应的MAC地址 实现动态切换
在虚拟机上简单演示
**Ubuntu 16.04.3 LTS**
1.安装Keepalived
apt-cache pkgnames | grep keepalived apt-get install keepalived
2.安装ntp服务 保证时间一致性
3.分别 查看网卡 并 绑定虚拟IP
ip a ## 编辑interfaces文件 auto ens33:0 iface ens33:0 inet static address 192.168.232.100 netmask 255.255.255.0
4.查看虚拟ip 对应的MAC地址
ifconfig ##server1 ens33:0 Link encap:Ethernet HWaddr 00:0c:29:f2:58:16 inet addr:192.168.232.100 ##server2 ens33:0 Link encap:Ethernet HWaddr 00:0c:29:8e:11:5e inet addr:192.168.232.100
5.编辑keepalived
keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。
##Master配置 vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 103 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.232.100 } } ##Slave配置 vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 10 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.232.100 } }
state 可以是MASTER或BACKUP,不过当其他节点keepalived启动时会将priority比较大的节点选举为MASTER,因此该项其实没有实质用途 interface 节点固有IP(非VIP)的网卡,用来发VRRP包 virtual_router_id 取值在0-255之间,用来区分多个instance的VRRP组播 priority 用来选举master的,要成为master,那么这个选项的值最好高于其他机器50个点,该项取值范围是1-255(在此范围之外会被识别成默认值100) advert_int 发VRRP包的时间间隔,即多久进行一次master选举(可以认为是健康查检时间间隔) authentication 认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识别前8位) virtual_ipaddress 虚拟ip
6.启动Keepalived服务 并查看系统日志
tail -f syslog
Master状态
ubuntu Keepalived_vrrp[3892]: VRRP_Instance(VI_1) Transition to MASTER STATE ubuntu Keepalived_vrrp[3892]: VRRP_Instance(VI_1) Received lower prio advert, forcing new election ubuntu Keepalived_vrrp[3892]: VRRP_Instance(VI_1) Entering MASTER STATE
Slave状态
Keepalived_vrrp[4139]: VRRP_Instance(VI_1) Entering BACKUP STATE
7.在Slave上传使用tcpdump查看arp广播
tcpdump vrrp
IP 192.168.232.103 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 103, authtype simple, intvl 1s, length 20
8.在另外一台Server上 ping 虚拟ip
ping 192.168.232.100 root@ubuntu:/home/guolin# arp Address HWtype HWaddress Flags Mask Iface 192.168.232.100 ether 00:0c:29:8e:11:5e C ens38
可以看到MAC地址是 00:0c:29:8e:11:5e
9.停止掉Master服务
通过查看日志可以看到 Slave转成Master状态了 ubuntu Keepalived_vrrp[4139]: VRRP_Instance(VI_1) Transition to MASTER STATE Jan 28 17:44:36 ubuntu Keepalived_vrrp[4139]: VRRP_Instance(VI_1) Entering MASTER STATE
10.再次在另外一台Server 上ping 虚拟ip
ping 192.168.232.100 PING 192.168.232.100 (192.168.232.100) 56(84) bytes of data. arp Address HWtype HWaddress Flags Mask Iface 192.168.232.100 ether 00:0c:29:f2:58:16 C ens38
可以看到MAC地址已经变成了 00:0c:29:f2:58:16
相关文章推荐
- 基于配置的自定义的简单struts(了解struts原理)
- Web端服务器推送技术原理分析及dwr框架简单的使用
- (2)LVS+Keepalived+nginx高可用负载均衡架构原理及配置
- Spring核心技术原理-(2)-通过Web开发演进过程了解一下为什么要有Spring AOP?
- 9月份以前还是深入了解各个技术原理吧
- Javascript 拖拽的一些简单的应用——逐行分析代码,让你轻松了解拖拽的原理
- Keepalived实现redis的主从切换高可用原理详解
- 增强现实技术AR的简单体验与了解
- nginx+keepalived简单实现双击热备-高可用HA
- Lytro光场相机的原理,科普,简单地进行了解
- Spring核心技术原理-(2)-通过Web开发演进过程了解一下为什么要有Spring AOP?
- 服务器推送技术原理分析及dwr框架简单的使用
- 使用HAproxy,keepalived实现简单LAMP架构的负载均衡与高可用
- Web端server推送技术原理分析及dwr框架简单的使用
- Ajax技术验证用户名是否可用,简单实现
- Web端服务器推送技术原理分析及dwr框架简单的使用
- 如何简单快速的了解"区块链"技术(结尾有惊喜)
- 高可用集群技术之keepalived实现lvs高可用并负载均衡web服务
- LVS原理详解及部署之五:LVS+keepalived实现负载均衡&高可用
- keepalived架设简单高可用的nginx的web服务器 ----那些你不知道的秘密 推荐