在 Linux 上桥接两个不同的子网(物理以太网和虚拟以太网)?

在 Linux 上桥接两个不同的子网(物理以太网和虚拟以太网)?

我在想是否可以创建一个桥接器,同时允许每个桥接网络存在于它自己的子网中。
网络 1- 假设我有一个基于物理以太网的网络 eth01 - 带有子网192.168.x.x/16
网络 2- 我想创建另一个虚拟的网络 veth01(基于虚拟接口)与子网172.16.x.x/12

现在是否可以在 Network1 和 Network2 之间创建一个 Linux 桥接器(虚拟的而非物理的),这样即使在桥接之后,上述两个网络仍然有子网和自己的 DHCP。

非常欢迎有关如何创建此设置的任何参考或步骤/命令(如果可能)。

答案1

你在多个层面上的想法都是错误的。

  1. 网桥是第 2 层设备。如果通过网桥连接两个网络,则您将创建一个包含两个连接网络的单个第 2 层网络 - 在您的例子中,连接到接口 eth01 的基于物理以太网的网络和连接到接口 veth01 的虚拟网络。其中一个网络上承载的任何第 3 层网络也将在另一个网络上承载。
  2. 第 2 层和第 3 层网络之间没有一对一的关系。因此,在您的场景中,由物理以太网和虚拟网络组成的桥接网络可以承载 eth01 上的物理以太网最初承载的子网 192.168.xx/16 和 veth01 上的虚拟网络最初承载的子网 172.16.xx/12,而两者之间不会以任何方式交互。(除了可能争夺带宽。)
  3. DHCP 并不“属于”某个网络。如果操作得当,您可以在一个第 2 层网络上运行多个 DHCP 服务器,也可以运行一个为多个第 2 层网络提供服务的 DHCP 服务器。

从您的问题来看,您似乎想要配置两个 DHCP 服务器,以便其中一个仅为物理网络上的客户端提供服务,另一个仅为虚拟网络上的客户端提供服务。如果您在两者之间安装桥接器,则很难做到这一点,因为桥接器实际上消除了两者之间的区别。如果需要这样做,您应该重新考虑使用桥接器的决定,转而使用路由,或者您需要为 DHCP 服务器找到一个区分属性,以决定应该从哪个第 3 层网络获取 IP 地址以分配给给定的客户端。

相关内容