首页 > 其他分享 >5-Keepalived_LVS-NAT

5-Keepalived_LVS-NAT

时间:2024-05-11 15:43:13浏览次数:12  
标签:4.15 LVS Keepalived keepalived 192.168 web2 VIP NAT 服务器

5.Keepalived+LVS-NAT

Keepalived高可用服务器

访问虚拟IP 192.168.4.80

配置环境

web1和web2 
安装http,写个测试页面
yum install -y keepalived

修改配置

修改web1服务器Keepalived配置文件

vim /etc/keepalived/keepalived.conf

global_defs {
  notification_email {
    [email protected]                    //设置报警收件人邮箱
  }
  notification_email_from ka@localhost     //设置发件人
  smtp_server 127.0.0.1                    //定义邮件服务器
  smtp_connect_timeout 30
  router_id  web1                          //设置路由ID号
}
vrrp_instance VI_1 {           // 虚拟路由热备协议
  state MASTER                 // 指定初始主服务器
  interface eth0               // 定义网络接口
  virtual_router_id 50         // 分组,主备ID号需一致
  priority 100                 // 服务器优先级,优先级高优先获取VIP
  advert_int 1            // 比对优先级的间隔时间(秒)
  authentication {        // 密码,每隔一秒比对一次密码,再对优先级
    auth_type pass       // 不配密码的话,有攻击者配置一个优先级比你高的keepalived就可抢夺VIP
    auth_pass forlvs      // 主辅服务器密码必须一致
  }
  virtual_ipaddress { 192.168.4.80 }    // 谁是主服务器谁获得该VIP,可以有不止一个IP
}

修改web2服务器Keepalived配置文件

vim /etc/keepalived/keepalived.conf
global_defs {
  notification_email {
    [email protected]  
  }
  notification_email_from ka@localhost   
smtp_server 127.0.0.1 
  smtp_connect_timeout 30
  router_id  web2                       
}
vrrp_instance VI_1 {
  state BACKUP                  
  interface eth0                    
  virtual_router_id 50             
  priority 50                       
  advert_int 1
  authentication {
     auth_type pass
     auth_pass forlvs  
  }
  virtual_ipaddress {  192.168.4.80  } 
}

启动服务(web1和web2)

systemctl start keepalived

启动keepalived会自动添加一个drop的防火墙规则,需要清空:
iptables -F
setenforce 0

测试

登录两台Web服务器查看VIP信息
ip addr show
ip addr show eth0
此时web2没有4.80这个IP,因为它的优先级低,此时只要将web1的keepalived的服务关闭,web2就可获得VIP

Keepalived+LVS-DR调度器的高可用

ad6ff3b5eb5bb8a8dde12c8d1775e983.png

配置web1和web2

配置 eth0
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes
nmcli connection up eth0

配置 vip
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo{,:0}
vim ifcfg-lo:0

DEVICE=lo:0
NAME=lo:0
IPADDR=192.168.4.15
NETMASK=255.255.255.255   # 必须为32
NETWORK=192.168.4.15      # 网络地址
BROADCAST=192.168.4.15    # 广播地址
ONBOOT=yes

注意:这里因为web1也配置与调度器一样的VIP地址,默认肯定会出现地址冲突。

写入这四行的主要目的就是访问192.168.4.15的数据包,只有调度器会响应,其他主机都不做任何响应。

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2

#当有arp广播问谁是192.168.4.15时,本机忽略该ARP广播,不做任何回应
#本机不要向外宣告自己的lo回环地址是192.168.4.15

yum -y install httpd
echo "192.168.4.100" > /var/www/html/index.html
systemctl start httpd ; systemctl enable httpd
systemctl restart network
ifconfig
systemctl stop firewalld
setenforce 0

配置proxy1和proxy2

配置如图的ip,不配置VIP,不配置ipvs的集群规则,都由keepalvied自动配置
yum install -y keepalived ipvsadm
systemctl enable keepalived
ipvsadm -C

改配置文件

vim /etc/keepalived/keepalived.conf

global_defs {
  notification_email {
    [email protected]                   # 设置报警收件人邮箱
  }
  notification_email_from ka@localhost    # 设置发件人
  smtp_server 127.0.0.1                   # 定义邮件服务器
  smtp_connect_timeout 30
  router_id  lvs1                         # 设置路由ID号xzs(实验需要修改)
}
vrrp_instance VI_1 {
  state MASTER                            # 主服务器为MASTER(实验需要修改)
  interface eth0                          # 定义网络接口(实验需要修改)
  virtual_router_id 50                    # 主辅VRID号必须一致(实验需要修改)
  priority 100                            # 服务器优先级(实验需要修改)
  advert_int 1
  authentication {
    auth_type pass
    auth_pass forlvs                      # 主辅服务器密码必须一致(实验需要修改)
  }
  virtual_ipaddress {  192.168.4.15  }    # 配置VIP(实验需要修改)
}
virtual_server 192.168.4.15 80 {          # 设置ipvsadm的VIP规则(实验需要修改),与手打A的效果一样
  delay_loop 6
  lb_algo wrr                             # 设置LVS调度算法为WRR(加权轮询算法)
  lb_kind DR                              # 设置LVS的模式为DR
  #persistence_timeout 50                 # 客户端50秒之内只访问一台服务器
  protocol TCP
  real_server 192.168.4.100 80 {            # 设置后端web服务器真实IP(实验需要修改)
  weight 1                              # 上边为wrr才有用,设置权重为1
    TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
    }
  }
  real_server 192.168.4.200 80 {            # 设置后端web服务器真实IP(实验需要修改)
  weight 2                              # 设置权重为2
    TCP_CHECK {                           
      connect_timeout 3                     # 每隔3秒做健康检查     
      nb_get_retry 3                        # 如果第一次连发现坏了,但是会试三次
      delay_before_retry 3                  # 一旦坏了,延迟3s再去连一次
    }
  }
}

