LVS的簡介和配置

lvs分為3種模式 :
1:
lvs-nat:
本質是多目標IP的DNAT,通過將請求報文中的目標地址和目標端口修改為某挑出的RS的RIP和PORT實現轉發
(1)RIP和DIP必須在同一個IP網絡,且應該使用私網地址;RS的網關要指向DIP
(2)請求報文和響應報文都必須經由Director轉發,Director易于成為系統瓶頸
(3)支持端口映射,可修改請求報文的目標PORT
(4)VS必須是Linux系統,RS可以是任意OS系統

2:LVS-DR模式
?LVS-DR:Direct Routing,直接路由,LVS默認模式,應用最廣泛,通過為請求報文重新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變
?Director和各RS都配置有VIP
(1) 確保前端路由器將目標IP為VIP的請求報文發往Director
?在前端網關做靜態綁定VIP和Director的MAC地址
?在RS上使用arptables工具
arptables-A IN -d $VIP -j DROP
arptables-A OUT -s $VIP -j mangle –mangle-ip-s $RIP
?在RS上修改內核參數以限制arp通告及應答級別
arp_announce
arp_ignore
(2) RS的RIP可以使用私網地址,也可以是公網地址;RIP與DIP在同一IP網絡;RIP的網關不能指向 DIP,以確保響應報文不會經由Director
(3) RS和Director要在同一個物理網絡
(4) 請求報文要經由Director,但響應報文不經由Director,而由RS直接發往Client
(5) 不支持端口映射(端口不能修敗)
(6) RS可使用大多數OS系統

3
?lvs-tun:
轉發方式:不修改請求報文的IP首部(源IP為CIP,目標IP為VIP),而在原IP報文之外再封裝一個IP首部(源IP是DIP,目標IP是RIP),將報文發往挑選出的目標RS;RS直接響應給客戶端(源IP是VIP,目標IP是CIP)
(1) DIP, VIP, RIP都應該是公網地址
(2) RS的網關不能,也不可能指向DIP
(3) 請求報文要經由Director,但響應不能經由Director
(4) 不支持端口映射
(5) RS的OS須支持隧道功能

4

種lvs負載 均衡技術優缺點下表:

clipboard2

命令 :
ipvsadm命令
?管理集群服務:增、改、刪
?增、改:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
?刪除:
ipvsadm-D -t|u|fservice-address
?service-address:
-t|u|f:
-t: TCP協議的端口,VIP:TCP_PORT
-u: UCP協議的端口,VIP:UDP_PORT
-f:firewall MARK,標記,一個數字
?[-s scheduler]:指定集群的調度算法,默認為wlc
有兩種命令選項格式,長的和短的,具有相同的意思。在實際使用時,兩種都可
以。
-A –add-service 在內核的虛擬服務器表中添加一條新的虛擬服務器記錄。也
就是增加一臺新的虛擬服務器。
-E –edit-service 編輯內核虛擬服務器表中的一條虛擬服務器記錄。
-D –delete-service 刪除內核虛擬服務器表中的一條虛擬服務器記錄。
-C –clear 清除內核虛擬服務器表中的所有記錄。
-R –restore 恢復虛擬服務器規則
-S –save 保存虛擬服務器規則,輸出為-R 選項可讀的格式
-a –add-server 在內核虛擬服務器表的一條記錄里添加一條新的真實服務器
記錄。也就是在一個虛擬服務器中增加一臺新的真實服務器
-e –edit-server 編輯一條虛擬服務器記錄中的某條真實服務器記錄
-d –delete-server 刪除一條虛擬服務器記錄中的某條真實服務器記錄
-L|-l –list 顯示內核虛擬服務器表
-Z –zero 虛擬服務表計數器清零(清空當前的連接數量等)
–set tcp tcpfin udp 設置連接超時值
–start-daemon 啟動同步守護進程。他后面可以是master 或backup,用來說
明LVS Router 是master 或是backup。在這個功能上也可以采用keepalived 的
VRRP 功能。
–stop-daemon 停止同步守護進程
-h –help 顯示幫助信息
其他的選項:
-t –tcp-service service-address 說明虛擬服務器提供的是tcp 的服務
[vip:port] or [real-server-ip:port]
-u –udp-service service-address 說明虛擬服務器提供的是udp 的服務
[vip:port] or [real-server-ip:port]
-f –fwmark-service fwmark 說明是經過iptables 標記過的服務類型。
-s –scheduler scheduler 使用的調度算法,有這樣幾個選項
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
默認的調度算法是: wlc.
-p –persistent [timeout] 持久穩固的服務。這個選項的意思是來自同一個客
戶的多次請求,將被同一臺真實的服務器處理。timeout 的默認值為300 秒。
-M –netmask netmask persistent granularity mask
-r –real-server server-address 真實的服務器[Real-Server:port]
-g –gatewaying 指定LVS 的工作模式為直接路由模式(也是LVS 默認的模式)
-i –ipip 指定LVS 的工作模式為隧道模式
-m –masquerading 指定LVS 的工作模式為NAT 模式
-w –weight weight 真實服務器的權值
–mcast-interface interface 指定組播的同步接口
-c –connection 顯示LVS 目前的連接 如:ipvsadm -L -c
–timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L –timeout
–daemon 顯示同步守護進程狀態
–stats 顯示統計信息
–rate 顯示速率信息
–sort 對虛擬服務器和真實服務器排序輸出
–numeric -n 輸出IP 地址和端口的數字形式

