在实验室中修改网络路径

网络工程 局域网 交换
2022-03-03 05:19:49

假设一个物理交换机连接了以下物理或虚拟节点(我们谈论的是实验室环境):

  • “客户端”在 192.168.1.1,它向 192.168.1.2 发送请求
  • “server1”在 192.168.1.2
  • “server2”在 192.168.1.2(这个 IP 不是错误的)
  • “控制器”在 192.168.1.100

目标是以“控制器”可以决定客户端是否必须与 server1 或 server2 一起使用的方式配置所有系统。也就是说,控制器中的命令必须修改网络,以便“客户端”在地址 192.168.1.2 处看到服务器 1 或服务器 2。

我正在考虑以下可能性:

  • 使用 VLAN:VLAN 10(例如)将包含客户端和必须接收其请求的服务器。控制器应修改 server1 或 server2 中的哪一个属于 VLAN 10。
  • 使用在控制器中创建的虚拟交换机:此虚拟交换机将连接客户端和与其相关的服务器。控制器必须连接/断开与虚拟交换机 server1 或 server2 的连接。
  • 欺骗 ARP:在 server1 和 server2 中禁用 ARP 应答。控制器将回答对 192.168.1.2 的 ARP 查询,并给出 server1 或 server2 的地址作为回答。
  • ...(其他选项)。

关于最常见/可行选项的任何提示?现有的相关软件?(所有机器都是 Linux 机器)。

澄清:

最终目标是在实验室中允许自动测试。例如,测试会话可以是:

  1. 从主映像克隆 server2。
  2. 将被测补丁应用到 server2
  3. 将流量路由到 server2
  4. 执行自动化测试

同时,客户端和/或服务器的其他克隆可能正在被其他测试会话使用。

1个回答

如果您想完全在第 2 层执行此操作,则需要从服务器中删除常规 ARP。您可以在操作系统级别(例如带有 arptables 的 Linux)或使用 ACL 在交换机级别过滤 ARP。然后,您在某处生成免费 ARP 以使客户端使用当前所需的目标 MAC。

在第 3 层上执行此操作需要介于两者之间的路由器。有两种基本变体。

  1. 服务器必须在另一个子网上。您为静态 ARP 配置路由器并根据需要进行更改。如果客户端不应该知道它正在使用路由器,则可以设置代理 ARP 以使相信。
  2. 在路由器上使用目标 NAT,您可以将 192.168.1.2 映射到一个或另一个服务器的 IP(实际上位于另一个子网/VLAN 上)。此方法也可以与策略路由(或将某些端口映射到 Server1,将其他端口映射到 Server2)结合起来,类似于负载平衡。