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
相关推荐
河南宽信李工1503806 16864 分钟前
测绘航空摄影专项资质在洛阳市的获取流程
服务器
吃面不喝汤6627 分钟前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
Rookie_explorers33 分钟前
Linux下go环境安装、环境配置并执行第一个go程序
linux·运维·golang
学习向前冲36 分钟前
AD域控服务器
运维·服务器
weixin_4242158438 分钟前
shell运算实战案例-KFC点餐系统
linux·centos
青柠视频云1 小时前
青柠视频云——视频丢包(卡顿、花屏、绿屏)排查
服务器·网络·音视频
hgdlip1 小时前
查看ip地址的方法有几种?探索多样方法
运维·服务器·ip地址
丶21361 小时前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
danplus1 小时前
node发送邮件:如何实现Node.js发信功能?
服务器·node.js·外贸开发信·邮件群发·蜂邮edm邮件营销·邮件接口·营销邮件
神即道 道法自然 如来1 小时前
Jenkins怎么设置每日自动执行构建任务?
运维·jenkins