本節索引:
一、實驗:實現LVS-NAT
二、實驗:實現LVS與RS之間添加路由器的LVS-NAT
(1)實現端口映射
(2)添加權重
三、實驗:實現單網絡LVS-DR
四、Ldirectord:實現LVS的RS健康性檢查
一、實驗:實現LVS-NAT
邏輯拓撲:
前期準備:
CLIENT: ? 172.20.0.123; 網關:172.20.0.200
LVS: ? ? VIP:192.168.30.200, DIP:172.20.0.200,啟用ip_forward
RS1: ? ??192.168.30.17
RS2: ? ??192.168.30.27
LVS:
開啟路由轉發
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
sysctl –p
sysctl –a |grep ip_f
RS1、2:
搭建WEB環境
網關指向192.168.30.200
yum install httpd
RS1:
echo RS1> /var/www/html/index.html
systemctl start httpd
RS2:
echo RS2> /var/www/html/index.html
systemctl start httpd
LVS:
添加LVS規則
yum install ipvsadm
Ipvsadm –A –t 172.20.0.200:80 –s rr
Ipvsadm –a –t 172.20.0.200:80? –r 192.168.30.17 –m?
Ipvsadm –a –t 172.20.0.200:80? –r 192.168.30.27 –m?
Ipvsadm –Ln
測試:
curl 172.20.0.200
二、實驗:實現LVS與RS之間添加路由器的LVS-NAT
邏輯拓撲:
前期準備:
新增加一臺虛擬機作為路由器,按下圖進行網絡環境搭建
CLIENT: ? 172.20.0.123;網關:172.20.0.200
LVS: ? 192.168.30.0,172.20.0.200,不啟用ip_forward
ROUTER: VIP:172.20.0.100/16;DIP:192.168.30.200 /24,啟用ip_forward
RS1: ?192.168.30.17
RS2: ?192.168.30.27
路由器必須配置到LVS的網關,并且開啟路由轉發功能
curl 172.20.0.200測試
實現端口映射:
以httpd服務為例,修改其中一臺RS服務器的80端口為8080
RS1:
vim /etc/httpd/conf/httpd.conf
Listen 80 ==>Listen 8080
LVS:
清除原有LVS規則
ipvsadm -C?
ipvsadm -A -t 172.20.0.200:80 -s rr
ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17:8080 -m
ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.27:80 -m
CLIENT:
添加權重:
LVS:
修改調度算法為wrr模式
ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17:8080 -m -w 3
CLIENT:
我們看到LVS已按RS1:RS1 = 3:1的權重進行調度
三、實驗:實現單網絡LVS-DR
邏輯拓撲:
前期準備:
5臺虛擬機,網絡環境配置如下:
CLIENT: ? ?橋接模式;172.20.0.222/16
ROUTER: ?橋接模式;172.20.0.200/16;192.168.30.200/24
LVS: ?僅主機模式;VIP:192.168.30.7/24;DIP:192.168.30.100/24
RS1: ?僅主機模式;192.168.30.17/24;VIP:192.168.30.7/24
RS2: ?僅主機模式;192.168.30.27/24;VIP:192.168.30.7/24
RS1,RS2:
echo 1> /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1> /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2> /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2> /proc/sys/net/ipv4/conf/all/arp_announce
一般習慣是將VIP綁定到RS服務器的回環網卡lo上
ip a a 192.168.30.7/32 dev lo
在RS1,RS2上搭建web服務
yum install httpd
RS1:
echo RS1> /var/www/html/index.html
systemctl start httpd
RS2:
echo RS2> /var/www/html/index.html
systemctl start httpd
LVS:
網絡配置要求
VIP: ?ip addr a192.168.30.7/32 dev lo
DIP: ?192.168.30.100/24 eth0
GATEWAY: ?192.168.30.X????????? #網關必須配,但可隨意配置,同一網段即可
配置調度策略:
yum install ipvsadm
ipvsadm -A -t 192.168.30.7:80 -s rr
ipvsadm -a -t 192.168.30.7:80 -r 192.168.30.17????? #默認dr模型
ipvsadm -a -t 192.168.30.7:80 -r 192.168.30.27
CLIENT:
測試
四、Ldirectord:實現LVS的RS健康性檢查
ldirectord:監控和控制LVS守護進程,可管理LVS規則
包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm
文件:
/etc/ha.d/ldirectord.cf ? ?主配置文件
/usr/share/doc/ldirectord-3.9.6/ldirectord.cf ? 配置模版
/usr/lib/systemd/system/ldirectord.service ? ?服務
/usr/sbin/ldirectord ? 主程序
/var/log/ldirectord.log ? 日志
/var/run/ldirectord.ldirectord.pid pid ? 文件
Ldirectord配置文件示例
checktimeout=3
checkinterval=1
autoreload=yes
logfile=”/var/log/ldirectord.log” ? ? ? #日志文件
quiescent=no ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#down時yes權重為0,no為刪除
virtual=5 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #指定VS的FWM或IP:port
real=172.16.0.7:80 gate 2
real=172.16.0.8:80 gate 1
fallback=127.0.0.1:80 gate #sorry server
service=http
scheduler=wrr
checktype=negotiate
checkport=80
request=”index.html”
receive=”test Ldirectord”
重啟ldirectord服務,將自動生成LVS規則
systemctl start ldirectord
默認情況下,當有一臺RS服務器宕機時,LVS還將繼續調度,啟動ldirectord服務后,當某臺RS服
務器宕機后,LVS將不再繼續調度至該臺服務器
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102292