初学者的LVS+keepalived实验配置

tech2022-09-28  83

文章目录

LVS+keepalived实验配置关闭防火墙和核心防护修改主机名:LVS1安装环境包设置浮动ip编写LVS启动脚本添加权限这边注意,我们要将网卡改成仅主机模式,并设置静态IP地址重启网卡启动LVS脚本如下:关闭防火墙和核心防护 接下来是两台web节点服务器更改主机名:安装环境包创建网页编辑lo:0显卡编写web脚本复制到web2上配置网卡信息重启网卡服务启动脚本,开启服务接下来我们到web2上进行配置,和web1配置相同,在网卡信息不同,以及在编写网页的时候,要注意和web1的内容不同接下来,两台web机均重启lo:0网卡 接下来,我们回到lLVS1上配置keepalived复制到LVS2上然后我们在LVS2上进行修改两台LVS主机启动服务

LVS+keepalived实验配置

关闭防火墙和核心防护

iptables -F setenforce 0

修改主机名:LVS1

hostnamectl set-hostname lvs1 su

安装环境包

yum install keepalived ipvsadm -y

设置浮动ip

cd /etc/sysconfig/network-scripts/ cp -p ifcfg-ens33 ifcfg-ens33:0 vim ifcfg-ens33:0 原有内容全部删除,添加下面四条内容 DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.100.10 NETMASK=255.255.255.0

编写LVS启动脚本

cd /etc/init.d/


vim dr.sh #!/bin/bash GW=192.168.100.1 VIP=192.168.100.10 RIP1=192.168.100.201 RIP2=192.168.100.202 case "$1" in start) /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm 先保存 systemctl start ipvsadm 先开启服务 /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 $VIP up 开启ens33:0网卡,ip地址,广播地址,子网掩码 /sbin/route add -host $VIP dev ens33:0 添加路由网段信息 /sbin/ipvsadm -A -t $VIP:80 -s rr 添加LVS设置,访问80端口,使用轮询算法 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g -g 代表使用DR,上一次使用的是-m ,代表使用nat(此处为个人理解) /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g echo "ipvsadm starting ____________________[ok]" ;; stop) /sbin/ipvsadm -C 清除缓存 systemctl stop ipvsadm 关闭LVS ifconfig ens33:0 down 关掉虚拟IP route del $VIP 删掉路由条目 echo "ipvsadm stoped _______________________[ok]" ;; status) if [ ! -e /var/lock/subsys/ipvsadm ];then 如果文件不存在,则 echo "ipvsadm stoped _______________________" exit 1 else echo "ipvsadm Runing____________________[ok]" fi ;; *) echo "Usage: $0 {start|stop|status}" exit 1 esac exit 0

添加权限

chmod +x dr.sh

这边注意,我们要将网卡改成仅主机模式,并设置静态IP地址

cd /etc/sysconfig/network-scripts vim ifcfg-ens33 修改如下 IPADDR=192.168.100.110 NETMASK=255.255.255.0 GATEWAY=192.168.100.1

重启网卡

systemctl restart network

启动LVS脚本

service dr.sh start

接下来配置LVS2,配置内容相同,但是要注意,在配置ens33网卡的时候,要和LVS1不同

如下:

IPADDR=192.168.100.111 NETMASK=255.255.255.0 GATEWAY=192.168.100.1

关闭防火墙和核心防护

iptables -F setenforce 0

接下来是两台web节点服务器

更改主机名:

hostnamectl set-hostname web1 su

安装环境包

yum install httpd -y

创建网页

cd /var/www/html vim index.html <h1>this is abc 1</h1>

编辑lo:0显卡

cd /etc/sysconfig/network-scripts/ cp -p ifcfg-lo ifcfg-lo:0 vim ifcfg-lo:0 //原有内容删除,写入下面内容 DEVICE=lo:0 IPADDR=192.168.100.10 NETMASK=255.255.255.0 ONBOOT=YES

编写web脚本

cd /etc/init.d ------------------ vim web.sh #!/bin/bash VIP=192.168.100.10 case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0 echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce sysctl -p > /dev/null 2>&1 echo "RealServer Start OK" ;; stop) ifconfig lo:0 down route del $VIP /dev/null 2>&1 echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0

复制到web2上

scp /etc/init.d/web.sh root@192.168.209.134:/etc/init.d/ yes abc123

网卡修改成仅主机模式

配置网卡信息

vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static IPADDR=192.168.100.201 NETMASK=255.255.255.0 GATEWAY=192.168.100.1

重启网卡服务

systemctl restart network

启动脚本,开启服务

chmod +x web.sh service web.sh start systemctl start httpd

接下来我们到web2上进行配置,和web1配置相同,在网卡信息不同,以及在编写网页的时候,要注意和web1的内容不同

IPADDR=192.168.100.202 NETMASK=255.255.255.0 GATEWAY=192.168.100.1 网页 <h1>this is abc 2</h1>

接下来,两台web机均重启lo:0网卡

ifup lo:0

接下来,我们回到lLVS1上配置keepalived

vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 ## 邮件服务器指向本地 smtp_connect_timeout 30 router_id LVS_01 指定router_ip,不能相同 vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER ## 备机为BACKUP interface ens33 ## 接口为物理网卡接口 virtual_router_id 51 priority 100 ## 备机优先级必须要小于主机 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.100.10 ## VIP地址 } } virtual_server 192.168.100.10 80 { ## 虚拟服务器IP地址及访问端口 delay_loop 6 lb_algo rr lb_kind DR ## 指定LVS模式 persistence_timeout 50 protocol TCP real_server 192.168.100.201 80 { ## 真实服务器IP地址 weight 1 TCP_CHECK { ## 健康状态检查 connect_port 80 ## 添加80端口 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.100.202 80 { ## 以下是另一台Web Server节点 weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }

复制到LVS2上

scp /etc/keepalived/keepalived.conf root@192.168.100.111:/etc/keepalived/ yes abc123

然后我们在LVS2上进行修改

vim /etc/keepalived/keepalived.conf router_id LVS_02 主为01,备就是02,不一样即可 state BACKUP 角色身份不能一样,要改为BACKUP priority 90 优先级要改为90

两台LVS主机启动服务

[root@lvs1 ~]# systemctl start keepalived.service [root@lvs2 ~]# systemctl start keepalived.service

配置完成,后续可以到同网段中的win10主机中,ping 192.168.100.10 进行验证 并打开网页,访问192.168.100.10 一直刷新,会发现网页会轮询访问web1和web2的网页

最新回复(0)