一般來說,常見的linux系統都已經安裝了(用的幾個作業系統中,只有suse不包含)。
[root@localhost network-scripts]# modprobe -l |grep ip_vs
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko
[root@localhost network-scripts]#
建議使用yum來安裝。當然用ipvsadm的原始碼包安裝也行。
安裝完成後,可以執行ipvsadm試一下,看是否安裝成功
其中192.168.100.x 為client所在的ip段(記為外網ip)。 192.168.0.x為real server所在的ip段(記為內網ip)
並且從192.168.0.x到192.168.100.x不存在路由。說簡單一點,就是無法ping通
1)tcp配置:
echo 1 > /proc/sys
/net/ipv4/ip_forward
2) ipvsadm配置
[root@linux128 ~]# ipvsadm
-a-t 192.168
.100
.132
:18471
-srr
[root@linux128 ~]
#ipvsadm
-a-t 192.168
.100
.132
:18471
-r 192.168
.0.220
:18471
-m[root@linux128 ~]
#ipvsadm
-a-t 192.168
.100
.132
:18471
-r 192.168
.0.221
:18471
-m
修改預設閘道器
[root@hadoop221 ~]# route add default gw 192.168.0.142 dev eth0
[root@hadoop221 ~]# route
因為lvs會修改訊息的mac位址,因此我們首先記錄一下各個節點ip的mac位址
ip位址
mac位址
192.168.100.130
00:0c:29:a8:47:d9
192.168.100.132
00:0c:29:79:62:ea
192.168.0.142
00:0c:29:79:62:e0
192.168.0.220
00:0c:29:56:91:d2
以syn訊息分析它的過程,其訊息流程如下:
1) 首先客戶端192.168.100.130向lvs的外網ip :192.168.100.132傳送乙個syn訊息
2) lvs收到這個syn訊息後,會將它**給內網的220
與客戶端傳送訊息相比。有幾個明顯的變化。
- destination的ip位址變成了192.168.0.220
- src與destination的mac位址也變化了。 查一下上面的ip與mac的對照表,可以看出來,source 的mac位址對應提192.168.0.142,而destination mac位址對應的ip為192.168.0.220
從這裡可以看出來。lvs在這裡將destination的ip與mac位址都修改了。
3) 因為lvs將syn訊息的destination的ip與mac位址都做了修改。因此real server 192.168.0.220此時收到syn訊息都被修改後的訊息
4)當real server收到syn訊息後,會回乙個syn ack的訊息。此時訊息能夠正常回到lvs的保證就是我們之前設定的route add default gw 192.168.0.142 dev eth0
我們檢視一下220的route表:
[root@hadoop220 ~]# route
kernel ip routing table
destination gateway genmask flags metric ref use iface
192.168
.0.0 * 255.255
.255
.0 u 1
00 eth0
default
192.168
.0.142
0.0.0
.0 ug 0
00 eth0
這裡說明一下,因為syn訊息的source ip沒有被修改,假如此時從192.168.0.220到192.168.100.x存在路由,那麼syn ack訊息將不會走default閘道器,那會導致client無法正常收到訊息。因此一定要保證192.168.0.220到192.168.100.x無法ping通
5) lvs收到訊息後,會將之前修改的mac 與ip位址修改回去。 對比一下lvs收到的ack訊息與client收到ack訊息:
配置LVS NAT模式
三颱伺服器,一台作為 director,兩台作為 real server,director 有乙個外網網絡卡 192.168.0.186 和乙個內網ip 172.16.0.8 兩個 real server 上只有內網 ip 172.16.0.20 和 172.16.0.21 並且需要把兩個 real...
負載均衡 LVS NAT 模式配置參考
參考 一 環境說明 作業系統 centos 6.7 x86 64 核心版本 2.6.32 573.15.3.el6.x86 64 相關伺服器 1 臺客戶端伺服器 1 臺負載均衡伺服器 2 台後端真實伺服器 模擬負載均衡排程 使用 oracle vm virtualbox,四台虛擬機器 客戶端 192...
LVS NAT模式簡介
lvs 簡稱 linux virtual server,在實際環境中經常作為b s結構的網路應用中的負載均衡器來使用,工作在7層網路模型中的,網路層,也就是通常說的ip層,由於資料的處理是在linux核心態完成的,所以效能很高,比起 apache,nginx,haproxy來說,效能不在乙個級別。這...