我有两台物理机器(都是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 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------------------------+ | | | +---------------------------------+ | | | | | | | | | +--------------------------------------+ | +----|--------|-------------------|----+ | | | | +--------+--------+-------------------+
换一种说法:
请指点一下教程或者提供一些详细的解释。
正如JelmerS写的,你应该考虑L3 VPN。
如果您真的需要分布式L2解决scheme:
结果:所有虚拟机和两台服务器都驻留在一个L2子网中。 通过连接L3-VPN(TUN接口),客户端可以访问虚拟设备,第一台服务器就像一个带有NAT的路由器一样工作。