5、配置ipvsadm服務
????? 備注:以下步驟分別按照LVS的三種包轉發方式進行配置
???? 實驗環境如下:
?????lvsserver???????? ?? 192.168.1.49(eht0)???? vip: 192.168.1.40 8.8.8.8(nat模式下)
?????serverA???????? ??? 192.168.1.46(eth0)
?????serverB???????????? 192.168.1.47(eth0)
??????
1、vs/nat模式下各服務器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0?
ifconfig eht1 8.8.8.8 netmask 255.255.255.0
(注:由于nat模式需要兩塊真實網卡,所以又額外加了一塊網卡? ,此網卡的IP地址同時也是VIP的地址)
vi ipvsadm.sh (創建腳本文件)
————————————————————————————————————————————————————-
#!/bin/bash
echo 1?> /porc/sys/net/ipv4/ip_forward?? (開啟路由功能)
ipvsadm -C????? (清除之前的轉換表)
ipvsadm -At 8.8.8.8:80 -s rr?? (指定帶有調度算法轉換的服務器)
ipvsadm -at 8.8.8.8:80 -r 192.168.1.46:80 -m? (增加一臺真實服務器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 8.8.8.8:80 -r 192.168.1.47:80 -m

#chmod u+x ipvsadm.sh? (增加可執行權限)

——————————————————————————————————————————————————————
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此網關是lvsserver的eth0的IP地址)
service httpd start??? (開啟測試用的web服務)
echo?‘192.168.1.46’ > /var/www/html/index.html???? (制作測試用的html網頁)
——————————————————————————————————————————————————————-
serverB配置如下:
ifconfig eth0 192.168.1.47 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此網關是lvsserver的eth0的IP地址)
service httpd start??? (開啟測試用的web服務器
echo?‘192.168.1.47’ > /var/www/html/index.html???? (制作測試用的html網頁)

——————————————————————————————————————————————————————–
2、vs/tun模式下各服務器的配置?
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(注:tun 模式下只需要一塊物理網卡,可將eth1網卡禁用)
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up
(注:tunlo接口配置的地址為vip地址)? ???
route add -host 192.168.1.40 dev tunlo ???
vi ipvsadm.sh (創建腳本文件)
——————————————————————————————————————————————————————- ? ? ? ??
#!/bin/bash
ipvsadm -C????? (清除之前的轉換表)
ipvsadm -At 192.168.1.40:80 -s rr?? (指定帶有調度算法轉換的服務器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -i? (增加一臺真實服務器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -i

#chmod u+x ipvsadm.sh? (增加可執行權限) ? ?
#./ipvsadm.sh
———————————————————————————————————————————————————————– ? ? ? ? ? ? ? ? ?
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up??
route add -host 192.168.1.40 dev tunlo?????
vi arp.sh (創建腳本文件) ??

#!/bin/bash
echo “1” > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
———————————————————————————————————————————————————————–
serverB配置同severA一樣
———————————————————————————————————————————————————————–
3、vs/dr模式下各服務器的配置?
lvsserver配置如下:
ifconfig eth0 192.168.1.49 netmsk 255.255.255.0
(注:dr 模式下只需要一塊物理網卡,可將eth1網卡禁用)
ifconfig eth0:0 192.168.1.40 netmask 255.255.255.255 up
(注:eth0:0接口配置的地址為vip地址)? ???
route add -host 192.168.1.40 dev eth0:0
vi ipvsadm.sh (創建腳本文件)
———————————————————————————————————————————————————————-
#!/bin/bash
echo 1?> /proc/sys/net/ipv4/ip_forward?? (開啟路由功能)
ipvsadm -C????? (清除之前的轉換表)
ipvsadm -At 192.168.1.40:80 -s rr?? (指定帶有調度算法轉換的服務器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -g (增加一臺真實服務器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -g

#chmod u+x ipvsadm.sh? (增加可執行權限)?
./ipvsadm.sh
———————————————————————————————————————————————————————– ?
serverA配置如下:
?ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig lo:0 192.168.1.40 netmask 255.255.255.255 up? (在lo接口上增加vip地址)
?route add -host 192.168.1.40 dev lo:0 (增加到環回接口的路由)
?vi arp.sh (創建腳本文件) ??

#!/bin/bash
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?????
#chmod u+x arp.sh? (增加可執行權限)?
#./arp.sh?
———————————————————————————————————————————————————————– ???
serverB配置和serverA一樣
———————————————————————————————————————————————————————–
? 測試:1、顯示LVS 目前的連接?
???????????? 如:ipvsadm -L -c ???ipvsadm -L –stats

2、將46和47的WEB服務啟用。直接輸入vip的地址不停的刷新你將會看到不同頁面的切換

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88031

(1)
oranixoranix
上一篇 2017-10-23
下一篇 2017-10-23

相關推薦

  • 軟件包管理

      軟件運行環境       API:Application Programming Interface         POSIX :Portable OS      碼程序源代碼 –>預處理 –> 譯…

    Linux干貨 2016-08-29
  • 多實例

    多實例

    Linux干貨 2018-01-29
  • 馬哥linux2014|2015全套教程

    1、本課程全程將基于集成了Openstack云環境、支持高精度時間(PTP)及虛擬化性能大大提升的RHEL 6.5或CentOS 6.6,間或介紹CentOS 7系統的使用; 2、此文章給出的只是個課程知識點框架,實際講解過程相當精細;另外,知識點講授的次序未必同此文章所標示的順序相同; 3、第15期面授班定于2015年3月24號開課;本期將會是馬哥教育數年…

    Linux干貨 2015-07-14
  • Linux系統啟動基本流程

    Linux開機流程 如下圖 00×01、BISO自檢     硬件檢查,檢查硬件完整性,之后從開機BIOS開機硬件列表選擇BOOT設備     2. 00×02、MBR引導     從bootloader446…

    2017-07-09
  • ansible學習筆記

    簡介:  在日常服務器維護中,從系統安裝到程序部署再到發布應用,在大規模的生產環境中,如果需要手動的每臺服務器進行安裝配置將會給運維人員帶來許多繁瑣而又重復的工作。這就促使了在每個運維層次中出現了不同的自動化運維工具。 常見的自動化運維工具分類有以下幾類:  系統安裝運維工具(OS Provisioning):    …

    Linux干貨 2015-08-17
  • 初學正則表達式

      前言:     在學正則表達式之前,有小伙伴講解說,正則表達式在文本處理上功能非常強大、使用非常普遍,并且現在很多的工具軟件都支持它,以后的學習工作中會經常使用,非常靈活,但是靈活的同時又是繁瑣,需要小心翼翼的仔細推敲。抱著認真、好奇的心思聽完了王老的課。我自己理解的正則表達式是,給一些符號賦予一定的涵義…

    Linux干貨 2016-08-12
欧美性久久久久