linux 浮动ip 出口,在liunx双机下自己动手实现浮动IP技术

有两台Linux服务器,其中一台主机(IP:139.24.214.22)对外提供了一定的网络服务,另一台从机(IP:139.24.214.24)能提供相同的服务,但IP地址没有对外部公开。

客户端连接的都是139.24.214.22这个IP地址,如果主机故障,则会使网络服务暂时中断,时间越长造成损失越大,

由于没有采用双机热备份技术,考虑自己用Linux脚本来实现简单的浮动IP技术,当主机故障时从机获得139.24.214.22这个IP,暂时替代主机提供服务,当主机恢复时,从机自动释放这个IP。

思路:

利用单个网卡绑定多个IP地址的技术和crontab自动执行技术

为主机的网卡多绑定一个静态IP,如139.24.214.82,这个地址是便于从机判断的,

为从机的网卡多绑定一个动态IP,127.0.0.1,它在主机故障时将会被脚本修改为139.24.214.22

在从机上添加一个脚本

/root/autoFloatIP.sh,使用crontab技术让这个脚本每分钟执行一次,这个脚本的作用是判断主机的地址82能否Ping通,一旦不正常则将让自己的网卡多余的那个IP地址改为139.24.214.22,如果主机恢复,则将这个地址改回为127.0.0.1

步骤

1.为主机添加一个静态IP139.24.214.82,由于这个是静态IP,可以采用在图形化界面中设置此IP并保存的办法,或者在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:1的文件,内容为:

DEVICE=eth0:1

IPADDR=139.24.214.82

NETMASK= 255.255.255.0

ONBOOT= yes

2.在从机上,在/root下建立一个脚本autoFloatIP.sh

用chmod +x

autoFloatIP.sh让它可以执行,脚本的内容为

c1=$(ping 139.24.214.82 -c 1|grep Unreachable|wc

-l)

if [ $c1 -gt 0 ] ; then

c2=$(ping 139.24.214.82 -c 10|grep

Unreachable|wc -l)

if [ $c2 -gt 9 ] ; then

c3=$(ping 139.24.214.22 -c

10|grep Unreachable|wc -l)

if [ $c3 -gt 9 ] ; then

/sbin/ifconfig eth0:1 139.24.214.22 netmask 255.255.254.0

echo "float ip to

22"

fi

fi

echo "can not

connect"

else

c4=$(/sbin/ifconfig|grep 139.24.214.22|wc -l)

if [ $c4

-gt 0 ] ; then

/sbin/ifconfig eth0:2 127.0.0.1 netmask

255.255.254.0

echo "reset ip"

fi

echo "connection is ok"

fi

其中关键的命令为

/sbin/ifconfig eth0:1 139.24.214.22 netmask

255.255.254.0

/sbin/ifconfig eth0:2 127.0.0.1 netmask

255.255.254.0

用这个方法来动态修改IP,动态IP在电脑重启会消失

3从机上建立crontab

用crontab -e命令

让后加上这样的一行并保存

* * * * *

/root/autoFloatIP.sh > /dev/null 2>&1

小提示

在测试时,你可以先将这句话改为 * * * * * /root/autoFloatIP.sh

这样你可以用mutt收到很多邮件,用户跟踪脚本执行情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值