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

在平常應用環境中,咱們會遇到這樣一種lvs部署環境,全部的dr以及的rs server都在一個局域網環境中,但只有一個公網ip,而又須要將應用發佈到internet上,都知道lvs的最好的模式就是全部的server都有一個公網ip,但不少時候公網資源稀缺,當出現只有一個公網ip的時候,怎麼實現lvs對外發布呢?後端

1、實驗拓撲

2、總體環境

3、詳細配置

路由器配置

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

在上面的配置中eth0、eth二、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要配到同一個網卡上。bash

#!/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.而後運行下面腳本便可3d

#!/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

將以上代碼保存爲腳本,而後執行腳本便可code

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

注意

注意:關於vip,若是vip不在DIP所在的網段內,那麼vip必定要配置在dr與後端RS Server直連的網卡上,否則就會出現沒法訪問的狀況;也就是說VIP與RIP要配到同一個網卡上。server

相關文章
相關標籤/搜索