1. 程式人生 > >部署LVS--DR實踐

部署LVS--DR實踐

部署lvs-dr實踐

準備環境

DR1  10.220.5.192
WEB1 10.220.5.190
WEB2 10.220.5.191
VIP  10.220.5.233

實現思路
DR1上安裝lvs,並配置排程規則和演算法
web1 web2上只需要安裝web伺服器,並分別準備一個測試頁面

安裝步驟

一、安裝各種依賴

[[email protected] ~]# yum install libnl* popt* kernel-devel ipvsadm -y

二、給安裝的核心開發庫做連線

[[email protected] ~]# ln -sv /usr/src/kernels/2.6.32-754.el6.x86_64/ /usr/src/linux
(如果這裡不做連線,那麼在使用ipvsadm的時候,需要手動指定/usr/src/kernels/2.6.32-754.el6.x86_64/)

三、安裝lvs

[[email protected] ~]# yum install ipvsadm -y 

說明:lvs主要檔案說明
/etc/rc.d/init.d/ipvsadm:sysV風格服務管理指令碼
/etc/sysconfig/ipvsadm-config:配置檔案
/sbin/ipvsadm:用於配置lvs規則的工具
/sbin/ipvsadm-restore:恢復或者讀取規則到記憶體的工具
/sbin/ipvsadm-save:儲存記憶體中的規則的工具
【預設情況下,所配置的規則都是儲存在記憶體中的】

ipvsadm的使用格式
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [–pe persistence_engine]

-A:新增一個虛擬服務(新增vip)
-E:編輯修改一個虛擬服務
-D:刪除虛擬服務
-C:清空規則表
-R:從標準輸入恢復規則表
--save|-S:將當前記憶體中的規則儲存到標準輸出

-a:指定在虛擬服務中新增RS節點
-e:指定在虛擬服務中編輯修改RS節點
-d:指定在虛擬服務中刪除RS節點

-L|-l:顯示lvs中的規則表
-Z:將計數器清零

-t service-address[:port]:該規則是對tcp協議的請求做排程
-u service-address[:port]:該規則是對udp協議的請求做排程
-f:表示這個請求是經過iptables所標記過的服務型別
-r: 指定真實伺服器的地址
-s scheduler:指定該規則要用的排程演算法(rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)
-p [time]:指定在多次時間以內,將相同的客戶端排程到相同的後端節點之上,預設時間300s
-w:設定RS節點的權重
-g:指定用DR模式(預設)
-i:指定用tunnel模式
-m:指定用nat模式

###############配置LVS(DR)######################

配置DR1

一、新增一個vip

[[email protected] ~]# ifconfig eth0:0 10.220.5.233/24 up

測試vip是否可用,測試方法:從windows ping vip

二、在lvs中新增一個虛擬服務(vip)

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

檢視一下所建立的虛擬服務
[[email protected] ~]# service ipvsadm status
	IP Virtual Server version 1.2.1 (size=4096)
	Prot LocalAddress:Port Scheduler Flags
	  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
	TCP  10.220.5.233:80 rr persistent 80

三、在虛擬服務中新增真實伺服器

[[email protected] ~]# ipvsadm -a -t 10.220.5.233:80 -r 10.220.5.190:80 -w 1 -g
[[email protected] ~]# ipvsadm -a -t 10.220.5.233:80 -r 10.220.5.191:80 -w 1 -g

檢視一下RS的資訊
[[email protected] ~]# service ipvsadm status
	IP Virtual Server version 1.2.1 (size=4096)
	Prot LocalAddress:Port Scheduler Flags
	  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
	TCP  10.220.5.233:80    rr        persistent 80
	  -> 10.220.5.190:80              Route   1      0          0         
	  -> 10.220.5.191:80              Route   1      0          0     

四、儲存規則

[[email protected] ~]# service ipvsadm save

檢視狀態
[[email protected] ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  10.220.5.233:80                     0        0        0        0        0
  -> 10.220.5.190:80                     0        0        0        0        0
  -> 10.220.5.191:80                     0        0        0        0        0

#####################配置RS#############################

一、安裝配置web服務

二、給RS繫結VIP【所有的RS都需要做】

[[email protected] ~]# ifconfig lo:0 10.220.5.233/32 up

三、在RS做ARP抑制

【設定不對某些arp請求做應答】
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore 
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce 
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce 

#####################測試#############################

預設規則儲存路徑;/etc/sysconfig/ipvsadm

關於arp抑制(瞭解)
作用:設定不對某些arp請求做應答
實現原理:修改核心引數 /proc/sys/net/ipv4/conf/

控制方式1:arp_ignore
0:預設,表示的當該主機收到arp請求,只有該主機有所請求的哪個IP地址,就會給對方做成應答
1:只對哪些請求的目標IP是當前主機的網絡卡介面(這個介面就是插著網線的介面)上的地址的時候,才會做出應答

控制方式2:arp_announced
作用:限制當前主機做arp應該的條件(也就是限制當用戶所請的ip是哪個IP的時候,才做arp應答)
0:預設值,表示在任意網路介面上的IP都可以做arp應答
1:優先使用本地的介面做arp應答
2:優先使用子介面做arpm應答