架構圖: 多網段: 客戶機位於192.168.10.x/24網段 RS位於:10.0.0.x/24網段 VIP:位於172.16.0.x/24網關 通信過程: 客戶機(CIP) >lvs(VIP) >lvs(DIP) >RS(RIP) >客戶機(CIP) 說明: DR模式要求每個RS都擁有和lvs一 ...
架構圖:
多網段:
-
客戶機位於192.168.10.x/24網段
-
RS位於:10.0.0.x/24網段
-
VIP:位於172.16.0.x/24網關
通信過程:
客戶機(CIP)---->lvs(VIP)---->lvs(DIP)---->RS(RIP) ----->客戶機(CIP)
說明:
DR模式要求每個RS都擁有和lvs一樣的vip,當把VIP綁定在lo網卡上時,netmask需要設置位32位。
即:172.16.0.0/32
原因:
例如:迴環網卡本身地址是127.0.0.1/8,只要具有相同的主機位,網路位不同,lo都認為這些地址是在lo上配置的地址,所以只會在內核中進行迴圈,不會通過網路發送報文。
例如:
127.12.32.32/8這個地址lo也會認為是他自身的ip地址,當接收到這個ip地址發送過來的報文時,lo網卡不會通過網路進行處理,而是通過內核進行處理。
所以需要將VIP的netmask設置為32位。
https://www.cnblogs.com/heyongshen/p/16831351.html
Router:
[root@Router ~]# ifconfig eth0:1 172.16.0.200/24
LVS
[root@LVS ~]# ifconfig lo:1 down
[root@LVS ~]# ifconfig lo:VIP 172.16.0.100/32
[root@LVS ~]# ipvsadm -C #清空原來的規則
[root@LVS ~]# ipvsadm -A -t 172.16.0.100:80 -s wrr #創建一個負載均衡集群
[root@LVS ~]# ipvsadm -a -t 172.16.0.100:80 -r 10.0.0.7 -g -w 1 #添加RS1
[root@LVS ~]# ipvsadm -a -t 172.16.0.100:80 -r 10.0.0.17 -g -w 1 #添加Rs2
[root@LVS ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.0.100:80 wrr
-> 10.0.0.7:80 Route 1 0 0
-> 10.0.0.17:80 Route 1 0 0
RS1
[root@RS1 ~]# ifconfig lo:1 down
[root@RS1 ~]# ifconfig lo:VIP 172.16.0.100/32
RS2
[root@RS2 ~]# ifconfig lo:1 down
[root@RS2 ~]# ifconfig lo:VIP 172.16.0.100/32