OpenVPN来联合多个服务器

我有两台物理机器(都是Ubuntu Linux)位于不同的托pipe公司。 现在,一台机器运行客户端可以通过VPN(OpenVPN)访问的虚拟机。 我现在需要的是将另一个物理服务器连接到它的虚拟机,VPN客户端也可以看到它,并且可以从内部DNSMasq服务器获得它们的本地IP。

这是我目前的configuration:

+--------------------------------------+ | Current VPN Server | | | | | |------+ | | | +-----------------+ | | tun |<====>| DNSMasq | | | | +-----------------+ | |------+\ ^ ^ | | || \\ / \ | | || \\ / \ | | || \\ / \ | | +---------------------------------+ | | | VH 1 | VH 2 | ... | VN N | | | | | | | | | | | | | | | | | | | | | | | | +---------------------------------+ | | | +--------------------------------------+ 

因此,VPN客户端可以使用内部DNSMasq实例来parsing私有名称,从而与虚拟机进行通信。 每个虚拟主机(VH)实例从DNSMasq中检索它的IP地址。 VPN服务器使用iptables NAT规则路由对这个IP的访问。

现在我想添加一个额外的物理服务器,以便所有的东西都是透明的客户端以及虚拟主机:

 +--------------------------------------+ +--------------------------------------+ | Current VPN Server | | New Server | | /============================================\ | | v | | v | |------+ | |------+ | | | +-----------------+ | | | | | tun |<====>| DNSMasq |<---------+ | tun | | | | +-----------------+ | | | | | |------+\ ^ ^ | | |------+\ | | || \\ / \ | | | || \\ | | || \\ / \ | | | || \\ | | || \\ / \ | | | || \\ | | +---------------------------------+ | | | +---------------------------------+ | | | VH 1 | VH 2 | ... | VN N | | | | | VH 1 | VH 2 | ... | VN N | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------------------------+ | | | +---------------------------------+ | | | | | | | | | +--------------------------------------+ | +----|--------|-------------------|----+ | | | | +--------+--------+-------------------+ 

换一种说法:

  • 新服务器上的虚拟主机必须与当前vpn服务器上的虚拟主机在同一个子网上
  • 新服务器的虚拟主机必须使用安全通道与Current VPN Server进行通信
  • DNSMasq应通过DHCP IP地址分配给新服务器的虚拟主机
  • OpenVPN服务器的客户端应该能够访问新服务器上的虚拟主机

请指点一下教程或者提供一些详细的解释。

正如JelmerS写的,你应该考虑L3 VPN。

如果您真的需要分布式L2解决scheme:

  • TUN界面创buildL3隧道。 L2需要TAP
  • 如果您正在运行多个虚拟机,可以在一个L2段中看到对方,那么您可能已经有了桥接适配器,它将所有机器和主机连接在一起。
  • 在第一台服务器和第二台服务器之间创buildL2 VPN
  • 通过OpenVPN TAP适配器创build的连接桥接在server1上
  • 由OpenVPN TAP适配器创build的连接桥接在server2上

结果:所有虚拟机和两台服务器都驻留在一个L2子网中。 通过连接L3-VPN(TUN接口),客户端可以访问虚拟设备,第一台服务器就像一个带有NAT的路由器一样工作。