linux簡單集羣實現

一、LVS NAT的實現

實現實驗環境

準備3臺主機,分別作Director,RS1,RS2,通過訪問web服務來測試集羣功能!

各網卡配置如下,

服務器網卡地址
Director

eth0:172.16.8.8(作爲VIP)

eth1:192.168.10.1(作爲DIP)

RS1eth0:192.168.10.11(作爲RIP)
RS2eth0:192.168.10.12 (作爲RIP)


拓撲圖:

wKiom1NOFbrigWNkAAEtQwiZDt8377.jpg


1.Director服務器的配置

設置VIP與DIP的地址

[root@master ~]# ifconfig eth0 172.16.8.8/16  //VIP
[root@master ~]# ifconfig eth1 192.168.10.1/24  //DIP


如下圖:

wKiom1NL8MeD44EXAAQSZfAMupY427.jpg


2、RS1服務器的配置

配置RIP地址:

[root@master ~]# ifconfig eth0 192.168.10.11/24 //RIP

如圖

wKiom1NL8UiTy2q1AAJg0LwkUZg604.jpg


把RS1服務器的默認網關指向DIP

[root@master ~]# route add default gw 192.168.10.1

如圖

wKioL1NL8c_CU0RrAADkCU4RFrA033.jpg


創建測試網頁文件

# yum -y install httpd //沒有httpd的話則安裝
# vim /var/www/html/index.html
寫如如下內容
<h1>web2</h1>



3.RS2服務器的配置

配置RIP

[root@master ~]# ifconfig eth0 192.168.10.12/24 //RIP

如圖

wKioL1NL8h_y2L55AALiJaUeSaY812.jpg


把RS2服務器的默認網關也指向DIP

[root@master ~]# route add default gw 192.168.10.1

如圖:

wKioL1NL8mDiMBK0AAD8v_O_KMw348.jpg


創建網頁文件:

# yum -y install httpd //沒有httpd的話則安裝
# vim /var/www/html/index.html
寫如如下內容
<h1>web2</h1>



4 、在Director服務器上配置集羣服務

打開IP轉發:

# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@master ~]# yum -y install ipvsadm
[root@master ~]# ipvsadm -A -t 172.16.8.8:80 /這裏採用默認調度方法wlc來配置集羣
[root@master ~]#  ipvsadm -a -t 172.16.8.8:80 -r 192.168.10.11:80 -m -w 3 //添加RS1記錄,lvs類型爲nat,RS權重爲3
[root@master ~]#  ipvsadm -a -t 172.16.8.8:80 -r 192.168.10.12:80 -m -w 1 //添加RS2記錄,lvs類型爲nat,RS權重爲1


如圖:

wKiom1NL9raD1vE_AADVrwfzgYs745.jpg


5、打開遊覽器輸入VIP地址172.16.8.8測試

查看ipvsadm狀態

wKiom1NL9wOw0lrGAAEZ2r6AUcE866.jpg

從上圖看出,nat集羣服務已經生效,從Conns,InPkts值來看二者RS權重比3:1,基本符合設定值


二、LVS-DR的配置

VIP和RIP在同一公網網段

服務器網卡地址
Director

eth0:172.16.8.8(作爲DIP)

eth0:0:172.16.8.6(作爲VIP)

RS1

eth0:172.16.8.7(作爲RIP)

lo:0 172.16.8.6 (vip)

RS2

eth0:172.16.8.9 (作爲RIP)

lo:0 172.16.8.6 (vip)


拓撲圖:

wKioL1NOJQfhn86NAAFL-ZLPGmE414.jpg


1、Director的配置

準備一塊網卡配置VIP與DIP

[root@master ~]# ifconfig eth0 172.16.8.8/16 //(DIP)
[root@master ~]# ifconfig eth0:0 172.16.8.6/16 //(VIP)
[root@master ~]# route add -host 172.16.8.6 dev eth0:0 //讓發往172.16.8.6的請求都經過eth0:0


2、RS1的配置

創建網頁文件:

# yum -y install httpd //沒有httpd的話則安裝 
# vim /var/www/html/index.html
寫如如下內容
<h1>web1</h1>

 

配置DIP

[root@master ~]# ifconfig eth0 172.16.8.7 //RIP


修改內核參數來先限制arp的廣播和應答:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

wKioL1NOKXCBe_HkAAEDM4u94rA560.jpg


配置VIP

