調度器和伺服器組都必須在物理上有一個網卡通過不分段的區域網相連,即通過交換機或者高速的HUB相連,中間沒有隔有路由器。VIP地址為調度器和伺服器組共用,調度器配置的VIP地址是對外可見的,用於接收虛擬服務的請求報文;所有的伺服器把VIP地址配置在各自的Non-ARP網路設備上,它對外面是不可見的,只... ...
調度器和伺服器組都必須在物理上有一個網卡通過不分段的區域網相連,即通過交換機或者高速的HUB相連,中間沒有隔有路由器。VIP地址為調度器和伺服器組共用,調度器配置的VIP地址是對外可見的,用於接收虛擬服務的請求報文;所有的伺服器把VIP地址配置在各自的Non-ARP網路設備上,它對外面是不可見的,只是用於處理目標地址為VIP的網路請求。
在VS/DR中,請求報文的目標地址為VIP,響應報文的源地址也為VIP,所以響應報文不需要作任何修改,可以直接返回給客戶,客戶認為得到正常的服務,而不會知道是哪一臺伺服器處理的。
DR模式的網路的連接方式:
1、RIP和DIP和VIP在一個網段內,也就是都是公網地址。
工作流程說明:
客戶端訪問VIP,由director接收處理,選擇調度相應的web伺服器,伺服器處理後直接返回給客戶端。
因此,real server的網關需指向A地址。
1、地址規劃
2、地址配置
real server的VIP不能響應廣播報文,也不能讓其它介面把自己通告出去,也就是存在就行,不要出門和別人打招呼。
director
[root@filesystem ~]# ifconfig ens33 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.94.132 netmask 255.255.255.0 broadcast 192.168.94.255 inet6 fe80::93e8:3599:36a8:58bf prefixlen 64 scopeid 0x20<link> ether 00:0c:29:a3:92:45 txqueuelen 1000 (Ethernet) RX packets 10619 bytes 10402504 (9.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3046 bytes 357957 (349.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@filesystem ~]# ifconfig ens33:0 192.168.94.200 netmask 255.255.255.0 [root@filesystem ~]#
web1
不能從介面將VIP廣播出去,也不要在介面上應答VIP網路的請求。
[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@node1 ~]# echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore [root@node1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@node1 ~]# echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce [root@node1 ~]# ifconfig lo:0 192.168.94.200 netmask 255.255.255.255 broadcast 192.168.94.200 [root@node1 ~]#
web2
[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore [root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce [root@node2 ~]# ifconfig lo:0 192.168.94.200 netmask 255.255.255.255 broadcast 192.168.94.200 [root@node2 ~]#
測試
我們用客戶端ping一下VIP地址,然後arp –a 查看mac地址表,與director的mac對應,現在web1和web2實現了VIP不對外通告也不應答。
3、路由配置
客戶端請求報文的源地址和目標地址為CIP和VIP,回應報文的源地址和目標地址應該是VIP和CIP。
預設情況回應報文會使用出介面的地址,也就是134、135、132等,不會使用VIP地址,我們需要增加一條路由,如果請求的目標IP是VIP,那麼出去的數據包源地址也顯示為VIP。
命令:route add –host $VIP dev VIP的介面
director
[root@filesystem ~]# route add -host 192.168.94.200 dev ens33:0 [root@filesystem ~]#
web1和web2
[root@node1 ~]# route add -host 192.168.94.200 dev lo:0 [root@node1 ~]#
[root@node2 ~]# route add -host 192.168.94.200 dev lo:0 [root@node2 ~]#
4、ipvsadm規則配置
我們對web服務使用負載分擔,real server上的httpd服務配置這裡就省略了。
[root@filesystem ~]# curl http://192.168.94.134 this is web1 is node1 [root@filesystem ~]# curl http://192.168.94.135 this is web2 is node2 [root@filesystem ~]#
規則配置
[root@filesystem ~]# ipvsadm -A -t 192.168.94.200:80 -s rr [root@filesystem ~]# ipvsadm -a -t 192.168.94.200:80 -r 192.168.94.134:80 -g [root@filesystem ~]# ipvsadm -a -t 192.168.94.200:80 -r 192.168.94.135:80 -g [root@filesystem ~]# ipvsadm -l -n IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.94.200:80 rr -> 192.168.94.134:80 Route 1 0 0 -> 192.168.94.135:80 Route 1 0 0 [root@filesystem ~]#
5、結果測試
測試發現rr輪詢的調度演算法可以使用,實現了LVS的DR模型
讀書和健身總有一個在路上