systemctl start keepalived

查看

ipvsadm -Ln
ip a  s

HTTP_GET {

url {

path /testurl/test.jsp

digest 640205b7b0fc66c1ea91c463fac6334d     #检查页面内容有没有被人动,64-4d是md5码

}

url {

path /testurl2/test.jsp

digest 640205b7b0fc66c1ea91c463fac6334d

}

url {

path /testurl3/test.jsp

digest 640205b7b0fc66c1ea91c463fac6334d

}

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

测试

客户端使用curl命令反复连接http://192.168.4.15,查看访问的页面会轮询到不同的后端真实服务器。

systemctl stop keepalived.service   关闭一台调度器,另一台立刻抢过优先权继续工作


配置HAProxy负载平衡集群

client  eth0 192.168.4.10/24

proxy  eth0 192.168.4.5/24

eth1 192.168.2.5/24

web1   eth1 192.168.2.100/24

web2   eth1 192.168.2.200/24

注意事项:

删除所有设备的VIP,清空所有LVS设置,关闭keepalived

配置web1和web2

yum -y install httpd
systemctl start httpd
echo "192.168.2.100" > /var/www/html/index.html

标签:4.15,LVS,Keepalived,keepalived,192.168,web2,VIP,NAT,服务器
From: https://www.cnblogs.com/lixunblogs/p/18167148

相关文章

  • 1-部署LVS-NAT
    1.部署LVS-NAT部署LVS-NAT集群主机名IP地址clienteth0:192.168.4.10/24proxyeth1:192.168.2.5/24eth0:192.168.4.5/24web1eth0:192.168.2.100/24web2eth0:192.168.2.200/24客户端访问LVS调度器的外网IP(VIP),调度器根据算法选择后端的一台真实服务......
  • 2-部署LVS-DR
    2.部署LVS-DR主机IPclienteth0:192.168.4.10/24proxyeth0:0:192.168.4.15/24eth0:192.168.4.5/24web1lo:0:192.168.4.15/32eth0:192.168.4.100/24web2lo:0:192.168.4.15/32eth0:192.168.4.200/24DR原理通过为请求报文重新封装一个......
  • 3-LVS工作模式
    3.LVS工作模式NAT  TUN  DRhttps://blog.csdn.net/weixin_40470303/article/details/80541639NAT1.LVS服务器配两块网卡,一块连公网与用户通信,一块连内网与集群通信2.负载路由器充当网关3.支持端口映射,后端真实服务器的地址可能不是80,而是80804.集群节点处于一个网络......
  • 2024-05-11 react-native 相关面试题
     ReactNative是什么?ReactNative是Facebook开源的一个使用JavaScript和React编写原生应用的框架。它允许开发者使用JavaScript和React编写跨平台的移动应用,这些应用可以运行在iOS和Android平台上。ReactNative有哪些优点?跨平台:一套代码可以开发出跨平台的app,减少了人......
  • LVS(Linux Virtual Server)简述
    一、简介LVS(LinuxVirtualServer)是一个基于Linux操作系统的高性能、可扩展的负载均衡器。它提供了一种可靠的、高可用的解决方案,用于将来自客户端的请求分发到多个后端服务器,以实现负载均衡和高可用性。lvs工作在OSI模型的传输层,即四层负载均衡,LVS主要由两部分组成,ipvs和ipvs......
  • 2024 ICPC National Invitational Collegiate Programming Contest, Wuhan Site
    目录写在前面IBKFMEDC写在最后写在前面补题地址:https://codeforces.com/gym/105143正式赛全程犯大病打铜了呃呃,以下按个人向难度排序。AIEEEEE!忍者为何!队长=san实际战犯!罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚罪罚......
  • redis、LVS、nginx的基本使用方法
    redis、LVS、nginxredis搭建哨兵原理哨兵搭建至少要有3个机器,且必须为奇数个redis搭建哨兵之前要先实现主从复制;master的配置文件中的masterauth和slave都必须相同实现主从复制之所有从节点配置文件[root@slave~]#yuminstall-yredis[root@slave~]#vim/etc/redis.c......
  • 易基因:cfDNA甲基化组多模式分析早期检测食管鳞状细胞癌和癌前病变|Nature子刊
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。食管癌(EC)是最常见的胃肠道恶性肿瘤之一,食管鳞状细胞癌(ESCC)是EC的主要组织学亚型,约占新EC病例的88%,大多数发生在东亚和中亚。与晚期ESCC的预后极差相比,早期ESCC(如黏膜内ESCC)和前体病变(如上皮内瘤变,IEN)可以通过内镜下整......
  • FTP主动模式和被动模式(3)NAT对FTP的影响 - NAT ALG
    NAT对FTP的影响NAT环境下FTP存在的问题FTP主动模式FTP服务器在外部网络在FTP主动模式下,如果网络中存在NAT,且FTP客户端在NAT内部网络中,那么FTP数据连接会出现下面的问题,如图:内部网络中的FTP客户端和外部网络中的FTP服务器端通过NAT地址转换是可以正常建立控制连接的,控制连接......
  • 经过dnat后访问kube-apiserver证书认证失败
    问题现象iptables-tnat-IOUTPUT-d10.10.10.10-ptcp--dport443-jDNAT--to-destination192.168.0.105:6443#报错requesteddomainnamedoesnotmatchtheserver'scertificate,无法通过证书认证。curlhttps://10.10.10.10:443/livez--key./client.key--cert......