一个简单的双击热备、vpn方案
gre vpn
这个是前段时间在IDC公司上班的一个案例
案例要求:
1、客户要求两个内网之间能互相访问,只租用机房的地址。
2、在两个不同的地方,网段不一样内网不一样。
3、要求是在大并发情况下能使用(所以我放弃原本的open vpn方案,改用系统模块的gre。因为说对数据的全要求性也没那、在两个不同的地方,网段不一样内网不一样。
3、要求是在大并发情况下能使用(所以我放弃原本的open vpn方案,改用系统模块的gre。因为说对数据的全要求性也没那么高)。
4、尽量要求不断网。
需求分析:么高)。
4、尽量要求不断网。
需求分析:
一、由于NAT服务是有非常大的流量通过的,我们必须压确保我的路由设备在出现故障的时候,能够智能的切换到另一台备用机。以保证网络的正常运行,下面实验中使用keepalive软件时间NAT服务器的双击热备。漂移地址为20.0.1.254.
二、搭建gre VPn ,为了实现不同的网段之间互相通信的。
三、主要实施条件是在C1主机和C2主机上配置Keepalive。(C1和C2为NAT服务器。C1设置每MASTER。) C1和C3之间建立tunnel2
C2和C3之间建立tunnel3.
注:C4的网关指向的是漂移地址:20.0.1.254
如图所示:
步骤1:
配置NAT。
C1和C2上面开启路由转发功能。
Vi /etc/sysctl
net.ipv4.ip_forward = 1
分别情况两天服务器的防火墙策略:
Iptables –F
Iptables –F –t nat
然后iptabls –L查看是否清空防火墙策略
三、在192.168.77.137和192.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
验证:在c4上ping192.168.77.9通了的话说明SNAT已经配置成功了。
步骤2:安装配置:keepalived(分别在C1和C2上面配置)下面以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
[[email protected]]# 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 {
0.1.254 //指定漂移地址
}
}
(5)要是上面配置无误就可以启动keepalived服务,MASTER的主服务器讲为eth1接口自动添加VIP地址。Ip addr可以查看:
[root@localhost Desktop]# /etc/init.d/keepalived start
(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 {
0.1.254 //指定漂移地址
}
}
(7)查看日志:
看见BACKUP就可以了,当我们主服务器停止服务后,应该不难发现BACKUP就自动跳转成
MASTER了。说明这个双击热备就已经成功部署。
步骤3:最后一步就是建立gre通道。按照上图所属建立:
192.168.77.137——192.168.77.9建立的通道名称为tunnel2
192.168.77.35——192.168.77.9建立的通道名称为tunnel3
一、检查看是否已经加载了内核模块:
二、加载模块,建立路由,这一步写出脚本就可以了
首先:C1:
注释:172.16.4.1和172.16.4.2是tunnel2建立时生成的地址
c2:
C3:
tunnel2
Tunnel3:
这样两个通道就建立起来了。
验证一下:C3:ifconfig
经过实验;当主机master存在的时候,客户机C4是可以ping通20.0.2.1的。这样就说明我们这个通道是完全建立起来了的。
注:当我们把主服务器关闭之后会发现虽然漂移地址已经飘到了C2上。就是20.0.1.254已经在C2的eht1上了。是能够ping同192.168.77.9的地址,说明NAT已经起作用了。但是不能够访问20.0.2.1。经过多次试验终于发现是路由出问题了:(排错)
Route –n 查看C3的路由表:不难发现原来我们写的脚本里面同时加入20.0.1.0/24这条路由。是先执行的生效。后执行的是没有结果的,所以看到只有tunnel2走20.0.1.0/24的。所以必须想办法,在MASTER主机down机之后能够及时的删除掉这条路由然后在加上:
Ip route add 20.0.1.0/24dev tunnel3
这里暂时想到一个办法:就是在C3上面编写一条脚本xiaoluo.sh,时刻监控192.168.77.137(MASTER)这台机器。判断192.168.77.137断开之后就执行下面这个脚本:(脚本内容)
注:在学习了keepalive原理之后可以使用通知机制应该可以实现。
在crontel进程里面调用,没两分钟检测一次。这样就能保证在MASTER主机关机或者异常的时候自动调到BACKUP主机。
本文出自 “小罗” 博客,请务必保留此出处http://xiaoluoge.blog.51cto.com/9141967/1565665
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。