lvs的nat集羣會將請求報文中的目標地址和目標端口修改成選定到的真實服務器的Ip和端口,從而實現報文的轉發。
lvs-nat集羣應用時由如下幾點注意實現:前端
1.RIP和DIP必須在同一個Ip網絡中,且應使用私網地址,RS的網關要指向DIP; 2.請求報文和響應報文必須經由Director轉發; 3.支持端口映射,可修改請求報文的目標端口; 4.director必須爲Linux系統,RS能夠爲任意系統;
此集羣類型的優勢在於RS可支持任意TCP/IP操做系統,且僅需一個合法的公網Ip便可部署。可是其缺點爲當集羣擴展到必定程度後,Director容易成爲整個集羣系統的瓶頸。算法
lvs-dr集羣是Lvs的默認模式,又稱爲Direct Routing,直接路由模式。經過爲請求報文從新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變。後端
在DR 模式下須要在 Director 和 RS 集羣綁定同一個 VIP(RS 經過將 VIP 綁定在 loopback 實現)。因爲在VIP在同一個網絡中的多臺服務器上都須要配置,所以必須對RS的ARP響應報文規則進行修改,其方式有三種:服務器
(a) 在前端網關作靜態綁定; (b) 在RS上使用arptables工具; # arptables -A IN -d $VIP -j DROP # arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP (c) 在RS上修改內核參數以限制arp通告及應答級別; echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
總的來講,DR模式在部署時有如下幾點須要注意的:網絡
1.確保前端路由器將目標Ip爲VIP的請求報文發往director; 2.RS的RIP可使用私網地址,也能夠是公網地址;RIP與DIP在同一IP網絡;RIP的網關不能指向DIP,以確保響應報文不會經由Director; 3.RS跟Director要在同一個物理網絡; 4.請求報文要經由Director,但響應不能經由Director,而是由RS直接發往Client; 5.dr模式不支持端口映射;
lvs-dr模式的優勢在於:Director只是分發請求,應答包經過單獨的路由方法返回給客戶端。與Lvs-tun相比,Lvs-dr這種實現方式不須要隧道結構,所以可使用大多數操做系統作爲物理服務器。缺點在於要求負載均衡器的網卡必須與物理網卡在一個物理段上。負載均衡
轉發方式工做,不修改請求報文的IP首部,而在源IP報文以外再封裝一個IP首部(源IP是DIP,目標IP是RIP),將報文發往挑選出的目標RealServer,RealServer直接響應給客戶端(源IP是VIP,目標IP是CIP),lvs-tun模式的優先在於Director只負責將請求包分配給對應的RS,而響應則由RS本身直接應答給客戶端,所以director再也不是瓶頸。但其缺點在於須要每一個服務器都支持Ip tunnel協議。工具
lvs-fullnat模式,即經過同時修改請求報文的源IP地址和目標IP地址進行轉發的模式。此類型的模式,默認Kernel不支持。oop