LVS-DR之VIP、DIP跨網段實例


在日常應用環境中,我們會遇到這樣一種lvs部署環境,所有的dr以及的rs server都在一個局域網環境中,但只有一個公網ip,而又需要將應用發布到internet上,都知道lvs的最好的模式就是所有的server都有一個公網ip,但很多時候公網資源稀缺,當出現只有一個公網ip的時候,怎么實現lvs對外發布呢?

一、實驗拓撲

二、整體環境

三、詳細配置

路由器配置

eth0:公網IP接入INTERNET
eth1:172.18.68.10(公網IP)						#實驗環境中使用172.18.68.10做公網IP
eth2:10.10.0.1內網IP

在上面的配置中eth0、eth2、VIP一共使用了3個公網IP。還可以縮減成兩個公網IP。
即eth1不配置公網IP,在路由上添加主機路由 route add -host 172.18.68.100 dev eth2 ,也能達到相同的效果。

VS調度器配置

在腳本中修改VIP、網卡名、端口、后端服務器然后執行腳本即可。
注意:關於vip,如果vip不在DIP所在的網段內,那么vip一定要配置在dr與后端RS Server直連的網卡上,不然就會出現無法訪問的情況;也就是說VIP與RIP要配到同一個網卡上。

#!/bin/bash
#Author:shuaiguoxia.com
#Date:2017-10-23
vip='172.18.0.100'
iface='eth0:1'
mask='255.255.255.255'
port='80'
rs1='10.10.0.72'
rs2='10.10.0.73'
scheduler='wrr'
type='-g'
case $1 in
start)
    ifconfig $iface $vip netmask $mask broadcast $vip up
    iptables -F
    ipvsadm -A -t ${vip}:${port} -s $scheduler
    ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
    ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
    echo "The VS Server is Ready!"
    ;;
stop)
    ipvsadm -C
    ifconfig $iface down
    echo "The VS Server is Canceled!"
    ;;
*)
    echo "Usage: $(basename $0) start|stop"
    exit 1
    ;;
esac

將以上代碼保存為腳本,然后執行腳本即可

./dr-vs.sh start              #dr-vs.sh為腳本名

RS服務器配置

首先配置RS的內網IP地址,設定默認網關為10.10.0.1.然后運行下面腳本即可

#!/bin/bash
#Author:shuaiguoxia.com
#Date:2017-10-23
vip=172.18.68.100
mask='255.255.255.255'
dev=lo:1
case $1 in
start)
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    ifconfig $dev $vip netmask $mask broadcast $vip up
    route add -host $vip dev $dev
    echo "The RS Server is Ready!"
    ;;
stop)
    ifconfig $dev down
    echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore3
    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
    echo "The RS Server is Canceled!"
    ;;
*) 
    echo "Usage: $(basename $0) start|stop"
    exit 1
    ;;
esac

將以上代碼保存為腳本,然后執行腳本即可

./dr-rs.sh start              #dr-rs.sh為腳本名

注意

注意:關於vip,如果vip不在DIP所在的網段內,那么vip一定要配置在dr與后端RS Server直連的網卡上,不然就會出現無法訪問的情況;也就是說VIP與RIP要配到同一個網卡上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM