LVS負載均衡架設,DR模式

lvs-dr模型 : 直接路由

Director在實現轉發時不修改請求報文的IP首部,而是通過直接封裝MAC首部來完成轉發,目標MAC是Director根據調度方法挑選出的某RS的MAC地址

拓撲結構有別於NAT類型

架構特性:

(1) 保證前端路由器將目標地址爲VIP的請求報文通過ARP地址解析後送往Director

解決方案:

1、靜態綁定:在前端路由直接將VIP對應的目標MAC靜態配置爲Director的MAC地址,不靠譜也不常用

2、arptables:在各RS上,通過arptables規則拒絕其響應對VIP的ARP廣播請求

3、內核參數:在RS上修改內核參數,並結合地址的配置方式實現拒絕響應VIP對ARP的響應請求

(2) RS的RIP可以使用私有地址,但也可以使用公網地址,此時可通過互聯網上的主機直接對此RS發起管理操作

(3) 請求報文必須經由Director調度,但響應報文必須不能經由Director

(4) 各RIP必須與DIP在同一物理網絡中,就是不能通過路由器轉發否則會被修改MAC地址,可以通過交換機交換

(5) 不支持端口映射

(6) RS可以使用大多數的OS

(7) RS的網關一定不能指向Director

wKioL1ZYPATwR4O4AAF2FHtwnnI411.png

我們使用LVS配置,不懂的可以先看另一篇博客LVS基礎  http://kmk0226.blog.51cto.com/5975994/1717592


架設DR模式的LVS負載均衡主要的思路就是VIP只能Directory上能夠響應,RS上的VIP只能發送。

因此我們要先根據自己需要架設的服務拓撲圖來規劃IP地址以及測試。

1、根據上面的拓撲圖先規劃IP地址 

    

注意:DR模式與NAT模式不同,DR模式所有的IP地址都爲公網地址並不是私有地址。

    VIP:192.168.100.2

    VIP爲公網地址,因此這個地址需要能連通外部網絡的。

    

    DIP:192.168.100.3

    DIP是公網地址

    

    RIP:192.168.100.4-6

    RIP爲Real server的IP地址,拓撲圖的三臺服務器依次設置IP地址從4到6


2、設置完成IP地址架設網絡以及對ARP廣播做限制,最後進行測試是否連通。

    先配置各個服務器的IP地址:

    (注意:本次IP地址配置是命令方式的並不能永久生效,如果需要永久生效的話要在配置文件中配置具體,本章不做描述,如果需要請留言)

   (1) Directory:

        DIP: ifconfig eth0 192.168.100.3 netmask 255.255.255.0 up

        VIP:ifconfig eth0:0 192.168.100.2 netmask 255.255.255.255 broadcast 192.168.100.2 up

            由於vip只是用於標記用的,所以掩碼設置爲32位的, 並且設置廣播域的範圍只有192.168.100.2   

            route add -host 192.168.100.2 dev eth0:0

                如果主機的目標地址是192.168.100.2這個VIP就必須從eth0:0這個端口進出

            開啓nat轉發功能

            vim /etc/sysctl.conf

                修改net.ipv4.if_forward = 1

                    1爲打開,0爲關閉      

            sysctl -p : 讓修改的配置立即生效      


   (2) Real Server:

        RIP: ifconfig eth0 192.168.100.4 netmask 255.255.255.0 up

        VIP: ifconfig lo:0 192.168.100.2 netmask 255.255.255.255 broadcast 192.168.100.2 up

            DR模型中在RS中的VIP是放在本地端口的,不對外通信的,只做幀首部用,具體原因請學習網絡基礎。

        RS還需要設置ARP限制,否則就算本地端口也會將自己的IP地址與外部通信。

            route add -host 192.168.100.2 dev lo:0

                如果主機的目標地址是192.168.100.2這個VIP就必須從lo:0這個端口進出

        

        2.4.26,2.6.4 kernael引入兩個內核參數:

arp_announce: 定義arp限制通告級別

arp_ignore: 定義arp忽略arp請求級別或aro通告的級別

            

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

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

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

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


    另外兩臺RS也做同樣的操作,不過RIP需要修改成192.168.100.5192.168.100.6


  (3) 全部設置完之後測試各個IP地址之間是否能夠正常通信,使用ping工具

        在每個主機上都ping一下其他主機的IP地址


3、測試需要架設的服務是否能夠在Directory上正常訪問

    本次以http爲例,在各個RS上安裝完http之後,在Directory使用curl http://192.168.100.4測試是否正常



測試完成之後就可以配置集羣了。


LVS集羣配置在Directory上配置:

ipvsadm -A -t 192.168.100.2:80 -s rr    //設置VIP爲訪問集羣時候的IP地址,端口號爲80,-s 代表使用自定義集羣訪問模式,rr爲輪詢,代表每個服務器都會輪換着訪問
ipvsadm -a -t 192.168.100.2:80 -r 192.168.100.4 -g -w 1  //設置192.168.100.4爲一個RS服務器,-g代表是開啓DR模式, -w爲權重,1爲權重爲1
ipvsadm -a -t 192.168.100.2:80 -r 192.168.100.5 -g -w 2  //設置192.168.100.5爲一個RS服務器,-g代表是開啓DR模式, -w爲權重,2爲權重爲2
ipvsadm -a -t 192.168.100.2:80 -r 192.168.100.6 -g -w 3  //設置192.168.100.6爲一個RS服務器,-g代表是開啓DR模式, -w爲權重,3爲權重爲3
注意:權重越大代表被訪問到的機率越大,不過爲RR輪詢的時候是無效的。

配置完Directory之後集羣的配置就已經配置完成了。


測試集羣是否可以正常訪問:

    1、實驗環境中先確保iptables防火牆爲關閉狀態

    2、實驗環境中確保selinux爲關閉狀態或警告狀態

    3、在RS服務器中建立http頁面,頁面內容最好是能區分每個主機的不通內容,例如:192.168.100.4這樣一個IP地址的內容

    4、在本地物理機直接訪問VIP測試是否能夠正常訪問,並且是否是正常輪詢訪問的,如果都正常代表LVS集羣已經架設完成



總結:

    LVS負載均衡集羣對網絡要求較高,如果內部網絡架設不完整或者不通都將會導致集羣無法正常訪問,重點只要所有IP地址都能ping通就能正常架設成功。





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