1 ipvsadm命令用法
1.1 問題
準(zhǔn)備一臺Linux服務(wù)器班挖,安裝ipvsadm軟件包,練習(xí)使用ipvsadm命令芯砸,實現(xiàn)如下功能:
- 使用命令添加基于TCP一些的集群服務(wù)
- 在集群中添加若干臺后端真實服務(wù)器
- 實現(xiàn)同一客戶端訪問萧芙,調(diào)度器分配固定服務(wù)器
- 會使用ipvsadm實現(xiàn)規(guī)則的增、刪假丧、改
- 保存ipvsadm規(guī)則
1.2 方案
安裝ipvsadm軟件包双揪,關(guān)于ipvsadm的用法可以參考man ipvsadm資料。常用ipvsadm命令語法格式如表-1所示包帚。
表-1 ipvsadm語法格式
image
1.3 步驟
實現(xiàn)此案例需要按照如下步驟進(jìn)行渔期。
步驟一:使用命令增、刪渴邦、改LVS集群規(guī)則
1)創(chuàng)建LVS虛擬集群服務(wù)器
[root@svr5 ~]# ipvsadm -A -t 192.168.0.254 -s wrr -p 30
2)為集群添加若干real server
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m -w 1
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.2 -m -w 2
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.3 -m -w 3
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.4 -m -w 4
3)修改集群服務(wù)器設(shè)置
[root@svr5 ~]# ipvsadm -E -t 192.168.0.254 -s sh -p 30
4)修改read server
[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m
5)查看LVS狀態(tài)
[root@svr5 ~]# ipvsadm –Ln
6)保存所有規(guī)則
[root@svr5 ~]# service ipvsadm save
7)清空所有規(guī)則
[root@svr5 ~]# ipvsadm –C
2 部署LVS-NAT集群
2.1 問題
使用LVS實現(xiàn)NAT模式的集群調(diào)度服務(wù)器疯趟,為用戶提供Web服務(wù):
- 集群對外公網(wǎng)IP地址為202.114.106.20
- 調(diào)度器內(nèi)網(wǎng)IP地址為192.168.0.254
- 真實Web服務(wù)器地址分別為192.168.0.1、192.168.0.2谋梭、192.168.0.3
- 使用加權(quán)輪詢調(diào)度算法信峻,真實服務(wù)器權(quán)重與其IP地址末尾數(shù)一致
2.2 方案
使用4臺虛擬機(jī),1臺作為Director調(diào)度器瓮床、3臺作為Real Server站欺、物理機(jī)作為客戶端,拓?fù)浣Y(jié)構(gòu)如圖-1所示纤垂。
image
圖-1
2.3 步驟
實現(xiàn)此案例需要按照如下步驟進(jìn)行矾策。
步驟一:配置網(wǎng)絡(luò)環(huán)境
1)設(shè)置Web服務(wù)器網(wǎng)絡(luò)參數(shù)
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web1 ~]# systemctl restart NetworkManager
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web2 ~]# systemctl restart NetworkManager
[root@web3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.3
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web3 ~]# systemctl restart NetworkManager
2)自定義Web頁面
[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
[root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html
[root@web3 ~]# echo “192.168.0.3” > /var/www/html/index.html
3)啟動Web服務(wù)器軟件
[root@web1 ~]# service httpd start
[root@web2 ~]# service httpd start
[root@web3 ~]# service httpd start
4)設(shè)置LVS調(diào)度器網(wǎng)絡(luò)參數(shù)
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=202.114.106.20
DNS1=202.106.0.20
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.254
NETMASK=255.255.255.0
DNS1=202.106.0.20
[root@lvs ~]# systemctl restart NetworkManager
[root@lvs ~]# sed -i '/ip_forward/s/0/1/' sysctl.conf //開啟路由轉(zhuǎn)發(fā)
[root@lvs ~]# sysctl -p
步驟二:調(diào)度器安裝軟件并啟動服務(wù)
1)安裝軟件
[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm
2)啟動服務(wù)
[root@lvs Packages]# service ipvsadm start
[root@lvs Packages]# chkconfig ipvsadm on
步驟三:部署LVS-NAT模式調(diào)度器
1)創(chuàng)建集群服務(wù)器
[root@lvs ~]# ipvsadm -A -t 202.114.106.20:80 -s wrr
2)添加真實服務(wù)器
[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.1 -w 1
[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.2 -w 2
[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.3 -w 3
3)查看規(guī)則列表,并保存規(guī)則
[root@lvs ~]# ipvsadm –Ln
[root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
步驟四:客戶端測試
客戶端使用curl命令反復(fù)連接http://202.114.106.20峭沦,查看訪問的頁面是否會輪詢到不同的后端真實服務(wù)器贾虽。
3 部署LVS-DR集群
3.1 問題
使用LVS實現(xiàn)DR模式的集群調(diào)度服務(wù)器,為用戶提供Web服務(wù):
- 路由器對外公網(wǎng)IP地址為202.114.106.20
- 路由器內(nèi)網(wǎng)IP地址為192.168.0.254
- 路由是需要設(shè)置SNAT及DNAT功能
- LVS調(diào)度器真實IP地址為192.168.0.10
- LVS調(diào)度器VIP地址設(shè)置為192.168.0.253
- 真實Web服務(wù)器地址分別為192.168.0.1吼鱼、192.168.0.2
- 使用加權(quán)輪詢調(diào)度算法蓬豁,真實服務(wù)器權(quán)重與其IP地址末尾數(shù)一致
3.2 方案
使用4臺虛擬機(jī)绰咽,1臺作為Linux路由器、1臺作為Director調(diào)度器地粪、2臺作為Real Server取募、物理機(jī)作為客戶端,拓?fù)浣Y(jié)構(gòu)如圖-2所示蟆技。
image
圖-2
3.3 步驟
實現(xiàn)此案例需要按照如下步驟進(jìn)行玩敏。
步驟一:配置網(wǎng)絡(luò)環(huán)境
1)設(shè)置Web服務(wù)器網(wǎng)絡(luò)參數(shù)
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.255
[root@web1 ~]# vim /etc/sysctl.conf
.. ..
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web1 ~]# sysctl -p
[root@web1 ~]# systemctl restart NetworkManager
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.255
[root@web2 ~]# vim /etc/sysctl.conf
.. ..
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web2 ~]# sysctl -p
[root@web2 ~]# systemctl restart NetworkManager
2)自定義Web頁面
[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
[root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html
3)啟動Web服務(wù)器軟件
[root@web1 ~]# systemctl start httpd; systemctl enable httpd
[root@web2 ~]# systemctl start httpd; systemctl enable httpd
4)設(shè)置LVS調(diào)度器網(wǎng)絡(luò)參數(shù)
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.10
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@lvs ~]# systemctl restart NetworkManager
5)設(shè)置Linux路由器網(wǎng)絡(luò)參數(shù)
[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=202.114.106.20
DNS1=202.106.0.20
[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.254
NETMASK=255.255.255.0
DNS1=202.106.0.20
[root@router ~]# systemctl restart NetworkManager
6)設(shè)置Linux路由器的SNAT、DNAT功能
[root@router ~]# sed -i '/ip_forward/s/0/1/' sysctl.conf //開啟路由轉(zhuǎn)發(fā)
[root@router ~]# sysctl -p
[root@router ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p tcp –j SNAT --to-source 202.114.106.20
[root@router ~]# iptables -t nat -A PREROUTING -d 202.114.106.20 -p tcp --dport 80 –j DNAT --to-destination 192.168.0.253:80
[root@router ~]# service iptables save
步驟二:調(diào)度器安裝軟件并啟動服務(wù)
1)安裝軟件
[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm
2)啟動服務(wù)
[root@lvs Packages]# systemctl start ipvsadm
[root@lvs Packages]# systemctl enable ipvsadm
步驟三:部署LVS-DR模式調(diào)度器
1)創(chuàng)建集群服務(wù)器
[root@lvs ~]# ipvsadm -A -t 192.168.0.253:80 -s wrr
2)添加真實服務(wù)器
[root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.1 -g -w 1
[root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.2 -g -w 2
3)查看規(guī)則列表质礼,并保存規(guī)則
[root@lvs ~]# ipvsadm –Ln
[root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
步驟四:客戶端測試
客戶端使用curl命令反復(fù)連接http://202.114.106.20旺聚,查看訪問的頁面是否會輪詢到不同的后端真實服務(wù)器。