赞
踩
企业在两地三中心或者异地机房时候,往往要实现多个机房之间的直通,所谓直通就是两个机房设备分别属于不同的网段,双方可以互ping对方机房某台服务器的物理IP地址,不做NAT转换,服务器在收到数据包时也可以看到发送方的真实IP地址。实现这种效果的方式很多,比如拉专线。本文介绍最廉价的方案——通过公网连接的虚拟专用网连接方案。
假设专线或者购买专门的虚拟专用网设备往往意味着不菲的开销,本文主要介绍完全0成本的搭建方案,采用开源的Open微皮恩的实现方式,只需两个机房各有一台能上网的Linux服务器即可,并且只需要开放一个公网端口。
Open微皮恩有tun和tap两种模式可以选择,关于两种方式的区别网上有很多介绍,最主要的就是tun模式传输的是3层数据包,而tap模式比较牛逼可以传输二层的数据帧。tun模式使用比较普遍,搭建方便,比较适合配合公有云搭建。而tap模式搭建比较复杂,需要在服务端主机和客户端主机上新建虚拟网桥,然后桥接物理网卡和tap网卡。对于一些公有云来说不合适。以腾讯云为例,一台云主机只能绑定两块网卡,而且两块网卡各最多能绑定两个IP,不仅限制非常多,而且辅助网卡的流量是全部通过主网卡来流动的,建立网桥非常容易失败。
由于两地机房内的设备是分属于不同网段的,所以我们不需要二层数据帧在两地进行传递,我们只需让Open微皮恩当做一个路由来使用,路由两地的数据包即可。除非你两个机房共用同一个网段,需要在内网传输非IP协议,比如传输ARP请求,DHCP请求等才会用到tap,所以我们还是用搭建更方便更适合公有云的tun模式为好。
网络拓扑图大致如下,VPN服务器架设在A机房,同时做好相关网络的路由,也就是把VPN服务端服务器设置为内网网关,A机房的网段为10.123.1.0/24。然后把VPN客户端架设在B机房,也要做好相关的路由,把VPN服务器当成路由器或者网关。B机房的网段是192.168.31.0/24。同时VPN自己也会有一个网络,用来给加入的各个客户端分配IP,这里用的是10.9.0.1/24
在《Ubutnu16.04搭建Open微皮恩服务端过程记录》这篇文章中,我已经介绍了如何搭建一个虚拟专用网服务端,并介绍了如何生成证书和配置open微皮恩,关于生成证书的部分和之前一模一样,下面主要介绍路由的配置。
tun模式下,该微皮恩是一个点对点的网络,也就是说你的客户端生成的tun网卡只能够和服务端直接通讯,子网掩码为32,服务端也是一样,也就是说,你无法直接设置路由表,把某个客户端当成一个路由地址来配置,如下
- tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
- inet addr:10.9.0.1 P-t-P:10.9.0.2 Mask:255.255.255.255
- UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。