年前相声演员封箱,我们封服务器,年前一周可以从繁重的hadoop劳动中挤点时间出来写点东西了。

接上一章,说一下Open×××的详细配置。以备大集群的扩展需要。
默认情况下,Open×××对客户端仅支持255.255.255.252这样的子网掩码。在windows客户端下,可以敲

open***.exe --show-valid-subnets

查看合法的客户端地址分配范围,按照VLSM(可变长子网掩码)的规则,一共有64组,128个可用的地址。除去Server所使用的地址,一共有127个,那么我们面临一个问题,如果服务器的数量超过127个,该怎么办?另外,还有个问题是,Open×××的分发地址是DHCP的,但是集群内的其他服务器肯定不能DHCP,否则就乱套了,该怎么办?

那么,实际上现在有两个问题,固定IP的问题,和×××的路由问题。

一、固定IP问题

这个问题可以这样解决,按照我们上两节所讲的Open×××的Server.conf配置,加一行。

#mkdir /etc/open***/ccd
#vi /etc/open***/server.conf

client-config-dir /etc/open***/ccd

#-------------整个的配置文件看起来应该是下面这样-----------

port 1194
proto tcp
dev tun
ca /etc/open***/ca.crt
cert /etc/open***/hadoopmaster.crt
key /etc/open***/hadoopmaster.key    # This file should be kept secret
dh /etc/open***/dh1024.pem
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 202.106.0.20" #客户端获得的DNS地址

push "route 10.9.0.0 255.255.0.0"
push "route 10.8.0.0 255.255.0.0"

route 10.9.0.0 255.255.0.0

client-to-client

client-config-dir /etc/open***/ccd

keepalive 10 120
comp-lzo
persist-key
persist-tun
status open***-status.log
log open***.log
verb 3

黄底加粗的字体,是需要新加入的。但是,也不要忽略红色字体,那是我们需要解决的第二个问题,也就是集群扩展所面临的路由问题。

我们来看下新建的/etc/open***/ccd下面都有些什么东西

#ls -la
drwxr-xr-x 2 root root 4096 Jan 13 12:13 .
drwxr-xr-x 3 root root 4096 Jan 13 12:20 ..
-rw-r--r-- 1 root root     32 Jan 13 11:52 slayer
#cat slayer
ifconfig-push 10.8.0.254 10.8.0.253
#

里面有一个文件,也就是以创建client key时所取的名字命名的一个文本文件,内容是
ifconfig-push 10.8.0.254 10.8.0.253
也就是让Open×××在DHCP时,将10.8.0.254地址,push给slayer的主机,且Point-to-Point地址是10.8.0.253

那这样岂不是10.8.0.0/31地址池里又少了一半?其实不是,如果你想指定某台服务器IP是253,就这样写
ifconfig-push 10.8.0.253 10.8.0.254

如果你不想用这种方法,可以去掉配置文件中的client-to-client
指定
ifconfig-push 10.8.0.253 255.255.255.0

照此推理,你要指定局域网内的其他服务器被分配固定的Ip地址,只需要按照该服务器创建key时候的名字建立这个文件,把IP地址和对端地址写进去就可以了。

那么,这个固定IP的问题解决了。

二、解决一下集群扩展的路由问题

回到问题一的解决过程中,配置文件的红色部分。扩展集群只需加入红色字体部分,让Open×××在push地址的过程中,将10.9.0.0的路由表push到客户端机器内,就可以实现不同网段间的互访了。在范例中,你看到,10.9.0.0和10.8.0.0,这是A类地址,本来就可以互访。不过,请注意看子网掩码的配置,255.255.0.0,也就是说,我是用A类地址但是是B类地址的子网掩码,也就是在默认没有路由的情况下,是不可相互访问的。

你有多少个子网,就需要写多少条push "route IP MASK",否则你即使连上了服务器,也是无法访问其他网段的服务器的,原因很简单,没有路由表。回包也就没有路由。

还有一点,如果你增加了路由,Windows客户端需要退出Open×××程序再重启才可以将路由表保存在你自己的电脑里,仅仅断开连接是没用的。而Linux则没有该限制。

整个Open×××的配置过程中,涉及的网络基础概念比较多,需要对OSI七层模型,子网划分,隧道连接有一定的概念。

这样的好处是,节省一大笔费用,支持×××的交换机和路由器一般都价格不菲。而这个办法,除了找个破PC之外,无需任何额外的支出。

再一个,如果你自认为破解技术很强悍,可以尝试***OpenBSD+Open×××,通常我不认为你能成功,除非你搞DDOS或者偷到了csr文件搞middle-man***。再要不然就只能绑架网管搞严刑拷打刑讯逼供了,通常这招会比较管用。

祝新年愉快。