同一子网上的路由器接口

网络工程 路由器 网络 子网 交通
2022-02-10 08:03:33

有人可以解释一下为什么不能在同一个子网上有 2 个接口吗?

路由器是否使用网络地址转发流量?

3个回答

为什么我们不能在同一子网上有 2 个接口?

您可以(尽管某些设备可能会有所不同)。只有极少数情况下这是有意义的。路由器在子网之间转发,因此具有相同子网的多个接口很少有用。(我指的是逻辑接口。聚合链接时,多个物理接口通常是有意义的,正如@Peregrino69 已经指出的那样。)

路由器是否使用网络地址转发流量?

是的,路由器通过数据包的目标网络地址(通常是 IP)转发。

  1. 路由器可以通过不同的接口物理连接到同一个子网。

  2. 如果单个路由器有两个面向同一个子实体的接口,则实现动态路由协议的路由器可能无法工作。这与信息的交换方式和最短路径的计算方式有关。因此,路由协议可能不支持两个接口连接到同一子网的情况。即,如果发生这种情况,该协议将做错事。例子:

    • OSPF RFC,附录 F或多或少说您实际上可以。您必须专门配置路由器,根据我的阅读,配置错误可能会导致不正确的行为。

    • 这是一个链路测试简单配置,两个接口具有相同的 RIP、EIGRP 和 OSPF 子网。根据链接,RIP 和 EIGRP 都可以工作,但是 IOS 版本的 OSPF 无法计算正确的路由

    • 这也适用于网桥/交换机。STP 特别指定了如何处理两个接口连接到同一个 LAN 的情况。在这种情况下,网桥根据该接口标识符选择一个。

  3. 与转发相关的任何事情都不会阻止路由器在同一子网上拥有两个接口。在路由器有多个接口可以将流量路由到同一目的地的情况下没有什么特别的,这种情况是这种情况的特例。

    3.1。首先,在给定路由器和给定目的地之间通常有多个物理网络路径,并且不同的路径通过不同的接口(或通过相同接口连接的不同路由器,例如,如果路由器连接到相同的子网)。最短路径路由协议的目标是选择最好的(基于成本/度量)。在这样做的同时,它还会选择该路径通过的接口。

    3.2 也可能发生多条路径具有相同成本的情况。在这种情况下,有两个选项:a) 路由器选择一个(无论哪个都无关紧要),b) 路由器在它们之间分配流量 - 这称为等价多路径 (ECMP)。AFAIK 至少大多数域内协议都执行选项 b。

这是一个非常简化的解释。这仅适用于路由器在同一子网中具有 2 个本地连接的接口而没有链路聚合或其他绑定方法的情况。

有两种类型的网络和接口:物理的和逻辑的。物理接口是插入电缆的端口,物理网络是连接到网络的物理设备的排列;通常在同一个物理位置。逻辑接口是用于做出转发决策的 IP 地址,逻辑网络是由网络地址标识的子网。逻辑网络可以扩展到多个物理位置。

假设您有一个网络 192.168.1.0/24。要将流量路由到该网络,您的路由器必须具有连接到该网络的接口,并且该接口必须具有 IP 地址。像这样:

                 -------------------------
                 | ROUTER                |
                 |       192.168.1.1 int1--------- 192.168.1.0/24 network
  INTERNET-------int0 10.10.10.10        |
                 -------------------------

网络中的设备将有一个路由表,指示它们将所有流量路由到所有未知网络的 IP 地址 192.168.1.1(默认网关)。路由器将有一个路由表显示:

Route all traffic to network 192.168.1.1 through physical interface int1 (alternatively logical interface 192.168.1.1)
Route all traffic to all other networks through physical interface int0 (alternatively logical interface 10.10.10.10)

有 2 个逻辑接口指向同一个逻辑网络 (192.168.1.0/24) 会使事情变得混乱。让我们假设这种情况:

WEB1 2.2.2.2/24
   |
   |
   |2.2.2.1/24
IROUTER
   |1.1.1.1/32
   |
   |               LAN 192.168.1.0/24
---|-------------    --------------
| R0 1.1.1.2/32 |    |            | 
|               |    |            |
| 192.168.1.1 R1------    SW1     ----PC1 
|               |    |            |
| GWROUTER      |    --------------
|               |    --------------
|               |    |            |
| 192.168.1.2 R2-----     SW2     ----PC2 
|               |    |            |
-----------------    --------------

PC1 想访问 WEB1 在 IP 地址 2.2.2.2 上提供的网站。服务器不在子网 192.168.1.0/24 中,所以它会将数据包发送到 GWROUTER 192.168.1.1。它也不知道服务器在哪里,但它知道到所有未知目的地的流量必须流向 IROUTER 1.1.1.1,因此它将数据包转发到那里。IROUTER 直接连接到子网 2.2.2.0/24,所以它会按照指令“通过本地连接的接口将所有流量转发到 2.2.2.0/24”,从而到达 WEB1 服务器。

WEB1 发送响应。IROUTER 不知道最终目标在哪里,但它知道请求来自 GWROUTER,因此它将响应转发到 1.1.1.2。GWROUTER 收到它,由于它直接连接到 192.168.1.0/24,它将遵循指令“通过本地连接的接口将所有流量转发到 192.168.1.0/24”。

但是有 2 个本地连接到 192.168.1.0/24 的接口。应该使用哪一个来转发响应?

出于冗余和效率目的,有多种方法可以组合多个物理接口,以便将它们呈现为单个逻辑接口;例如 LACP。类似地,有一些方法可以将多个逻辑接口组合到一个物理接口上。例如配置子接口将流量转发到多个 VLAN。

还应该注意的是,任何单独的制造商都可能有一个连接一个子网的解决方案,可能是通过 2 个单独的逻辑接口,而不需要任何类型的绑定或链路聚合。但是,这些是专有解决方案,不适用于一般级别。