您好,登錄后才能下訂單哦!
這篇文章給大家介紹DR的原理與實現是怎么樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
當用戶請求到達Director Server,此時請求的數據報文會先到內核空間的PREROUTING鏈。 此時報文的源IP為CIP,目標IP為VIP;
PREROUTING檢查發現數據包的目標IP是本機,將數據包送至INPUT鏈;
IPVS比對數據包請求的服務是否為集群服務,若是,將請求報文中的源MAC地址修改為DIP的MAC地址,將目標MAC地址修改RIP的MAC地址,然后將數據包發至POSTROUTING鏈。 此時的源IP和目的IP均未修改,僅修改了源MAC地址為DIP的MAC地址,目標MAC地址為RIP的MAC地址;
由于DS和RS在同一個網絡中,所以是通過二層來傳輸。POSTROUTING鏈檢查目標MAC地址為RIP的MAC地址,那么此時數據包將會發至Real Server;
RS發現請求報文的MAC地址是自己的MAC地址,就接收此報文。處理完成之后,將響應報文通過lo接口傳送給eth0網卡然后向外發出。 此時的源IP地址為VIP,目標IP為CIP;
響應報文最終送達至客戶端;
IP分配
dirdirector DIP:192.168.177.210(eth0) VIP:192.168.177.220(eth0:0)
real server1 RIP1:192.168.177.121(eth0) VIP:192.168.177.220(lo:0)
real server2 RIP2:192.168.177.122(eth0) VIP:192.168.177.220(lo:0)
1、real server上的配置
在lo網卡上綁定IP地址
ifconfig lo:0 192.168.177.220 broadcast 192.168.177.220 netmask 255.255.255.255 up
添加路由(VIP地址由lo網卡出)
route add -host 192.168.177.220 lo:0
修改內核參數,使real server上的VIP地址不響應由其他主機發往的ARP報文
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
安裝http服務并啟動
yum install httpd
echo RS1 > /var/www/html/index.html
/etc/init.d/httpd restart
2、director上的配置
在eth0上綁定VIP
ifconfig eth0:0 192.168.177.220 up
添加路由(使VIP地址的數據通過eth0出)
route add -host 192.168.177.220 dev eth0:0
開啟路由轉發功能
echo 1 >/proc/sys/net/ipv4/ip_forward
創建一個服務
ipvsadm -A -t 192.168.177.220:80 -s wrr
在服務中添加real server
ipvsadm -a -t 192.168.177.220:80 -r 192.168.177.211:80 -g -w 3
ipvsadm -a -t 192.168.177.220:80 -r 192.168.177.212:80 -g -w 1
配置完成
note:在real server上修改內核參數arp_ignore和arp_announce目的是禁止lo0上的VIP響應其他主機發送的ARP報文,避免發生IP地址沖突的問題。
TUN配置和DR模型配置相似,只是real server和director不再同一個網絡中
關于DR的原理與實現是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。