一、搭建网络环境
客户端
nmcli conn add con-name eth0 type ethernet autoconnection yes ip4 172.16.0.100/16 gw4 172.160.0.1 ifname ens33
路由器
nmcli conn add con-name eth0 type ethernet autoconnection yes ip4 172.16.0.1/16 ifname ens33
nmcli conn add con-name eth1 type ethernet autoconnection yes ip4 192.168.0.1/24,10.0.0.1/8 ifname ens37
# 启用转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
LVS
nmcli conn add con-name eth0 type ethernet autoconnection yes ip4 10.0.0.100/8 gw4 10.0.0.1 ifname ens33
nmcli conn add con-name eth1 type ethernet autoconnection yes ip4 192.168.0.100/24 ifname ens37
RS1
nmcli conn add con-name eth0 type ethernet autoconnection yes ip4 192.168.0.101/24 gw4 192.168.0.1 ifname ens33
# 通过修改内核参数,解决地址冲突
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# 将VIP 10.0.0.100 绑定到lo网卡上
ip a a 10.0.0.100/8 dev lo
RS2
nmcli conn add con-name eth0 type ethernet autoconnection yes ip4 192.168.0.102/24 gw4 192.168.0.1 ifname ens33
# 通过修改内核参数,解决地址冲突
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# 将VIP 10.0.0.100 绑定到lo网卡上
ip a a 10.0.0.100/8 dev lo
二、配置LVS
RS1安装httpd
yum -y install httpd
echo RS1 > /var/www/html/index.html
systemctl start httpd
ss -tnl
RS2安装httpd
yum -y install httpd
echo RS2 > /var/www/html/index.html
systemctl start httpd
ss -tnl
LVS上配置
yum -y install ipvsadm
# 用法
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags]
ipvsadm -D -t|u|f service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address -r server-address [options]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm --set tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid]
ipvsadm --stop-daemon state
ipvsadm -h
添加lvs规则
ipvsadm -A -t 10.0.0.100:80 -s rr
ipvsadm -a -t 10.0.0.100:80 -r 192.168.0.101 -g
ipvsadm -a -t 10.0.0.100:80 -r 192.168.0.102 -g
# 查看确认
ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.100:80 rr
-> 192.168.0.101:80 Route 1 0 0
-> 192.168.0.102:80 Route 1 0 0
三、测试结果
curl 10.0.0.100
RS2
curl 10.0.0.100
RS1
结果符合预期,lvs轮询的方式调度后端的rs服务器。