Linux-LVS-DR模式多網段
阿新 • • 發佈:2022-05-28
實驗環境
客戶端:centos7 IP:192.168.10.6/24 GW:192.168.10.200
路由器:centos7 eth0:10.0.0.200/24
eth0:172.16.0.200/24
eth1:192.168.10.200/24
LVS: centos7 lo:VIP:172.16.0.100/32 GW:10.0.0.200
eth0:DIP:10.0.0.8/24
RS1: centos7 lo:VIP:172.16.0.100/32 GW:10.0.0.200
eth0:RIP1:10.0.0.7/24
RS2: centos7 lo:VIP:172.16.0.100/32
eth0:RIP1:10.0.0.17/24
1、搭建網路環境
客戶端
[root@client-internet ~]#hostname -I 192.168.10.6 [root@client-internet ~]#ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.6 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::250:56ff:fe3a:a4ce prefixlen 64scopeid 0x20<link> ether 00:50:56:3a:a4:ce txqueuelen 1000 (Ethernet) RX packets 148 bytes 13546 (13.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 128 bytes 14113 (13.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 12 bytes 1108 (1.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 1108 (1.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@client-internet ~]#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.10.200 0.0.0.0 UG 100 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
路由器 router-server
[root@router-server ~]#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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:29:7b:de brd ff:ff:ff:ff:ff:ff inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.16.0.200/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe29:7bde/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:19:52:37 brd ff:ff:ff:ff:ff:ff inet 192.168.10.200/24 brd 192.168.10.255 scope global noprefixroute eth1 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe19:5237/64 scope link valid_lft forever preferred_lft forever [root@router-server ~]#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 172.16.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
路由網路配置,開啟路由轉發
[root@router-server ~]#echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
LVS伺服器 lvs-server
[root@lvs-server ~]#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 172.16.0.100/0 scope global lo:1 valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:3e:5b:25 brd ff:ff:ff:ff:ff:ff inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe3e:5b25/64 scope link valid_lft forever preferred_lft forever [root@lvs-server ~]#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.200 0.0.0.0 UG 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
RS1伺服器:rs1-server
[root@rs1-server ~]#ip ad 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 172.16.0.100/0 scope global lo:1 valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:3a:ac:a0 brd ff:ff:ff:ff:ff:ff inet 10.0.0.7/24 brd 10.0.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe3a:aca0/64 scope link valid_lft forever preferred_lft forever [root@rs1-server ~]#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.200 0.0.0.0 UG 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
RS2伺服器:rs2-server
[root@rs2-server ~]#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 172.16.0.100/0 scope global lo:1 valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:50:56:2f:49:fb brd ff:ff:ff:ff:ff:ff inet 10.0.0.17/24 brd 10.0.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe2f:49fb/64 scope link valid_lft forever preferred_lft forever [root@rs2-server ~]#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.0.200 0.0.0.0 UG 100 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
新增 lo:VIP:172.16.0.100/32命令
[root@rs2-server ~]#ifconfig lo:1 172.16.0.100/32
2、lvs DR模式配置
限制響應級別:arp_ignore 0:預設值,表示可使用本地任意介面上配置的任意地址進行響應 1:僅在請求的目標IP配置在本地主機的接收到請求報文的介面上時,才給予響應 限制通告級別:arp_announce 0:預設值,把本機所有介面的所有資訊向每個介面的網路進行通告 1:儘量避免將介面資訊向非直接連線網路進行通告 2:必須避免將介面資訊向非本網路進行通告 配置要點 1. Director 伺服器採用雙IP橋接網路,一個是VIP,一個DIP 2. Web伺服器採用和DIP相同的網段和Director連線 3. 每個Web伺服器配置VIP 4. 每個web伺服器可以出外網
RS1的ipvs 配置
[root@rs1-server ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@rs1-server ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@rs1-server ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce [root@rs1-server ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
RS2的ipvs配置
[root@rs2-server ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@rs2-server ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@rs2-server ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@rs2-server ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
LVS主機的配置
安裝工具
[root@lvs-server ~]#yum -y install ipvsadm
lvs配置
[root@lvs-server ~]#ipvsadm -A -t 172.16.0.100:80 -s wrr #指定演算法 wrr 加權輪詢 Illegal 'real-server' option with the 'add-service' command [root@lvs-server ~]#ipvsadm -a -t 172.16.0.100:80 -r 10.0.0.7 -g -w 1 #DR模式,權重1 [root@lvs-server ~]#ipvsadm -a -t 172.16.0.100:80 -r 10.0.0.17 -g -w 1 #DR模式,權重1
客戶端測試
[root@client-internet ~]#curl 172.16.0.100 10.0.0.17 [root@client-internet ~]#curl 172.16.0.100 10.0.0.7 [root@client-internet ~]#curl 172.16.0.100 10.0.0.17 [root@client-internet ~]#curl 172.16.0.100 10.0.0.7 [root@client-internet ~]#curl 172.16.0.100 10.0.0.17 [root@client-internet ~]#curl 172.16.0.100 10.0.0.7