Linux叢集–簡單實現LVS-DNAT及LVS-DR

來源:互聯網
上載者:User

LVS-DNAT

 

工作原理:

在資料包進入本機內部之前,就改變它的目的地址(需要在核心實現)

 

LVS的工作機制類似iptables,一部分工作在使用者空間(ipvsadm),一部分工作在核心空間

安裝ipvsadm軟體就足以實現LVS的功能

 

使用ipvsadm,早期需要重新編譯核心,不過現在版本的redhat預設直接做進核心

# 查看核心是否含有ipvs

grep –I –c 5 ipvs /boot/config-‘uname -r’ 

 

 

ipvsadm命令的使用:

ipvsadm功能

1:定義叢集服務

   2:定義真正的REALSERVER

   3:查看定義的資訊

  

1.定義叢集服務

ipvsadm

-t        基於tcp的叢集服務

-u        基於udp

-f        基於firewall的叢集服務,防火牆的類型

-A       添加一個新叢集

-E       修改一個叢集

-s        指定演算法 預設 wlc

         -D               刪除一個叢集

         -g|i|m     gateway|internet|net  DR|TUN|DNAT模型

         -w        權重

         -C        清空規則

         -S               儲存規則到某個檔案

   -R               從某個檔案恢複規則

         -L|l       查看

        -n --numeric    數字方式顯示地址

                      --stats        顯示統計的資料資訊(statistics的簡寫)

          --rate         顯示速率資訊

         -Z        清空計數器

 

添加/刪除director端

ipvsadm -A| -E -t |-u VIP:port -s 

ipvsadm -D -t|-u VIP:port

 

添加/刪除realserver端

ipvsadm -a |-e -t|-u VIP:port -r REALSERVER[-g|-i|-m] [-w weight]

ipvsadm -d -t|-u VIP:port -r READSERVER

 

 

配置安裝LVS

1.安裝OS

2.後方安裝apache

3.設定預設路由

4.安裝lvs

5.配置LVS,定義好規則

6.做測試

 

 

1.兩個apache作為realserver 只提供靜態頁面

2.Directory開啟轉寄功能

3.兩個realserver處於同一個網段

 

準備:

1)      3台乾淨的虛擬機器:RS1 RS2  Director (需要加一塊網卡)

2) 配置各自的好yum源

 

一:配置好地址,安裝軟體

realserver端:

ifconfig eth0 10.0.0.11/8

route add default gw 10.0.0.1/8

yum install httpd php php-mysql mysqlmysql-server php-mbstring -y

# 測試網頁是否顯示

vim /var/www/html/index.html

realserver1

service httpd start

elinks http://10.0.0.11

 

directory端:

ifconifg eth0 10.0.0.1/8

yum install ipvsadm

 

 

# 開啟ipforward

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

 

#添加director

ipvsadm -A -t 172.16.14.1:80 -s rr

# 查看叢集服務

ipvsadm -L -n     

#添加realserver

ipvsadm -a -t 172.16.14.1:80 -r 10.0.0.11-m

ipvsadm -a -t 172.16.14.1:80 -r 10.0.0.12-m

ipvsadm -L -n

 

叢集已經構建好了。。。。用瀏覽器測試下

 

# 壓力測試,十個並發串連,發起10000次

ab -c 10 -n 10000 http://172.16.14.1/index.html

# 查看結果

ipvsadm -Ln 

# 使用加權最少串連

ipvsadm -E -t 172.16.14.1:80 -s wlc

# 修改權重

ipvsadm -e -t 172.16.14.1:80 -r 10.0.0.11-m -w 3

 

# 壓力測試,十個並發串連,發起10000次

ab -c 10 -n 10000http://172.16.14.1/index.html

 

# 換別的演算法來測試,看看效果  單引號

watch -n 1 ‘ipvsadm -L -n’

 

# 儲存ipvsadm 結果,否則開機就沒有了

# 對於redhat

service ipvsadm save

chkconfig ipvsadm on

# 或者

ipvsadm -S > /etc/sysconfig/ipvsadm

##########建議自己寫指令碼實現,save的功能,最好帶startstop restart

 

 

 

==========================================================================

LVS-DR

 

工作原理

通過設定核心參數,禁止RS直接響應使用者請求,既將RS都隔離起來,只允許它們響應DR轉寄過來的請求。

 

使用LVS-DR 前提:

核心有 arp_announce 和 arp_ignore

arp_annouce 定義通過哪個地址向別人通告本地MAC-ip對應資訊所定義的限制層級

 

0  表示響應任意本地地址,任何介面(IP地址屬於核心而不是網卡)

1  儘可能的避免用和來源主機的IP地址非同一個網路的地址響應它

2  總是用本地的最佳地址給予響應(同一個網段)

 

arp_ignore    定義回應程式式和類型

0  無論地址放在任何地方都響應

1  只有在所請求的地址和請求所進來的介面一致(既進來的介面和請求的地址是同一個網段)的時候才響應

 

 

想想一下 arp_ignore=1  arg_annouce=2

 

 

伺服器拒絕響應2.2

 

解決資料進入:

為了避免RS直接響應,給伺服器的lo:0設定VIP地址,給本地網卡設定成CIP,這樣RS就不會直接響應了,隱藏了RS

解決資料出去:

而預設情況下,Linux設定資料包從哪塊網卡出去,源地址設為該網卡地址,通過添加一條特殊路由資訊,如果目標地址是lo的VIP地址,那麼出去的時候源地址設定為lo的地址。

路由資訊的原理:

添加一條主機路由,將VIP的地址自己設定成一個網段,既子網路遮罩為255.255.255.255,這樣VIP出去的時候沒有比VIP更優的了,就成為最佳IP

 

 

相關網路規劃如下:

 

需要配置:

1.Lo設為VIP

2.修改核心參數

3.添加特殊路由

 

 

配置LVS-DR須注意:

1.設定網卡模式為橋接

2.RIP地址不一定必須是公網地址

 

 

一、設定網卡

Director端

1.DIP配置在介面上,VIP要配置在介面別名上

# director ,一步到位,否則需要重啟網路服務

ifconfig eth0:0 172.16.14.1 broadcast172.16.14.1 netmask 255.255.255.255 up          # VIP

ifconfig eth0 172.16.14.10      # DIP

 

VIP應該設定在別名地址上,DIP設定在靜態地址上,所有VIP設定在eth0:0

 

 

RS端

DIP 要配置在介面上,VIP要配置在lo的別名上

 

ifconfig eth0 172.16.14.11    # RIP

 

# 配置核心參數,禁止響應對VIP的ARP廣播請求

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

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

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

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

 

# 此時設定VIP,就不會和director衝突

# 255.255.255.255 自閉

# VIP 只向自己廣播

ifconfig lo:0 172.16.14.1 broadcast172.16.14.1 netmask 255.255.255.255 up

 

# 增加路由資訊,所有出去的資訊都以dev的資訊為準

route add -host 172.16.14.1 dev lo:0

route -n

 

所有的RS都要設定

 

二.配置ipvsadm

ipvsadm -C    # 去掉上次的

ipvsadm -A -t 172.16.14.1:80 -s wlc

ipvsadm -a -t 172.16.14.1:80 -r172.16.14.11 -g w 2

ipvsadm -a -t 172.16.14.1:80 -r172.16.14.12 -g w 4

ipvsadm -L -n

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.