方案1:在***客户端使用多个配置文件实现(由用户选择拨号)

基本说明:

  生产环境中比较规范的做法是让所有的××× server尽可能共享一台server,ca证书或者连接到同一个认证系统(即便跨机房)。这样只需要一份客户端认证和文件和多份指定不同的*** server的配置文件及科研实现***的负载均衡


实施大概过程

 首先要把一份服务端keys拷贝到所有*** server的服务器上,然后再客户端本地有多个不同的客户端拨号配置文件(仅仅配置文件连接中的服务器IP有差别),由使用的用户选择拨号,这种方法也同样适合统一认证系统,如(本地文件,数据库,RADIUS、LDAP)认证

  

  

1.搭建两个open***服务器,但是安装成功了,就结束。

2.在上面安装好的一台服务器上面用下面命令,进行下面产生ca证书,server.conf、密钥和

  用户的证书、密钥等。

3.把步骤二、那一台服务器生成的ca证书,server.key、密钥和用户的证书、密钥已经server.conf配置文件等(也就是keys目录下的所有内容,和server.conf配置文件),打包。

  放在另外一台服务器对应的目录下。(如:/etc/open***/目录)

4.把第二台***服务下面。被复制过来的server.conf配置文件的local监听ip,改为本服务器的IP.

5.分别启动着这两台服务器的***服务。如果成功,服务端就搭建成功


注意:这个使用中两台open***服务器的内网网段要一致。


客户端:

1.和***服务器一样,把ca.key、用户的key和证书,放在windows的***客户端上面。但是.o***文件用两个,至上把

  这两个o***客户端配置文件的名称不一样。(如01.o***。02.o***),文件内容里面的内容,至上把IP给我每个服务器不同的IP

  就是这么简单,之后就拨号测试了

  

  客户端用一套认证文件。两份o***配置文件

  

 环境:

open***1 server

  eth0: 10.0.0.13 

  eth1: 192.168.2.2

  

open***1 server

  eth0: 10.0.0.14

  eth1:192.168.2.3

=============================

#***-13.o*** 配置文件

client

dev tun

proto tcp

remote 10.0.0.13 52115     #这里是服务端的IP和***服务的端口

resolv-retry infinite

nobind

persist-key

persist-tun

ca ca.crt                 #这里是当前用户的ca证书

cert gao.crt           #这里是当前用户的ca证书

key gao.key               #这里是当前用户的ca证书

comp-lzo

verb 3

======================================== 

#***-14.o*** 配置文件

client

dev tun

proto tcp

remote 10.0.0.14 52115     #这里是服务端的IP和***服务的端口

resolv-retry infinite

nobind

persist-key

persist-tun

ca ca.crt                 #这里是当前用户的ca证书

cert gao.crt           #这里是当前用户的ca证书

key gao.key               #这里是当前用户的ca证书

comp-lzo

verb 3

  

  #####################

  当内网网关不是指向open***服务器的时候,适当使用下面命令

  open***1 server

  iptables -t nat -I POSTROUTING -o eth1 -s 11.8.0.0/24 -j SNAT --to-source 192.168.2.3

  

  open***2 server:

  iptables -t nat -I POSTROUTING -o eth1 -s 11.8.0.0/24 -j SNAT --to-source 192.168.2.2

===================

  上面中的11.8.0.0/24 是open***虚拟出来的网段

  192.168.2.2 是open***内网网卡的ip

  

  

  方案1的特点:

  1、该负载均衡方案操作简单,不引人多余服务,因此不需要增加多余的单点故障,但用户连接的×××不能使用时,用户就可以人工选择拨号其他的×××服务器

  2、如果使用者为公司内部员工,此种方案值得推荐

  3、从广义上讲是用户端实现负载均衡的方案。

  

 

###############################################################################


  #open***服务高可用方案2 

  

 方案2:通过在客户端配置文件实现负载均衡

 方案说明:

 本方案是通过一个open***客户端文件,例如:lvnian.o***,在这个配置文件里面配置多个×××服务端的地址,然后利用客户端参数功能,在拨号时由客户端随机自动选择服务端,当连接的×××服务器宕机是,不需要人工干预,客户端会自动判断并且自动连接到其他可以的服务器。

 

 

 服务器操作和方案1服务器的操作一样。

 但是是客户机只需要一份o***配置文件。配置文件里面配置多个***的IP,当某一台***服务器宕机之后,客户端自动连接另外一台***服务器

 

客户端配置文件多的参数如下:

   客户端用一套认证文件。一份o***配置文件。配置文件内容比上面的方案1,多下面参数

 ###added 

remote 10.0.0.13  52115

remote 10.0.0.14  52115  #有多少台服务器,就可以用多少个remote ip,如果服务端的端口不一样,也需要把端口ip服务端的端口

