LVS-DR模式工作原理
首先,來自客戶端計(jì)算機(jī)CIP的請(qǐng)求被發(fā)送到Director的VIP。
然后Director使用相同的VIP目的IP地址將 請(qǐng)求發(fā)送到集群節(jié)點(diǎn)或真實(shí)服務(wù)器。
然后,集群某個(gè)節(jié)點(diǎn)將回復(fù)該數(shù)據(jù)包,并將該數(shù)據(jù)包直接發(fā)送到客戶端計(jì)算機(jī)(不經(jīng)過Director),并且以此回復(fù)數(shù)據(jù)包使用的目的VIP 地址作為源IP地址。
因此,實(shí)際上 是客戶計(jì)算機(jī)被“欺騙”了,客戶計(jì)算機(jī)始終認(rèn)為它正與同一臺(tái)計(jì)算機(jī)對(duì)話,而實(shí)際上它正在發(fā)送請(qǐng)求數(shù)據(jù)包給一臺(tái)計(jì)算機(jī)(LB),并從另一臺(tái)計(jì)算機(jī)(RS)接收回復(fù)的數(shù)據(jù)包。
分解圖如下:
集群架構(gòu)圖
構(gòu)建步驟
1、配置LVS虛擬IP(VIP)
2、手工執(zhí)行配置添加LVS服務(wù)并增加兩臺(tái)RS
3、手工在RS端綁定VIP
4、配置WEB服務(wù)器
5、手工在RS端抑制ARP響應(yīng)
6、測(cè)試
主機(jī) | 角色 | VIP | RIP | firewalld | |
node1 | LVS | 192.168.19.140 | 192.168.19.133(DIP) | disable | |
node2 | WEB1 | 192.168.19.134 | httpd | ||
node3 | WEB2 | 192.168.19.135 | httpd |
1、配置LVS虛擬IP(VIP)
[root@node1 ~]# ifconfig ens33:140 192.168.19.140 netmask 255.255.255.0 up
2、手工執(zhí)行配置添加LVS服務(wù)并增加兩臺(tái)RS
[root@node1 ~]# yum install -y ipvsadm? ?#沒有 lvs管理工具就下載
[root@node1 ~]# ipvsadm -A -t 192.168.19.140:80 -s rr
[root@node1 ~]# ipvsadm -a -t 192.168.19.140:80 -r 192.168.19.134:80 -g
[root@node1 ~]# ipvsadm -a -t 192.168.19.140:80 -r 192.168.19.135:80 -g[root@node1 ~]# 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.19.140:80 rr
? -> 192.168.19.134:80 ? ? ? ? ? ?Route ? 1 ? ? ?0 ? ? ? ? ?0 ? ? ? ??
? -> 192.168.19.135:80 ? ? ? ? ? ?Route ? 1 ? ? ?0 ? ? ? ? ?0 ?
3、手工在RS端綁定VIP
[root@node2 ~]# yum install net-tools.x86_64? ?#centos7沒有ifconfig就安裝
[root@node2 ~]# ifconfig lo:140 192.168.19.140 netmask 255.255.255.255 up? ? #臨時(shí)綁定
[root@node2 ~]# route add -host 192.168.19.140 dev lo? ? ? #添加本機(jī)訪問VIP的路由
[root@node2 ~]# route -n? ? ? ? #查看路由
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
0.0.0.0 ? ? ? ? 192.168.19.2 ? ?0.0.0.0 ? ? ? ? UG ? ?100 ? ?0 ? ? ? ?0 ens33
192.168.19.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 100 ? ?0 ? ? ? ?0 ens33
192.168.19.140 ?0.0.0.0 ? ? ? ? 255.255.255.255 UH ? ?0 ? ? ?0 ? ? ? ?0 lo=====================================================================
[root@node3 ~]# ifconfig lo:140 192.168.19.140 netmask 255.255.255.255 up
[root@node3 ~]# route add -host 192.168.19.140 dev lo
SIOCADDRT: File exists
[root@node3 ~]# route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
0.0.0.0 ? ? ? ? 192.168.19.2 ? ?0.0.0.0 ? ? ? ? UG ? ?100 ? ?0 ? ? ? ?0 ens33
192.168.19.0 ? ?0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 100 ? ?0 ? ? ? ?0 ens33
192.168.19.140 ?0.0.0.0 ? ? ? ? 255.255.255.255 UH ? ?0 ? ? ?0 ? ? ? ?0 lo
4、配置WEB服務(wù)器
yum install httpd -y? ? ? ? ? ? ? ? ? ?#下載軟件包
setenforce 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#關(guān)閉seLinux防火墻
systemctl stop firewalld? ? ? ? ? ? #關(guān)閉防火墻
echo "web test pages ip is `hostname -I`" > /var/www/html/index.html? ? #頁(yè)面內(nèi)容
systemctl restart httpd? ? ? ? ? ? ? #重啟生效
5、手工在RS端抑制ARP響應(yīng)
法一:調(diào)整內(nèi)核參數(shù),關(guān)閉arp響應(yīng)
[root@node2 ~] echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore?
[root@node2 ~] echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@node2 ~] echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
[root@node2 ~] echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announceWEB2同上
方法2:使用arptables抑制
[root@node2 ~] arptables -A INPUT -d 192.168.19.140 -j DROP
[root@node2 ~] arptables -A OUTPUT -s 192.168.19.140 -j mangle --mangle-ip-s 192.16819.135
[root@node2 ~] arptables-save > /etc/sysconfig/arptables
6、測(cè)試
在LVS上執(zhí)行? ? watch ipvsadm -Ln? ?(實(shí)時(shí)監(jiān)控)
主機(jī)測(cè)試文章來源:http://www.zghlxwxcb.cn/news/detail-637383.html
再次查看文章來源地址http://www.zghlxwxcb.cn/news/detail-637383.html
到了這里,關(guān)于基于 CentOS 7 構(gòu)建 LVS-DR 群集的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!