debian怎么配置静态ip地址
407
2022-11-02
keepalived.conf配置详解
一、前言
1.1 关于VRRP协议工作原理
VRRP全称:Virtual Router Redundancy Protocol,即虚拟路由冗余协议, 实现效果:VRRP协议将两台或多台设备虚拟成一个设备,对外提供虚拟IP(一个或多个)。 内部原理: MASTER主机:MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等MASTER的优先权会比BACKUP大,体现在配置中的priority的值 BACKUP主机:当MASTER机器服务不可用或者宕机时,BACKUP会接管原来MASTER的网络功能MASTER可设置1个,BACKUP可以设置多个VRRP协议配置在配置中,需要为每个设备配置虚拟路由ID(VRID)和优先权值(priority),使用VRID(virtual_router_id)将路由器进行分组具有相同VRID值的路由器为同一个组,VRID是一个0-255的整整数。同一个组中的路由器通过使用优先权值来选举MASTER,优先权大者为MASTER,优先权也是一个0-255的正整数。 1.2 关于keepalived工作原理 简单总结:keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能),这样可以简单实现一个双机热备高可用功能; 工作原理:将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vipmaster会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了 二、keepalived.conf剖析 主要分为3个区域配置模块:global_defs区域、vrrp_instance区域 和 vrrp_server区域
2.1 global_defs 配置模块
global_defs区域是keepalived的全局配置模块,主要包括以下参数:
notification_email # 可选配置项,该参数指定故障发生时发送邮件的对象。 notification_email_from # 可选配置项, 该参数指定故障发生时邮件由哪个地址发出。 smtp_server # 可选配置项, 该参数指定邮件的smtp服务器地址。 smtp_connect_timeout # 可选配置项, 该参数指定连接smtp服务器的超时时间。 enable_traps # 可选配置项, 该参数指定是否开启snmp陷阱。 router_id # 必需配置项,该参数时vrrp协议中用于标识本节点的ip地址形式的字符串。
2.2 vrrp_instance 配置模块
vrrp_instance VI_1 { state BACKUP # 设置角色,MASTER 或者 BACKUP interface ens36 # 设置VIP的网卡 virtual_router_id 62 # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样 priority 100 # 优先级值设定:MASTER 要比 BACKUP 的值大 advert_int 1 # 通告时间间隔:单位秒,主备要一致 authentication { # 认证机制,主从节点保持一致即可 auth_type PASS auth_pass 1231234132 } virtual_ipaddress { 192.168.40.20 dev ens36 label ha:net # VIP,可配置多个 } notify_master /usr/local/bin/notify_master.sh # 作用:当成为MASTER时,以指定的用户和组执行脚本。 notify_backup /usr/local/bin/notify_backup.sh # 作用:当成为BACKUP时,以指定的用户和组执行脚本。 notify_stop /usr/local/bin/notify_stop.sh # 作用:当停止VRRIP时,以指定的用户和组执行脚本。 }
2.3 virtual_server 配置模块
说明:virtual_server 模块可以定义 { VIP + PORT + { RIP1+PORT,... ,RIPN+PORT}}
virtual_server VIP1 PORT1 { #定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开 delay_loop 6 #每隔6秒查询realserver状态 lb_algo rr #后端调试算法(load balancing algorithm) lb_kind DR #LVS调度类型NAT/DR/TUN #persistence_timeout 60 #同一IP的连接60秒内被分配到同一台realserver protocol TCP #用TCP协议检查realserver状态 real_server RIP1 PORT1 { weight 1 #权重,最大越高,lvs就越优先访问 TCP_CHECK { #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC connect_timeout 10 #10秒无响应超时 retry 3 #重连次数3次 delay_before_retry 3 #重连间隔时间 connect_port 80 #健康检查realserver的端口 } } real_server RIP2 PORT1 { weight 1 #权重,最大越高,lvs就越优先访问 TCP_CHECK { #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC connect_timeout 10 #10秒无响应超时 retry 3 #重连次数3次 delay_before_retry 3 #重连间隔时间 connect_port 80 #健康检查realserver的端口 } } } real_server 模块可以定义 real_server { RIP+PORT}
三、实际案例
3.1 keepalived.conf--单VIP的案例
! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP interface ens36 virtual_router_id 62 # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样 priority 100 # 优先级值设定:MASTER 要比 BACKUP 的值大 advert_int 1 # 通告时间间隔:单位秒,主备要一致 authentication { # 认证机制,主从节点保持一致即可 auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.40.20 dev ens36 label ha:net # VIP,可配置多个 } notify_master /usr/local/bin/notify_master.sh notify_backup /usr/local/bin/notify_backup.sh notify_stop /usr/local/bin/notify_stop.sh } virtual_server 192.168.40.20 1935 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 120 protocol TCP real_server 192.168.40.11 1935 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 1935 } } real_server 192.168.40.12 1935 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 1935 } } } virtual_server 192.168.40.20 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 120 protocol TCP real_server 192.168.40.11 80 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 80 } } real_server 192.168.40.12 80 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 80 } } } virtual_server 192.168.40.20 443 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 120 protocol TCP real_server 192.168.40.11 443 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 443 } } real_server 192.168.40.12 443 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 443 } } }
3.2 keepalived.conf--多VIP的案例
! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP interface ens36 virtual_router_id 62 # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样 priority 100 # 优先级值设定:MASTER 要比 BACKUP 的值大 advert_int 1 # 通告时间间隔:单位秒,主备要一致 authentication { # 认证机制,主从节点保持一致即可 auth_type PASS auth_pass 123123 } virtual_ipaddress { 192.168.40.20 dev ens36 label ha:net # VIP,可配置多个 192.168.40.21 dev ens36 label ha:net # VIP,可配置多个 } notify_master /usr/local/bin/notify_master.sh notify_backup /usr/local/bin/notify_backup.sh notify_stop /usr/local/bin/notify_stop.sh } virtual_server 192.168.40.21 1935 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 120 protocol TCP real_server 192.168.40.11 1935 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 1935 } } real_server 192.168.40.12 1935 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 1935 } } } virtual_server 192.168.40.20 1935 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 120 protocol TCP real_server 192.168.40.11 1935 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 1935 } } real_server 192.168.40.12 1935 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 1935 } } } virtual_server 192.168.40.20 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 120 protocol TCP real_server 192.168.40.11 80 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 80 } } real_server 192.168.40.12 80 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 80 } } } virtual_server 192.168.40.20 443 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 120 protocol TCP real_server 192.168.40.11 443 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 443 } } real_server 192.168.40.12 443 { weight 1 TCP_CHECK { connect_timeout 10 retry 3 delay_before_retry 2 connect_port 443 } } }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~