remote-random

resolv-retry 20

###################


#***-13-14.o*** 配置文件

client

dev tun

proto tcp

#start 负载均衡高可用方案2客户端配置文件增加内容

remote 10.0.0.13  52115     #这里是服务端的IP和***服务的端口

remote 10.0.0.14  52115

remote-random

resolv-retry 20

#end 负载均衡高可用方案2客户端配置文件增加内容

resolv-retry infinite

nobind

persist-key

persist-tun

ca ca.crt                 #这里是当前用户的ca证书

cert gao.crt           #这里是当前用户的ca证书

key gao.key               #这里是当前用户的ca证书

comp-lzo

verb 3



方案2结论:

1、该负载均衡方案操作简单,不引人多余的服务(后面的方案都会引人服务),因此不会增加多余的单点故障,当用户连接的×××不能使用适合,电脑可以重新自动拨号连接到其他可用的×××服务器上。

2、对比方案1,方案2的配置更加简单,仅需要一个o***配置文件多个remote参数,拨号时客户端会随机自动选择拨号,方案1则需要手动选择不同的配置文件拨号。

3、这种方案是最值得推荐的


不仅仅可以在windows中可以使用,企业的跨机房也可以用上面的方案。

当然也可以配合hearbeat或者keepalived使用





##############################################################################

 方案三:通过域名加DNS轮询的方式实现负载均衡(DNS自动分配×××)

 

1.服务器的配置和方案1和方案2的一样

2.客户端也是用一个配置文件。配置文件和方案2的差不多,但是方案2中的是IP.方案三改为用域名去连接了。

 把域名解析为多个A记录。A记录分别对应不同ip,也就是对应不同的***的服务器

 

 客户端配置文件,把

 

  ###added 

remote www.gaoguodeng.com  52115

remote-random

resolv-retry 20

###############


安装dns具体步骤

1.yum安装dns

yum install bind bind-chroot bind-libs caching-nameserver ypbind -y


2.配置dns配置文件

 默认配置文件在/etc/named.conf

 修改下面地方

 

 [root@L××× ~]# cat /etc/named.conf            

//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//


options {

        listen-on port 53 { any; };       ####这里修改为any

        listen-on-v6 port 53 { ::1; };

        directory       "/var/named";

        dump-file       "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

        allow-query     { any; };            ####这里修改为any

        recursion yes;


        dnssec-enable yes;

        dnssec-validation yes;

        dnssec-lookaside auto;


        /* Path to ISC DLV key */

        bindkeys-file "/etc/named.iscdlv.key";


        managed-keys-directory "/var/named/dynamic";

};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


zone "." IN {

        type hint;

        file "named.ca";

};


#######etiantian.org zone by oldboy

zone "etiantian.org"{

     type master;

     file "etiantian.org.db";

 

};

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

[root@L××× ~]# 

 

 ===============================

 [root@L××× ~]# cat /var/named/etiantian.org.db

@ IN    SOA   etiantian.org    root(

                        2008030201

                        1H

                        15M

                        1W

                        1D )

                IN      NS      @

                IN      A       127.0.0.1

***             IN      A       10.0.0.3

***             IN      A       10.0.0.4

#***             IN      A      10.0.0.5

[root@L××× ~]# 

==============================


配置/etc/resolv.conf   

[root@L××× ~]# cat /etc/resolv.conf     

; generated by /sbin/dhclient-script

search localdomain

nameserver 10.0.0.3            ##配置文DNS服务器的本地ip

[root@L××× ~]# 

 ==========================

 出现下面结果,证明配置DNS成功

 [root@L××× ~]# host ***.etiantian.org

***.etiantian.org has address 10.0.0.3

***.etiantian.org has address 10.0.0.4

***.etiantian.org has address 10.0.0.5

[root@L××× ~]# 



客户端的配置文件如下:


client

dev tun

proto tcp

remote ***.etiantian.org 52115     #这里是服务端的IP和***服务的端口

remote-random

resolv-retry 20

resolv-retry infinite

nobind

ns-cert-type server

persist-key

persist-tun

ca ca.crt                 #这里是当前用户的ca证书

cert lvnian.crt           #这里是当前用户的ca证书

key lvnian.key              #这里是当前用户的ca证书

comp-lzo

verb 3

###



注意客户端的dns要设置为10.0.0.3。也就是设置成你搭建DNS所在服务器IP。同时清掉dns。

在windows请dns缓存的命令是: ipconfig /flushdns


并且能在客户端ping同***.etiantian.org



注意:方案3,可能会存在dns缓存的问题,导致无法切换,可以在windows客户端的cmd下面清除dns缓存。才能实现