lvs
client 192.168.10.10 gw192.168.10.1
lvs 192.168.10.1 192.168.2.1
web1 192.168.2.50 gw192.168.2.1
web2 192.168.2.60 gw192.168.2.1
client
[root@localhost ~]# nmcli connection modify ens33 ipv4.addresses 192.168.10.10/24
[root@localhost ~]# nmcli connection modify ens33 ipv4.gateway 192.168.10.1
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.10
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.1
web1 192.168.2.50 gw 192.168.2.1
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo 11111 > /var/www/html/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.2.50
11111
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
web1 192.168.2.60 gw 192.168.2.1
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo 222222 > /var/www/html/index.html
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl 192.168.2.60
2222222
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
lvs
第一张网卡
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.10.1 client的网关一样
PREFIX=24
添加一张网卡
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
NAME=ens37 #网卡配置文件名称
uuid删除
DEVICE=ens37 #设备名
ONBOOT=yes
IPADDR=192.168.2.1 #web的gw一致
PREFIX=24
[root@localhost network-scripts]# systemctl restart network
[root@localhost ~]# vim /etc/sysctl.conf #打开路由转发
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p #让其立即生效
net.ipv4.ip_forward = 1
lvs写入到了linux内核当中
[root@localhost ~]# modprobe ip_vs #加载lvs的模块
安装管理lvs的工具
[root@localhost ~]# yum -y install ipvsadm
添加一个集群 这里的ip写的是client的访问的ip client访问的ip肯定是和client同网段的ip
[root@localhost ~]# ipvsadm -A -t 192.168.10.1:80 -s rr
-A 添加一个集群 负载均衡集群
-t tcp链接
192.168.10.1:80 和client同网段的ip 10.10 10.1
-s rr 使用调度算法
[root@localhost ~]# ipvsadm -a -t 192.168.10.1:80 -r 192.168.2.50:80 -m -w 1
-a 添加一个后端真实的节点
-r 真实节点的ip
-m nat模式 -g dr模式 -i ip隧道模式
-w 权重
[root@localhost ~]# ipvsadm -a -t 192.168.10.1:80 -r 192.168.2.60:80 -m -w 1
[root@localhost ~]# ipvsadm -S #保存配置
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.2.50:http -m -w 1
-a -t localhost.localdomain:http -r 192.168.2.60:http -m -w 1
[root@localhost ~]# 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.10.1:80 rr
-> 192.168.2.50:80 Masq 1 0 0
-> 192.168.2.60:80 Masq 1 0 0
删除
删除真实节点
-d
[root@localhost ~]# ipvsadm -d -t 192.168.10.1:80 -r 192.168.2.60:80
-D 删除整个集群
[root@localhost ~]# ipvsadm -D -t 192.168.10.1:80
[root@localhost ~]# ipvsadm -ln
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
client:
[root@localhost ~]# curl 192.168.10.1
22222
[root@localhost ~]# curl 192.168.10.1
11111
DR模式
client 192.168.2.10
lvs 192.168.2.20 vip 192.168.2.200
web 192.168.2.50 vip 192.168.2.200
web2 192.168.2.60 vip 192.168.2.200
client:
[root@localhost ~]# nmcli connection modify ens33 ipv4.addresses 192.168.2.10/24
[root@localhost ~]# nmcli connection modify ens33 ipv4.gateway 192.168.2.1
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual
[root@localhost ~]# systemctl restart network
lvs:
[root@localhost ~]# nmcli connection modify ens37 ipv4.addresses 192.168.2.20/24
[root@localhost ~]# nmcli connection modify ens37 ipv4.gateway 192.168.2.1
[root@localhost ~]# nmcli connection modify ens37 ipv4.method manual
[root@localhost ~]# systemctl restart network
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens37 ifcfg-ens37:0
[root@localhost network-scripts]# vim ifcfg-ens37:0
NAME=ens37:0
DEVICE=ens37:0
ONBOOT=yes
IPADDR=192.168.2.200
PREFIX=24
[root@localhost network-scripts]# systemctl restart network
web1 web上面虚拟ip只能在本地回环网卡上添加 因为如果web主机上有其他的服务 ens33网卡需要接受其他的请求
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.2.200 #和lvs上一致
NETMASK=255.255.255.255 #子网掩码必须用4个255
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a
[root@localhost ~]# vim /etc/sysctl.conf
[root@localhost ~]# sysctl -p #让其立刻生效
让其虚拟ip变成私有的ip地址 不发送任何的广播 不接受任何的请求
web虚拟ip只能在lo ens33
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
添加路由 让web可以接受来自192.168.2.200的请求
[root@localhost ~]# route add -host 192.168.2.200 dev lo:0
[root@localhost ~]# scp /etc/sysctl.conf root@192.168.2.60:/etc/sysctl.conf #拷贝编写的文件
web2
[root@localhost ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
[root@localhost ~]# route add -host 192.168.2.200 dev lo:0
没有设备
DEVICE=lo:0这里没有更改
lvs
[root@localhost ~]# ipvsadm -D -t 192.168.10.1:80
[root@localhost ~]# ipvsadm -A -t 192.168.2.200:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.50:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.60:80 -g -w 1
[root@localhost ~]# ipvsadm -S
[root@localhost ~]# 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.2.200:80 rr
-> 192.168.2.50:80 Route 1 0 0
-> 192.168.2.60:80 Route 1 0 0
[root@localhost ~]# curl 192.168.2.200
22222
[root@localhost ~]# curl 192.168.2.200
11111
Linux 基础服务 LVS
最新推荐文章于 2024-06-13 18:47:10 发布