LVS NAT 模式搭建

1、負載均衡介紹html

一、簡單說就是讓多臺服務器均衡的去承載壓力。實現負載均衡的開源軟件有LVS,keepalived,haproxy,Nginx等,商業的有F5,NetScaler.nginx

2、LVS介紹算法

一、LVS是一款四層的負載均衡軟件,是針對TCP/IP作的轉發和路由,因此穩定性和效率至關高。核心角色是調度器,用來分發用戶的請求,還有處理用戶服務的服務器vim

二、LVS根據實現方式不一樣:有NAT模式,IP Tunnel 模式 ,DR模式。後端

三、NAT模式:調度器把用戶的請求經過預設的iptables規則轉發給後端真實服務器。調度器會有一個公網IP,一個內網IP,真實服務器只有內網IP,用戶訪問的時候請求的是調度器的公網IP,會把用戶的請求轉到真實服務器的內網IP上,該模式節省公網IP,可是調度會成爲一個瓶頸。bash

四、IP Tunnel 模式:須要一個公共的IP配置在分發器和全部realserver上,稱之爲vip.,客戶請求數據包,目標地址VIP發送到LB上。LB接收到客戶請求包,進行IP Tunnel封裝。即在原有的包頭加上IP Tunnel的包頭。而後發送出去。RS節點服務器根據IP Tunnel包頭信息(此時就又一種邏輯上的隱形隧道,只有LB和RS之間懂)收到請求包,而後解開IP Tunnel包頭信息,獲得客戶的請求包並進行響應處理。響應處理完畢以後,RS服務器使用本身的出公網的線路,將這個響應數據包發送給客戶端。源IP地址仍是VIP地址.服務器

五、DR模式:和IP Tunnel 模式方法相同,用戶的請求被調度器動態的分配到真實服務器上,真實服務器響應請求把結果直接返回給用戶,在這種模式下不會封裝IP,而是將數據幀的MAC地址改成真實服務器的MAC地址。負載均衡

3、LVS的調度算法測試

一、輪詢調度(Round Robin)ui

二、帶權重的輪詢調度(Weighted Round Robin)

三、最小鏈接調度(Least Connections)

四、帶權重最小鏈接(Weighted Least Connections)

五、基於局部性的最小連接(Locality-Based Least Connections)

六、帶複製的基於局部性最小連接(Locality-Based Least Connections with Replication)

七、目標地址散列調度(Destination Hashing)

八、源地址散列調度(Source Hashing)

4、LVS NAT 模式搭建

一、設置調度器(dir) 192.168.134.130(內網IP)   192.168.150.128(公網IP),須要設置爲僅主機模式。

     RS1:192.168.134.150    RS2:192.168.134.131

二、三臺機器上都關閉防火牆  首先安裝 iptables-service

systemctl stop firewalld
systemctl disable firewalld

iptables -F 

service iptables save

三、設置RS1 和RS2 的網關 192.168.134.130  編輯  vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改 :GATEWAY=192.168.134.130 

而後: service network restart

 

四、在dir上安裝 ipvsadm

yum install -y ipvsadm

五、在dir編寫配置腳本  vim /usr/local/sbin/lvs_nat.sh

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.134.0/24 -j MASQUERADE
IPVSADM= '/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.150.128:80 -s wlc -p 300
$IPVSADM -a -t 192.168.150.128:80 -r 192.168.134.150:80 -m -w 1
$IPVSADM -a -t 192.168.150.128:80 -r 192.168.134.131:80 -m -w 1
六、爲了方便區分RS1和RS2,給131和150設置不一樣的主頁。編輯  vim /usr/share/nginx/html/index.html 
設置爲 rs1 和 rs2 ,而後啓動nginx :  systemctl start nginx
 
  七、測試,先運行lvs_nat.sh
發現一直請求到rs1上,這是由於腳本中設置了-p 參數,理論上300秒內都會訪問到同一個服務上。

$IPVSADM -A -t 192.168.150.128:80 -s wlc -p 300  修改成  $IPVSADM -A -t 192.168.150.128:80 -s wlc

 

能夠發如今rs1 和 rs2 之間來回訪問,作到了負載均衡。

相關文章
相關標籤/搜索