lvs集群

nat模式

实验前提

除了测试主机,其他三台主机都需要添加或修改网卡,修改如以下显示

lvs主机

server1主机和server2主机

创建实验环境

lvs主机

复制代码
[root@lvs ~]# vmset.sh eth0 172.25.250.100 lvs
[root@lvs ~]# vmset.sh eth1 192.168.0.100 lvs

###########eth1仅主机网卡
[root@lvs ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnection 
[root@lvs ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.0.100/24       
method=manual

##########eth0 NAT网卡
[root@lvs ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=172.25.250.100/24,172.25.250.2
method=manual


[root@lvs ~]# nmcli connection reload 
[root@lvs ~]# nmcli connection up eth0

[root@lvs ~]# nmcli connection up eth1


################打开内核路由,使eth1和eth0通信
[root@lvs ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0

[root@lvs ~]# echo net.ipv4.ip_forward = 1 > /etc/sysctl.conf 
[root@lvs ~]# sysctl -p     //使其生效
net.ipv4.ip_forward = 1

server1主机

复制代码
[root@server1 ~]# vmset.sh eth0 192.168.0.10 server1
[root@server1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.10/24,192.168.0.100    //server1主机网关指向lvs主机
method=manual

[root@server1 ~]# nmcli connection reload 
[root@server1 ~]# nmcli connection up eth0 

server2主机

复制代码
[root@server2 ~]# vmset.sh eth0 192.168.0.20 server1
[root@server2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.20/24,192.168.0.100    //server2主机网关指向lvs主机
method=manual

[root@server2 ~]# nmcli connection reload 
[root@server2 ~]# nmcli connection up eth0 

开始实验(基于httpd)

lvs主机下载安装ipvsadm

复制代码
[root@lvs ~]# yum install ipvsadm -y
[root@lvs ~]# ipvsadm -Ln               //查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

布置策略

复制代码
[root@lvs ~]# ipvsadm -A -t 172.25.250.100:80  -s rr     
// -A 添加    // -t 指定TCP协议    //-s 指定算法   rr // 轮寻(你一个我一个....静态)


[root@lvs ~]# ipvsadm -a -t 172.25.250.100:80 -r 192.168.0.10:80 -m 
[root@lvs ~]# ipvsadm -a -t 172.25.250.100:80 -r 192.168.0.20:80 -m 
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.250.100:80 rr
  -> 192.168.0.10:80              Masq    1      0          0         
  -> 192.168.0.20:80              Masq    1      0          0        

server1,server2主机

复制代码
[root@server1 ~]# yum install httpd -y  //安装httpd

[root@server1 ~]# echo this is server1 > /var/www/html/index.html

[root@server2 ~]# echo this is server2 > /var/www/html/index.html

测试

复制代码
[root@rhel9 ~]# for i in {1..10}
> do
> curl 172.25.250.100
> done
this is server1
this is server2
this is server1
this is server2
this is server1
this is server2
this is server1
this is server2
this is server1
this is server2

DR模式

创建环境

client主机

复制代码
[root@client ~]# vmset.sh 172.25.250.200 client
[root@client ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=172.25.250.200/24,172.25.250.100
method=manual
dns=114.114.114.114;

router主机

复制代码
[root@router ~]# vmset.sh 172.25.250.100 router
[root@router ~]# vmset.sh 192.168.0.100 router
[root@router ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=172.25.250.100/24,172.25.250.2
method=manual
dns=114.114.114.114;
[root@router ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.0.100/24
method=manual
dns=114.114.114.114;


################打开内核路由,使eth1和eth0通信
[root@router ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0

[root@router ~]# echo net.ipv4.ip_forward = 1 > /etc/sysctl.conf 
[root@router ~]# sysctl -p     //使其生效
net.ipv4.ip_forward = 1

lvs主机

复制代码
[root@lvs ~]# nmcli connection delete eth0  //删掉eth0网卡ip,我们用lo环回来做一次性ip

[root@lvs ~]# vmset.sh eth1 192.168.0.200 lvs
[root@lvs ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.0.200/24,192.168.0.100           //网关指向路由
method=manual
dns=114.114.114.114;

[root@lvs ~]# ip a a 192.168.0.50/32 dev lo     //环回添加一次性ip

server1、server2主机

复制代码
#############server1主机

[root@server1 ~]#  vmset.sh eth0 192.168.0.10 server1
[root@server1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.10/24,192.168.0.100    // //网关指向路由
method=manual


[root@server1 ~]#  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@server1 ~]#  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@server1 ~]#  echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@server1 ~]#  echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@server1 ~]# ip a a 192.168.0.50/32 dev lo    //临时ip


############server2主机
[root@server2 ~]#  vmset.sh eth0 192.168.0.20 server2

[root@server2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.0.20/24,192.168.0.100    //网关指向路由
method=manual

[root@server2 ~]#  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@server2 ~]#  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@server2 ~]#  echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@server2 ~]#  echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@server2 ~]# ip a a 192.168.0.50/32 dev lo   //临时ip

开始实验

lvs主机上安装ipvsadm

复制代码
[root@lvs ~]# yum install ipvsadm -y
[root@lvs ~]# ipvsadm -Ln               //查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

布置策略

复制代码
[root@lvs ~]# ipvsadm -A -t 192.168.0.50:80 -s wrr  
[root@lvs ~]# ipvsadm -a -t 192.168.0.50:80 -r 192.168.0.10:80 -g -w 2  //权重2
[root@lvs ~]# ipvsadm -a -t 192.168.0.50:80 -r 192.168.0.20:80 -g -w 1  //权重1
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.50:80 wrr
  -> 192.168.0.10:80              Route   2      0          0         
  -> 192.168.0.20:80              Route   1      0          0         

测试

复制代码
[root@client ~]# for i in {1..10}
> do
> curl 192.168.0.50
> done
this is server1
this is server1
this is server2
this is server1
this is server1
this is server2
this is server1
this is server1
this is server2
this is server1
相关推荐
为思念酝酿的痛4 小时前
POSIX信号量
linux·运维·服务器·后端
专业白嫖怪4 小时前
什么是docker
运维·docker·容器
隔窗听雨眠5 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
人还是要有梦想的5 小时前
linux下用搜狗输入法,中英文切换
linux·运维·服务器
北京智和信通5 小时前
某部队IT基础设施及机房动环统一运维建设实例
运维·网管平台·网管软件·网络管理系统·网络运维平台·网络运维系统
乐维_lwops6 小时前
从 “救火运维” 到 “自动驾驶”:运维智能体到底解决了什么?
运维·人工智能·运维智能体
bush46 小时前
嵌入式linux学习记录二
linux·运维·学习
9分钟带帽6 小时前
linux_通过NFS挂载远程服务器的硬盘
linux·服务器
weixin_468466856 小时前
MoneyPrinterTurbo 短视频自动化生产实战指南
运维·人工智能·自动化·大模型·音视频·moneyprinter
難釋懷6 小时前
Nginx自签名-图形化工具 XCA
运维·nginx