lvs-dr原理及配置

來源:互聯網
上載者:User

標籤:lvs-dr   路由器   director   

Lvs-dr配置

用戶端通過路由器將請求交給director的VIP。director接收請求,將通過相應的演算法將請求轉寄給相應的realserver。在轉寄的過程中,會修改請求包的目的mac地址,目的ip地址不變。realserver接收請求,並直接響應用戶端。但這有個問題:director此時與realserver位於同一個網路中,當director直接將請求轉寄給realserver時,realserver檢測到該請求包的目的ip是vip而並非自己,便會丟棄,而不會響應。所以,我們需要在所有realserver上都配上VIP。但又會有二個問題:director與realserver位於同一個網路中,當出現多個vip時,通過arp廣播,整個網路必然混亂,我們無法保證用戶端的請求一定會發往director。為保證當用戶端請求抵達網路時,只有director來響應請求。我們需要realserver忽略對vip的arp請求,並且在arp通告時,不通告vip地址。我們需要配置如下兩個核心參數:
arp_ignore :
  當一台主機某個介面接收到arp請求時,這台機上的ip地址是否通過該介面響應給對應請求的限制層級。簡單來說,當這台主機有多塊網卡,或者有多個ip地址時,是否通過該介面將所有ip地址響應給對應的請求。


   0:不作任何限制。將所有原生ip地址都響應給對應請求。

   1:當請求的ip就配置在本介面上時,才予以響應。換句話說,就是只響應當前介面的ip地址。

arp_announce:
  當一台主機加入到一個新的網路。會發出ARP通告,向網路中其他主機通告自己的ip地址及mac等資訊。arp_anounce就用來限制通告的層級。當這台主機有多塊網卡或者多個ip地址時,是否通過某一個介面將所有ip地址通告給該網路中的主機。

   0:不作任何限制。從任意介面通告所有ip地址。

   1:儘可能避免通告非本介面上的ip。

   2:只通知本介面的ip。非本介面的ip不予通告。

由此我們亦可知,在realserver上配置vip時顯然也不能配置的物理介面的虛介面上,而應該配置在loopback上。

 

dr模型的特點:
1、保證前端路由將目標地址為VIP的報文統統發往Directory,而不能是RS;

                       解決方案:

                            (1)靜態地址綁定:在前端路由器上操作

                                 問題:未必有路由操作許可權

                            (2)aprtables

                            (3)修改RS上核心參數,將RS上的VIP配置在lo介面的別名上,並限制其不能響應對VIP位址解析請求;

                   2、RS可以使用私人地址;但也可以使用公網地址,此時可通過互連網通過RIP對其直接存取;

                   3、RS跟Directory必須在同一物理網路中;

                   4、請求報文經由Director,但響應報文必須不能經過Director;

                   5、不支援連接埠映射;

                   6、RS可以是大多數常見的OS;

                   7、RS的網關絕不允許指向DIP;

實驗配置如下(共需三台主機)

1,  在虛擬機器2上

[[email protected]~]# ifconfig eth0 172.16.31.31/16 up

[[email protected]~]# route add default gw 172.16.0.1

2,  在虛擬機器3上

[[email protected] ~]# ifconfig eth0 172.16.31.32/16 up

[[email protected]~]# route add default gw 172.16.0.1

3,  在虛擬機器1上配置

[[email protected]~]# ifconfig eth0:0 172.16.31.100/16 up

[[email protected]~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:D0:61:EB 

          inet addr:172.16.31.30  Bcast:172.16.255.255  Mask:255.255.0.0

          inet6 addr:fe80::20c:29ff:fed0:61eb/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

          RX packets:5109 errors:0 dropped:0overruns:0 frame:0

          TX packets:142 errors:0 dropped:0overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:368690 (360.0 KiB)  TX bytes:12077 (11.7 KiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:D0:61:EB 

          inet addr:172.16.31.100  Bcast:172.16.255.255  Mask:255.255.0.0

          UP BROADCASTRUNNING MULTICAST  MTU:1500  Metric:1

4,  配置節點2和3上vip,在這之前要改變更配置置參數並且添加路由

[[email protected]~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[[email protected] ~]# echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore

[[email protected]~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

[[email protected] ~]# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

[[email protected] ~]# ifconfig lo:0 172.16.31.100/16 up    ----vip地址

[[email protected]~]#ifconfig lo:0172.16.32.88 netmask 255.255.255.255 broadcast 172.16.32.88 up

[[email protected] ~]#route add -host 172.16.32.88 dev lo:0

5,  配置叢集服務

[[email protected]~]# ipvsadm -A -t 172.16.31.100:80 -s rr

[[email protected]~]# ipvsadm -a -t 172.16.31.100:80 -r 172.16.31.31 -g -w 1

[[email protected] ~]# ipvsadm -a -t 172.16.31.100:80 -r172.16.31.32 -g -w 2

[[email protected] ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  ->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

TCP 172.16.31.100:80 rr

  ->172.16.31.31:80              Route   1     0          0        

  ->172.16.31.32:80              Route   2     0          0   

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/48/54/wKiom1QG6B-BoABlAAA41Br8OCc297.png" style="float:none;" title="捕獲1.PNG" alt="wKiom1QG6B-BoABlAAA41Br8OCc297.png" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/48/56/wKioL1QG6CKRIyheAAAxURusL-Y903.png" style="float:none;" title="捕獲2.PNG" alt="wKioL1QG6CKRIyheAAAxURusL-Y903.png" />









本文出自 “Linux” 部落格,請務必保留此出處http://clarence.blog.51cto.com/8161461/1548435

lvs-dr原理及配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.