lvs-DR
环境说明:
角色 | IP | 应用和系统版本 | 备注 |
---|---|---|---|
dr | 192.168.100.200 、vip 192.168.100.250 | rockylinux9.3、nginx1.24.0 | 调度器 |
rs1 | 192.168.100.220 | rockylinux9.3、 | 后端服务器 |
rs2 | 192.168.100.230 | rockylinux9.3、nginx1.24.0 、 | 后端服务器 |
nginx私钥和证书参考lvs-NAT
准备
dr
[root@dr ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:a6:fa:86 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.100.200/24 brd 192.168.100.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.100.250/24 brd 192.168.100.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea6:fa86/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@dr ~]#
[root@dr all]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@dr all]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@dr ~]# route add -host 192.168.100.250 dev ens33 //配路由,vip在ens33上
[root@dr all]# ip route
default via 192.168.100.254 dev ens33 proto static metric 100
192.168.100.0/24 dev ens33 proto kernel scope link src 192.168.100.200 metric 100
192.168.100.0/24 dev ens33 proto kernel scope link src 192.168.100.250 metric 100
192.168.100.250 dev ens33 scope link
rs2
可以在/etc/sysctl.conf 里面写入,但是sysctl-p 刷新配置会出现找不到路径的问题
[root@rs2 ~]# ifconfig lo:0 192.168.100.250/32 broadcast 192.168.100.250 up
效果
[root@rs2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 192.168.100.250/0 brd 192.168.100.250 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:47:01:b3 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.100.230/24 brd 192.168.100.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe47:1b3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@rs2 ~]#
[root@rs2 ~]# route add -host 192.168.100.250 dev lo:0 //ip在lo:0上
[root@rs2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.81.130 0.0.0.0 UG 100 0 0 ens33
192.168.81.130 0.0.0.0 255.255.255.255 UH 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.100.250 0.0.0.0 255.255.255.255 UH 0 0 0 lo
[root@rs2 ~]#
rs1
可以在/etc/sysctl.conf 里面写入,但是sysctl-p 刷新配置会出现找不到路径的问题
[root@rs1 all]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs1 all]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@rs1 ~]# ifconfig lo:0 192.168.100.250/32 broadcast 192.168.100.250 up
效果
[root@rs1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 192.168.100.250/0 brd 192.168.100.250 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:91:d2:c1 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.100.220/24 brd 192.168.100.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe91:d2c1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@rs1 ~]#
[root@rs1 ~]# route add -host 192.168.100.250 dev lo:0
[root@rs1 ~]# ip route
default via 192.168.81.130 dev ens33 proto static metric 100
192.168.81.130 dev ens33 proto static scope link metric 100
192.168.100.0/24 dev ens33 proto kernel scope link src 192.168.100.220 metric 100
192.168.100.250 dev lo scope link src 192.168.100.250
[root@rs1 ~]#
配置
http
[root@dr ~]# ipvsadm -A -t 192.168.100.250:80 -s rr
[root@dr ~]# ipvsadm -a -t 192.168.100.250:80 -r 192.168.100.220 -g
[root@dr ~]# ipvsadm -a -t 192.168.100.250:80 -r 192.168.100.230 -g
https
[root@dr ~]# ipvsadm -A -t 192.168.100.250:443 -s rr
[root@dr ~]# ipvsadm -a -t 192.168.100.250:443 -r 192.168.100.230 -g
[root@dr ~]# ipvsadm -a -t 192.168.100.250:443 -r 192.168.100.220 -g