需要5个主机client,router,lvs,webserver1,webserver2
client(客户端)
ip配置为172.25.254.200
网关为172.25.254.100
[root@client ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
address1=172.25.254.200/24,172.25.254.100
method=manual
router(路由器)
nat的ip为172.25.254.100
仅主机的ip为192.168.0.100
打开内核路由功能
[root@router ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0
[ipv4]
address1=172.25.254.100/24,172.25.254.2
method=manual
dns=114.114.114.114;
[root@router ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1
[ipv4]
address1=192.168.0.100/24
method=manual
[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@lvs ~]# vim /etc/sysctl.conf
#添加
net.ipv4.ip_forward = 1
#查看
[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1
lvs
仅主机的ip为192.168.0.50
vip为192.168.0.200
配置 ipvsadm策略
[root@lvs ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnection
[connection]
id=eth1
type=ethernet
interface-name=eth1
[ipv4]
address1=192.168.0.50/24,192.168.0.100
method=manual
[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 ~]# vim /etc/sysctl.conf
#添加
net.ipv4.ip_forward = 1
#查看
[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1
#安装lvs
[root@lvs ~]# dnf install ipvsadm -y
#查看策略
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
#写策略
[root@lvs ~]#ipvsadm -A -t 192.168.0.200:80 -s wrr
[root@lvs ~]#ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1
[root@lvs ~]#ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2
#配置vip
[root@lvs ~]# ip addr add 192.168.0.200/32 dev lo
webserver1
仅主机ip为192.168.0.10
vip为192.168.0.200
启动httpd
[root@webserver1 ~]# vim /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
dns=114.114.114.114;
#下载并启动httpd
[root@webserver1 system-connections]# cd
[root@webserver1 ~]# yum install httpd -y
[root@webserver1 ~]# echo webserver1 - 192.168.0.20 > /var/www/html/index.html
[root@webserver1 ~]# systemctl enable httpd
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
#配置vip
[root@webserver1 ~]# ip addr add 192.168.0.200/32 dev lo
webserver2
仅主机ip为192.168.0.20
vip为192.168.0.200
启动httpd
[root@webserver2 ~]# vim /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
dns=114.114.114.114;
#下载并启动httpd
[root@webserver2 system-connections]# cd
[root@webserver2 ~]# yum install httpd -y
[root@webserver2 ~]# echo webserver1 - 192.168.0.20 > /var/www/html/index.html
[root@webserver2 ~]# systemctl enable httpd
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
#配置vip
[root@webserver2 ~]# ip addr add 192.168.0.200/32 dev lo
测试:
[root@client ~]# for i in {1..10}
> do
> curl 192.168.0.200
> done
webserver1 - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver1 - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver1 - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver1 - 192.168.0.10