LVS負載均衡DR模型實驗

wKioL1TcpEWygeHTAAGHMtqQA94903.jpg







lvsDR模型原理:

外部請求到來時,源IP是CIP目標IP是VIP,進入路由,路由arp解析,由於只能讓Director給予響應,所以禁用RS的arp響應廣播,只能響應連入網絡中的接口對應的ip的解析,所以將VIP設置在lo:0接口,這樣之後Director可以響應路由器的arp解析,客戶端請求進去Director,通過PREROUTING進入INPUT,在INPUT設置了lvs服務,凡是請求vip:80的請求,均進行轉發,於是在Director INPUT鏈上根據調度規則,選出合適的RS,進行轉發,轉發是根據MAC地址進行的,各服務器之間通信是靠DIP和RIP進行的,所以各服務器上均有彼此通信的IP所在的網卡的mac地址,根據調度規則選出的mac地址轉發,當請求到達選中的RS後,RS進行解封裝,發現目標ip是自己的(即vip,在每臺RS的lo:0接口上配置的ip)於是根據請求準備數據,數據目標IP是CIP,源IP是VIP,但是不能直接通過eth0進行發送,因爲從哪個接口發送,那麼源地址便是哪個接口的IP,這樣客戶端不會接收此數據,所以需要強制從lo:0接口轉到eth0接口進行發送,所以設置了主機路由,這樣數據便沒有經過Director直接經過路由器發送到客戶端。


架構實現步驟:

vip172.16.28.200

DIP:172.16.28.10

RIP:172.16.28.1

RIP:172.16.28.100


1.Director操作:

設置IP

ifconfig eth0 172.16.28.10/16 up
ifconfig eth0:0 172.16.28.200  broadcast 172.16.28.200 netmask 255.255.255.255 up


設置主機路由

route add –host 172.16.28.200 dev eth0:0

設置路由轉發

echo 1 > /proc/sys/net/ivv4/ip_forward

或者修改/etc/sysctl.conf中的ip_forward=1

定義lvs服務

ipvsadm –A –t 172.16.28.200:80 –s wlc

ipvsadm –a –t 172.16.28.200:80 –r 172.16.28.1 –g –w 1

ipvsadm –a –t 172.16.28.200:80 –r 172.16.28.100 –g –w 2

 

spacer.gif2.Realserver操作

禁用arp響應廣播,兩臺RS分別操作

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

echo 1> /proc/sys/net/ipv4/conf/lo/arp_ignore

或者:

sysctl.conf裏添加

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.lo.arp_announce=2

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.lo.arp_ignore=1

 

 

 

RS1

ifconfig eth0 172.16.28.1/16 up
ifconfig lo:0 172.16.28.200 broadcast 172.16.28.200 netmask 255.255.255.255 up
route add –host 172.16.28.200 dev lo:0


RS2

ifconfig eth0 172.16.28.100/16 up
ifconfig lo:0 172.16.28.200 broadcast 172.16.28.200 netmask 255.255.255.255 up
route add –host 172.16.28.200 dev lo:0


三臺均開啓http服務測試








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章