LVS三種模型及其各自的特點:
NAT模型:
1、RS跟Director在同一子網
2、RIP使用私有地址,僅用於本地通信
3、Director工作在Clients和RS中間,負責處理進出的全部報文
1、RS跟Director在同一子網
2、RIP使用私有地址,僅用於本地通信
3、Director工作在Clients和RS中間,負責處理進出的全部報文
4、RS網關要指向DIP
5、可以實現端口映射
6、RS可以是任何操作系統
7、Director在較大規模應用中會成爲性能瓶頸
5、可以實現端口映射
6、RS可以是任何操作系統
7、Director在較大規模應用中會成爲性能瓶頸
DR模型:
1、RS跟Director必須在同一物理網上 (VIP必須是公網地址)
2、RIP可以使用公網地址
3、Director僅處理請求報文
4、RS的網關不能指向DIP
5、不能使使用端口映射
6、大多數OS都可以用於RS
7、DR模型的Director能夠處理比NAT模型多得多的請求
1、RS跟Director必須在同一物理網上 (VIP必須是公網地址)
2、RIP可以使用公網地址
3、Director僅處理請求報文
4、RS的網關不能指向DIP
5、不能使使用端口映射
6、大多數OS都可以用於RS
7、DR模型的Director能夠處理比NAT模型多得多的請求
TUN模型(隧道模型):
1、RS跟Director不必在同一物理網絡中
2、RIP一定不能使用私有地址
3、Director僅處理請求報文
4、響應報文不能經過Director
5、不能使用端口映射
6、僅允許支持隧道協議的OS用於RS
1、RS跟Director不必在同一物理網絡中
2、RIP一定不能使用私有地址
3、Director僅處理請求報文
4、響應報文不能經過Director
5、不能使用端口映射
6、僅允許支持隧道協議的OS用於RS
DR模型配置:(做實驗時所有地址要在一個網段內,否則需要添加路由設備)
實驗所用地址:
VIP:192.168.0.254(配置在網卡別名上)
RIP1:192.168.0.9(配置在lo別名上)
RIP2:192.168.0.10
director上的配置:
[root@localhost ~]# ifconfig eth0:1 192.168.0.254 broadcast 192.168.0.254 netmask 255.255.255.255
[root@localhost ~]# route add -host 192.168.0.254 dev eth0:1 定義哪個地址接受的請求必須以該地址爲源地址響應
director上的配置:
[root@localhost ~]# ifconfig eth0:1 192.168.0.254 broadcast 192.168.0.254 netmask 255.255.255.255
[root@localhost ~]# route add -host 192.168.0.254 dev eth0:1 定義哪個地址接受的請求必須以該地址爲源地址響應
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1打開路由轉發功能
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward 查看路由轉發是否打開
配置ipvsadm:
[root@localhost ~]# ipvsadm -A -t 192.168.0.254:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.0.254:80 -r 192.168.0.9 -g (-g 可以省略,默認就爲DR模型)
[root@localhost ~]# ipvsadm -a -t 192.168.0.254:80 -r 192.168.0.10 -g
[root@localhost ~]# ipvsadm -L -n查看規則
[root@localhost ~]# service ipvsadm save 保存ipvsadm配置
real server上的配置:
[root@bogon ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@bogon ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@bogon ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@bogon ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# ifconfig lo:0 192.168.0.254 broadcast 192.168.0.254 netmask 255.255.255.255
[root@localhost ~]# route add -host 192.168.0.254 dev lo:0
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward 查看路由轉發是否打開
配置ipvsadm:
[root@localhost ~]# ipvsadm -A -t 192.168.0.254:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.0.254:80 -r 192.168.0.9 -g (-g 可以省略,默認就爲DR模型)
[root@localhost ~]# ipvsadm -a -t 192.168.0.254:80 -r 192.168.0.10 -g
[root@localhost ~]# ipvsadm -L -n查看規則
[root@localhost ~]# service ipvsadm save 保存ipvsadm配置
real server上的配置:
[root@bogon ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@bogon ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@bogon ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@bogon ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# ifconfig lo:0 192.168.0.254 broadcast 192.168.0.254 netmask 255.255.255.255
[root@localhost ~]# route add -host 192.168.0.254 dev lo:0
DIP:192.168.100.10
RS1:192.168.100.11
RS2:192.168.100.12
director:
[root@localhost ~]# grep -i "vs" /boot/config-2.6.18-308.el5 查看內核是否支持ipvs
[root@localhost ~]# yum -y install ipvsadm 安裝ipvsadm
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1 打開路由轉發
[root@localhost ~]# ipvsadm -A -t 192.168.0.8:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.0.8:80 -r 192.168.100.11 -m(如果使用端口映射,在RIP後加映射的端口,否則可以不加,默認和VIP端口一樣)
[root@localhost ~]# ipvsadm -a -t 192.168.0.8:80 -r 192.168.100.12 -m
支持權重的NAT配置:
director:
[root@localhost ~]# grep -i "vs" /boot/config-2.6.18-308.el5 查看內核是否支持ipvs
[root@localhost ~]# yum -y install ipvsadm 安裝ipvsadm
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1 打開路由轉發
[root@localhost ~]# ipvsadm -A -t 192.168.0.8:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.0.8:80 -r 192.168.100.11 -m(如果使用端口映射,在RIP後加映射的端口,否則可以不加,默認和VIP端口一樣)
[root@localhost ~]# ipvsadm -a -t 192.168.0.8:80 -r 192.168.100.12 -m
支持權重的NAT配置:
示例:
[root@localhost ~]# ipvsadm -A -t 192.168.0.6:80 -s wrr
[root@localhost ~]# ipvsadm -a -t 192.168.0.6:80 -r 192.168.100.2 -w 3 -m
[root@localhost ~]# ipvsadm -a -t 192.168.0.6:80 -r 192.168.100.3 -w 3 -m
[root@localhost ~]# ipvsadm -A -t 192.168.0.6:80 -s wrr
[root@localhost ~]# ipvsadm -a -t 192.168.0.6:80 -r 192.168.100.2 -w 3 -m
[root@localhost ~]# ipvsadm -a -t 192.168.0.6:80 -r 192.168.100.3 -w 3 -m
在realserver上的配置同DR模型,請參考DR模型的配置
LVS持久連接類型:
PCC 持久客戶端連接,將同一個客戶端的所有服務請求都定義到一個RS上
PPC 只持久一種服務連接
PFWM 持久防火牆標記,將指定的數種服務定義到一個RS上
LVS持久連接的實現:
PCC 持久客戶端連接,將同一個客戶端的所有服務請求都定義到一個RS上
PPC 只持久一種服務連接
PFWM 持久防火牆標記,將指定的數種服務定義到一個RS上
LVS持久連接的實現:
在DR模型的基礎上修改ipvs即可:
[root@localhost ~]# ipvsadm -E -t 192.168.0.6:80 -s rr -p(PPC類型)
使用PCC:
將VIP後的端口號改爲0即可
例如:[root@localhost ~]# ipvsadm -A -t 192.168.0.6:0 -s wrr -p 使用持久連接模型時後面必須加-p
PFWM的配置:
[root@localhost ~]# iptables -t mangle -A PREROUTING -d 192.168.0.66 -p tcp --dport 80 -j MARK --set-mark 1
[root@localhost ~]# iptables -t mangle -A PREROUTING -d 192.168.0.66 -p tcp --dport 443 -j MARK --set-mark 1
[root@localhost ~]# ipvsadm -A -f 1 -s rr
[root@localhost ~]# ipvsadm -a -f 1 -r 192.168.0.2 -g
[root@localhost ~]# ipvsadm -a -f 1 -r 192.168.0.3 -g
[root@localhost ~]# ipvsadm -E -f 1 -s rr -p 修改爲長連接
隧道模型配置和DR模型配置方法類似,但director和realserver可以再不同的網絡,且RIP必須使用公網地址,配置方法請參照DR模型的配置
以上內容爲個人實驗大致步驟,僅供參考