我有几个 Hyper-V 服务器,它们不在同一 LAN 中。每个服务器上都有几个 Hyper-V 客户虚拟机,它们通过内部虚拟交换机连接。现在我想连接这两个虚拟交换机,以便客户虚拟机(和主机)可以相互连接,就像它们都插入一个真正的交换机一样。
例子:
- Hyper-V 主机 A 公网 IP(物理网卡):123.123.123.1
- 虚拟交换机上的 Hyper-V 主机 A IP(虚拟 NIC):10.0.0.10/24
- Hyper-V 客户机 A1 IP:10.0.0.20/24
- Hyper-V 客户机 A2 IP:10.0.0.30/24
- Hyper-V 主机 B 公网 IP(物理网卡):123.123.123.2
- 虚拟交换机上的 Hyper-V 主机 B IP(虚拟 NIC):10.0.0.100/24
- Hyper-V 客户机 B1 IP:10.0.0.110/24
- Hyper-V 客户机 B2 IP:10.0.0.120/24
目前,A 和 B 机器无法相互通信,只能与其他 A 或其他 B 机器通信。我想通过它们的公共 IP 连接主机 A 和 B,以便它们像在同一个 LAN/交换机上一样运行,并且例如 Guest B1 可以访问 10.0.0.20。这可行吗?如果可以,最简单的方法是什么?
我知道我可以在每台机器上设置 OpenVPN,但我更喜欢一种不需要在客户机上进行任何特殊设置而只需要在主机 A 和 B 上进行特殊设置的解决方案。
答案1
您正在寻找的是在 3 层网络上运行的 2 层桥接器。您可以通过几种不同的方式实现这一点。以下是我脑海中想到的几种方式:
微软的Hyper-V 网络虚拟化网关可以满足您的要求。它封装了 GRE 中主机之间不同虚拟子网的第 2 层流量。
您可以使用具有第 2 层隧道功能(如 GRE 或 L2TP)的路由器。您可以在软件中以虚拟路由器的形式执行此操作,也可以使用硬件路由器。