部署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應答