1. 程式人生 > 其它 >Linux-LVS-DR模式多網段

Linux-LVS-DR模式多網段

實驗環境

客戶端: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 

     GW:10.0.0.200

         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 64
scopeid 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 65536
inet 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