linux中LVS的簡單實現

LVS三種模型及其各自的特點:
NAT模型:
1、RS跟Director在同一子網
2、RIP使用私有地址,僅用於本地通信
3、Director工作在Clients和RS中間,負責處理進出的全部報文
4、RS網關要指向DIP
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模型多得多的請求
TUN模型(隧道模型):
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 定義哪個地址接受的請求必須以該地址爲源地址響應
  [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
在瀏覽器中輸入http://192.168.0.254可以驗證配置是否正常
 
 
NAT模型配置:
 VIP:192.168.0.8 
 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配置:
 示例:
  [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持久連接的實現:

  在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模型的配置
 
以上內容爲個人實驗大致步驟,僅供參考
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章