企業級負載均衡集羣LVS—NAT模式
1. 什麼是NAT模式
NAT模式:網絡地址轉換模式
LVS-NAT模式特點:
- 在一組服務器前有一個調度器,它們是通過Switch/HUB相連接的。這些服務器提供相同的網絡服務、相同的內容,即不管請求被髮送到哪一臺服務器,執行結果是一樣的。
- RS的網關必須指向DIP
- DIP和RIP必須在同一個網段內
- 請求和響應報文都需要經過Director Server。高負載場景中,Director Server易稱爲性能瓶頸
- RS可以使用任意操作系統
優缺點:
- VS/NAT 的優點是服務器可以運行任何支持 TCP/IP 的操作系統,它只需要一個 IP 地址配置在調度器上,服務器組可以用私有的 IP 地址。
- 缺點是它的伸縮能力有限, 當服務器結點數目升到 20 時,調度器本身有可能成爲系統的新瓶頸,因爲在 VS/NAT 中請求和響應報文都需要通過負載調度器。
2. 配置實驗環境
在這個實驗中需要給server1加一塊網卡,配置一個不同網段的ip:
注意:這個“不同網段的的ip”是和server1 2 3的原ip不同網段,但是是真機的另一個網段,否則無法測試。
ip addr add 172.25.0.1/24 dev eth1
ip link set up eth1
在server2和server3中添加網關:
網關指向server1的ip,因爲NAT模式下數據包的走向是原路返回,要帶着返回的數據包經過調度器回到客戶端。
route add default gw 172.25.254.1
systemctl restart network
route -n
3. 打開內核路由功能
在server1中打開內核的路由功能:
- sever1收到客戶端請求後,得到一個公網的ip,跟目的主機server2和server3不在一個網段
- 所以如果想要將客戶端來的數據包轉發給後端服務器,那麼必須對這個數據包進行ip轉換,再進行數據包轉發。
- 出於安全考慮,Linux系統默認是禁止數據包轉發的。配置Linux系統的ip轉發功能,首先保證硬件連通,然後打開系統的轉發功能
sysctl -a | grep ip_forward
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
systemctl restart network
sysctl -a | grep ip_forward
4. 添加調度策略
在server1中:
ipvsadm -C
ipvsadm -A -t 172.25.0.1:80 -s rr
ipvsadm -a -t 172.25.0.1:80 -r 172.25.254.2:80 -m
ipvsadm -a -t 172.25.0.1:80 -r 172.25.254.3:80 -m
ipvsadm -ln
5. 測試
curl 172.25.0.1