LVS-DR模型實驗

回顧之前學的知識:

[root@lvs-lvs ~]# ipvsadm -Ln查看ipvsadm規則(-n表示以數字方式顯示,不解析)

lvs是四層的,不能做到hash(http://vip/test.html),基於傳輸層,而haproxy和nginx支持7層的,lvs只能四層

--exact顯示精確值:[root@lvs-lvs ~]# ipvsadm -Ln --exact

-c顯示ipvs連接輸出:[root@lvs-lvs ~]# ipvsadm -Ln -c

--stats統計信息:[root@lvs-lvs ~]# ipvsadm -Ln --stats

--rate輸出速率信息:[root@lvs-lvs ~]# ipvsadm -Ln --rate

ipvs規則在內存中也有個文件:[root@lvs-lvs ~]# cat /proc/net/ip_vs

連接情況:[root@lvs-lvs ~]# cat /proc/net/ip_vs_conn

清除所有ipvs規則:[root@lvs-lvs ~]# ipvsadm -C

保存規則:[root@lvs-lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm(必須要-n選項)

LVS-nat的特點:

  • RIP與DIP在同一網絡
  • 支持端口映射
  • Director要打開核心轉發功能

實驗開始

一、架構圖:

二、實驗環境要求:

如上圖所示:需要5臺機器

第一臺做client:IP:10.0.3.64

第二臺做router(兩塊網卡):IP1:10.0.3.32        IP2:192.168.137.133

第三臺是lvs服務器:IP:192.168.137.132

第四臺是lvs-web1:IP:192.168.137.129

第五臺是lvs-web2:IP:192.168.137.129

需要一個VIP:192.168.137.100

還有:10.0.0網段是橋接網段,192.168.137網段是僅主機網段

所有機器關閉防火牆,selinux,清空iptables

三、配置客戶端的網關:

網關指向10.0.3.32(路由器的左邊)

四、配置router

開啓核心路由轉發(永久開啓需寫入配置文件):

五、配置lvs-web1:

如上圖所示,將arp_ignore改爲1,arp_announce改爲2(永久生效需要寫入配置文件,all表示改所有,lo表示改lo網卡)

查看ip:

安裝httpd服務,寫入測試網頁:

[root@lvs-web1 ~]# yum install httpd -y
[root@lvs-web1 ~]# systemctl start httpd
[root@lvs-web1 ~]# vim /var/www/html/index.html 
[root@lvs-web1 ~]# cat /var/www/html/index.html
lvs-web1

別忘了設置默認網關

六、同理設置lvs-web2

臨時修改arp_ignore和arp_announce並綁定VIP

安裝httpd並寫入測試文件

[root@lvs-web2 ~]# yum install httpd -y
[root@lvs-web2 ~]# systemctl start httpd
[root@lvs-web2 ~]# vim /var/www/html/index.html 
[root@lvs-web2 ~]# cat /var/www/html/index.html
lvs-web2

別忘了設置默認網關

七、修改lvs-lvs

修改默認網關:

臨時打開核心路由轉發:

綁定VIP(LVS機器不用修改arp參數,隨便綁哪個迴環網卡)

[root@lvs-lvs ~]# ip a a 192.168.137.100/32 dev lo
[root@lvs-lvs ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.137.100/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c0:5b:59 brd ff:ff:ff:ff:ff:ff
    inet 192.168.137.132/24 brd 192.168.137.255 scope global noprefixroute dynamic ens33
       valid_lft 1518sec preferred_lft 1518sec
    inet6 fe80::20c:29ff:fec0:5b59/64 scope link 
       valid_lft forever preferred_lft forever

設置IPVS規則

[root@lvs-lvs ~]# ipvsadm -A -t 192.168.137.100:80 -s rr
[root@lvs-lvs ~]# ipvsadm -a -t 192.168.137.100:80 -r 192.168.137.129 -g
[root@lvs-lvs ~]# ipvsadm -a -t 192.168.137.100:80 -r 192.168.137.130 -g
[root@lvs-lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.137.100:80 rr
  -> 192.168.137.129:80           Route   1      0          0         
  -> 192.168.137.130:80           Route   1      0          0 

八、客戶端訪問測試

 

 


遇到的問題:

VIP和DIP搞混了

把DIP放到ipvs規則上了

等等

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章