[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必須不讓realserver對外廣播


配置路由

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 #請求是VIP的包,以lo:0接口出去,於是源地址還是爲VIP,不會導致因爲從eth0出去將源地址變爲RIP

wKiom1NOKcrQj74UAANcNlcyg48212.jpg

wKioL1NOKb-A8qQ3AAEJ12Fhuyc374.jpg


3、RS2的配置

創建網頁文件
# yum -y install httpd //沒有httpd的話則安裝
# vim /var/www/html/index.html
寫如如下內容
<h1>web2</h1>


修改內核參數來先限制arp的廣播和應答:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


配置RIP與VIP

[root@master ~]# ifconfig eth0 172.16.8.9 //RIP
[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必須不讓realserver對外廣播


配置路由:

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 #請求是VIP的包,以lo:0接口出去,於是源地址還是爲VIP,不會導致因爲從eth0出去將源地址變爲RIP

wKiom1NOKhbxjSgyAALZX9-yw0g373.jpg


4、在Director服務器上添加集羣服務

[root@master ~]# ipvsadm -A -t 172.16.8.6:80 -s rr
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 172.16.8.7 -g
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 172.16.8.9 -g

wKiom1NOKW7zi3ZqAADt11jHVDk771.jpg


打開網頁測試:

wKioL1NOKjfQlP1WAADkotaFUFw994.jpg

wKiom1NOKmKiuep5AAEBL5LvEJM495.jpg

wKioL1NOKjqAUB1PAADt11jHVDk174.jpg


從上圖看出LVS-DR模型配置成功!


三、LVS -DR模型的另一種配置

爲了節約公網地址,DR模型下VIP可用公網地址,RIP用內網地址,將網關都指向同一個路由器,以此來實現DR模型的LVS負載均衡

服務器網卡地址
Director

eth0:172.16.8.6(作爲VIP)

eth1:192.168.10.1(作爲DIP)

RS1

eth0:192.168.10.11(作爲RIP)

lo:0 172.16.8.6 (VIP)

gw:192.168.10.13

RS2

eth0:192.168.10.12 (作爲RIP)

lo:0 172.16.8.6 (VIP)

gw:192.168.10.13

Client(網關服務器)

eth0:192.168.10.13

eth1:172.16.10.1


拓撲圖:

wKiom1NOLPexqZm4AAFehSYih0A918.jpg


1.Director服務器的配置

準備二塊網卡設置VIP與DIP的地址

[root@master ~]# ifconfig eth0 172.16.8.6/16  //VIP
[root@master ~]# ifconfig eth1 192.168.10.1/24  //DIP


2、RS1的配置

創建網頁文件
# yum -y install httpd //沒有httpd的話則安裝
# vim /var/www/html/index.html
寫如如下內容
<h1>web1</h1>


修改內核參數來先限制arp的廣播和應答:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


配置VIP與DIP:

[root@master ~]# ifconfig eth0 192.168.10.11 //RIP
[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必須不讓realserver對外廣播


配置路由與網關:

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 //請求是VIP的包,以lo:0接口出去,於是源地址還是爲VIP,不會導致因爲從eth0出去將源地址變爲RIP
[root@master ~]# route add default gw 192.168.10.13 //指向路由服務器

wKioL1NOM1TivFhbAAC4k1J26sQ633.jpg


3、RS2的配置

創建網頁文件
# yum -y install httpd //沒有httpd的話則安裝
# vim /var/www/html/index.html
寫如如下內容
<h1>web2</h1>


修改內核參數來先限制arp的廣播和應答

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


配置VIP與DIP:

[root@master ~]# ifconfig eth0 192.168.10.12 //RIP
[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必須不讓realserver對外廣播


配置路由與網關:

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 //請求是VIP的包,以lo:0接口出去,於是源地址還是爲VIP,不會導致因爲從eth0出去將源地址變爲RIP
[root@master ~]# route add default gw 192.168.10.13 //網關指向路由服務器

wKioL1NOM3DxcDh6AADa0SmyyVk079.jpg


4、配置路由服務器

啓動一臺主機配置成路由服務器,添加以下規則:

配置網卡:

wKiom1NOM0HxERkrAAPvkj_LYX0760.jpg


添加路由規則:

[root@master ~]# route add -net 192.168.10.0 netmask 255.255.255.0 dev eth1 //發往192.168.10網段的請求經過eth1出去
[root@master ~]# route add -net 172.16.0.0 netmask 255.255.0.0 dev eth0   //發往172.16.0.0網段的請求經過eth0出去

wKiom1NONHfTI99KAACeORZviec609.jpg


5、在Director服務器上添加集羣服務

[root@master ~]# ipvsadm -A -t 172.16.8.6:80 -s rr
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 192.168.10.11 -g
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 192.168.10.12 -g


測試:

wKioL1NONZ_Rbr5MAAEOlFSjk0c415.jpg

wKioL1NONiSD4q_eAADQZAu8xC4366.jpg

wKiom1NONk3BqQG3AAEjZYuLEKE324.jpg


從圖看出vip與RIP不在同一網段的DR模型配置成功!


注:如果各個網卡都是橋接的話,反應可能有點延遲,測試時,最好把各個網卡放在同一HOST-ONLY下,我這裏是虛擬機:如圖

wKiom1NOOH3TBwRlAAKVw_JP36k694.jpg


在路由服務器上測試,如圖:

wKioL1NOOKzQ3zT8AAE2_41fX7Y469.jpg

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