ipvsadm簡介
前端
Linux主機能夠做爲一個服務分發的設備。好比一羣服務主機向外提供相同服務,爲了讓客戶能夠訪問統一的服務入口,須要一個前端主機。拿一臺Linux設備啓動ipvsadm程序就能夠向外提供統一服務接口。算法
ipvsadm部署方式服務器
ipvsadm的部署方式有兩種:一、NAT模式 二、橋接模式ide
一、NAT模式工具
第一步:客戶端發送請求報文性能
Source IP:CIP+CPORTspa
Destination IP: VIP+VPORTrest
第二步:虛擬主機(ipvsadm)接到請求報文後進行修改接口
Source IP:CIP+CPORT圖片
Destination IP:RIP+RPORT
第三步:真實主機響應報文
Source IP:RIP+RPORT
Destination IP:CIP+CPORT
第四步:虛擬主機收到響應報文進行修改
Source IP:VIP+VPORT
Destination IP:CIP+CPORT
注意:Real Server的網關必須指向Virtual Server,由於必須保證Real Server的響應報文會被Virtual Server進行修改。
固然,因爲Virtual Server是Client和Real Server的惟一通道,因此Virtal Servre是一個性能瓶頸和故障點。
Virtual Server 支持端口映射,可是Real Server提供服務的端口必須一致。
二、橋接模式(DR)
Direct Routing
這個模型中,Virtual Server的數據口與Real Server的數據口處於同一個網段內,不像NAT的方式,Virtual Server須要兩種網口(1個用來接收請求,一個用來與Real Server通訊)。
第一步:客戶端發送請求報文
Source IP:CIP+CPORT
Destination IP: VIP+VPORT
第二步:虛擬主機將請求進行分發
Source IP:CIP+CPORT
Destination IP: VIP+VPORT
第三步:真實主機響應請求
Source IP:VIP+RPORT
Destination IP:CIP+CPORT
注意:每一個Real Server都有相同的VIP。在Real Server中,迴環接口上配置VIP
Linux有個默認規則,從哪一個網口發出去的報文,IP頭部就是哪一個網卡的IP地址。因此爲了可以讓響應報文的IP頭部是VIP,須要在Linux內部作一些處理,讓響應報文即便從真實網卡發出,可是源IP仍是VIP
Real IP和VIP,不必定是同一網段,那麼在組網的時候會有些困難,不易理解。推薦將Real IP 和 VIP劃分到相同網段上。可是這就又引出了一個問題,同一個主機上如何有兩個相同網段的IP地址。
請求報文必須先發給DR,雖然每一個服務器的VIP都同樣,這就須要經過技術手段將VIP於VMAC進行綁定。
Real Server和DR的數據通訊網段必須是同一個網段。
ipvs功能說明
實質上就是在iptables中的input鏈上增長一個處理器,根據用戶定義規則對數據包進行修改。ipvs功能與防火牆功能衝突,因此啓動了ipvs功能的主機最好不要啓用系統防火牆。ipvs在內核中的協議棧上實現。ipvs相似於一個程序,若是須要對程序規則進行改變的話就須要ipvsadmin這個管理工具。
一個ipvs主機能夠同時定義多個Cluster Service
一個ipvs服務至少須要包含一個Real Server
ipvsadmin
查看當前系統是否支持ipvs
ipvs須要經過YUM進行安裝
經過ipvsadm管理集羣服務
-A 增
-E 改 只能修改屬性,不能修改地址,若是要修改服務地址,須要刪了重作
-t TCP協議
-u UDP協議
-f firewall mark 防火牆標記 FWM
service-add 是虛擬IP+PORT
-s 指定調度算法
-D刪除
經過ipvsadm管理集羣上的Real Server
-a 添加RS
-e 編輯RS
-r 指定RS
-g gateway 默認選項 數據包的轉發方式
-i 隧道模式
-m NAT模式
-w 設置權重
經過ipvsadm查看管理的集羣
-n 以數字方式顯示
--exact 精確值顯示
-c 顯示當前IPVS的鏈接
--stats統計信息
--rate速率
經過ipvsadm清空規則
-C
經過ipvsadm保存規則
-S 調用ipvsadm-save
經過ipvsadm重載規則
-R調用 ipvsadm-restore
ipvsadm -R < /tmp/ipvsadm.policy
經過ipvsadm 清空計數器
-Z