一个简单的双击热备、***方案

gre ***

这个是前段时间在IDC公司上班的一个案例

案例要求:

1、客户要求两个内网之间能互相访问,只租用机房的地址。

2、在两个不同的地方,网段不一样内网不一样。

3、要求是在大并发情况下能使用(所以我放弃原本的open ***方案,改用系统模块的gre。因为说对数据的全要求性也没那、在两个不同的地方,网段不一样内网不一样。

3、要求是在大并发情况下能使用(所以我放弃原本的open ***方案,改用系统模块的gre。因为说对数据的全要求性也没那么高)。

4、尽量要求不断网。

需求分析:么高)。

4、尽量要求不断网。

需求分析:

一、由于NAT服务是有非常大的流量通过的,我们必须压确保我的路由设备在出现故障的时候,能够智能的切换到另一台备用机。以保证网络的正常运行,下面实验中使用keepalive软件时间NAT服务器的双击热备。漂移地址为20.0.1.254.

二、搭建gre *** ,为了实现不同的网段之间互相通信的。

三、主要实施条件是在C1主机和C2主机上配置Keepalive(C1C2NAT服务器。C1设置每MASTER) C1C3之间建立tunnel2

C2C3之间建立tunnel3.

:C4的网关指向的是漂移地址:20.0.1.254

如图所示:

wKioL1RDafzDSBsQAADa3U49iO8077.jpg 

步骤1

配置NAT

  • C1C2上面开启路由转发功能。

Vi /etc/sysctl   

net.ipv4.ip_forward = 1

  • 分别情况两天服务器的防火墙策略:

Iptables –F

Iptables –F –t nat

然后iptabls –L查看是否清空防火墙策略

三、在192.168.77.137192.168.77.35端口上面做NAT(下面以192.168.77.137为例)

iptables -t nat -A POSTROUTING -s 20.0.1.0/24 -o eth0 -jSNAT --to 192.168.77.137

  • 验证:在c4ping192.168.77.9通了的话说明SNAT已经配置成功了。

步骤2:安装配置:keepalived(分别在C1C2上面配置)下面以C1为例:

(1)    安装支持的库文件和软件:

[root@localhost ~]#yum -y install kernel-devel openssl-devel popt-devel

[root@localhost~]# rpm -ivh /mnt/Server/Packet/ipvsadm-1.25-9.el6.i686.rpm

(当然要是源码安装的话注意要安装一个lvs支持包:popt-static-1.13-7.el6.x86_64.rpm这个包貌似只有64位的,安装的时候注意,还有指定内核头文件。这里不解释)

(2)    编译安装keepalived

[root@localhost keepalived-1.2.2]# ./configure --prefix=/ -- --with-kernel-dir=/usr/src/kernels/2.6.32-131.0.15.el6.i686

[root@localhostkeepalived-1.2.2]# make && make install

(3)    启动keepalived 并且设置成开机启动

[root@localhost ~]# ls -l /etc/init.d/keepalived

-rwxr-xr-x 1 root root 1288 11月 8 16:23 /etc/init.d/keepalived

[root@localhost ~]# chkconfig --add keepalived

[root@localhost ~]#chkconfig keepalived on

(4编辑配置文件使之实现双机热备:注意指定漂移地址:这里使用C1做主服务。C2做从服务器)

[root@localhost Desktop]# vim/etc/keepalived/keepalived.conf

global_defs {

router_id HA_TEST_R1      //服务器名称

}

vrrp_instance VI_1 {                    //定义VRRP实例

state MASTER                         //定义为主服务器

interface eth1                        //承载vip地址的物理接口(示个人情况而定)

virtual_router_id 1                    //虚拟路由器的ID

priority 100                         //数值越大优先级越高

advert_int 1                         // 通过间隔秒数(心跳频率)

authentication {

auth_type PASS                      //认证类型

auth_pass 123456                    //认证字串

}

virtual_ipaddress {

  1. 0.1.254                        //指定漂移地址

}

}

5)要是上面配置无误就可以启动keepalived服务,MASTER的主服务器讲为eth1接口自动添加VIP地址。Ip addr可以查看:

[root@localhost Desktop]# /etc/init.d/keepalived start

wKioL1RDasSQ2MRAAAC1N0I_we8361.jpg

6)从服务器配置:

[root@localhost Desktop]# vim/etc/keepalived/keepalived.conf

global_defs {

router_id HA_TEST_R2      //服务器名称

}

vrrp_instance VI_1 {                    //定义VRRP实例

state SLAVE                         //定义为主服务器

interface eth1                        //承载vip地址的物理接口(示个人情况而定)

virtual_router_id 1                    //虚拟路由器的ID

priority 99                        //数值越大优先级越高

advert_int 1                         // 通过间隔秒数(心跳频率)

authentication {

auth_type PASS                      //认证类型

auth_pass 123456                    //认证字串

}

virtual_ipaddress {

  1. 0.1.254                        //指定漂移地址

}

}

(7)查看日志:

wKiom1RDar7SoVLoAAD0Bmuej9Y296.jpg

看见BACKUP就可以了,当我们主服务器停止服务后,应该不难发现BACKUP就自动跳转成

MASTER了。说明这个双击热备就已经成功部署。

 

 

步骤3:最后一步就是建立gre通道。按照上图所属建立:

192.168.77.137——192.168.77.9建立的通道名称为tunnel2

192.168.77.35——192.168.77.9建立的通道名称为tunnel3

一、检查看是否已经加载了内核模块:

spacer.gif

二、加载模块,建立路由,这一步写出脚本就可以了

首先:C1

wKiom1RDaw-ypwjKAAFPJsrvRtk941.jpg

注释:172.16.4.1172.16.4.2tunnel2建立时生成的地址

c2:

wKiom1RDa4SR3rvSAAFj7w8UGGs869.jpg

C3:

tunnel2

wKioL1RDa_yhB-I0AAFjUCorMKg479.jpg

Tunnel3:

wKioL1RDbDiwT6odAAGT8jgXzEk393.jpg

这样两个通道就建立起来了。

验证一下:C3ifconfig

wKioL1RDbHihHmNEAAJPfk2HfKk289.jpg

经过实验;当主机master存在的时候,客户机C4是可以ping20.0.2.1的。这样就说明我们这个通道是完全建立起来了的。

注:当我们把主服务器关闭之后会发现虽然漂移地址已经飘到了C2上。就是20.0.1.254已经在C2eht1上了。是能够ping192.168.77.9的地址,说明NAT已经起作用了。但是不能够访问20.0.2.1。经过多次试验终于发现是路由出问题了:(排错)

Route –n 查看C3的路由表:不难发现原来我们写的脚本里面同时加入20.0.1.0/24这条路由。是先执行的生效。后执行的是没有结果的,所以看到只有tunnel220.0.1.0/24的。所以必须想办法,在MASTER主机down机之后能够及时的删除掉这条路由然后在加上:

Ip route add 20.0.1.0/24dev tunnel3

wKioL1RDbMjSZsQPAADhUmP_7nU134.jpg

这里暂时想到一个办法:就是在C3上面编写一条脚本xiaoluo.sh,时刻监控192.168.77.137(MASTER)这台机器。判断192.168.77.137断开之后就执行下面这个脚本:(脚本内容)

注:在学习了keepalive原理之后可以使用通知机制应该可以实现。

wKioL1RDbPmBbFMaAAClHgBF9zo674.jpg

crontel进程里面调用,没两分钟检测一次。这样就能保证在MASTER主机关机或者异常的时候自动调到BACKUP主机。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值