同一 vlan 上的子网之间的数据包路由

网络工程 路由 VLAN 子网 交换
2021-07-26 02:52:23

我试图了解数据包是如何在同一 VLAN 内路由的。我知道通常 VLAN 和子网之间应该有 1:1 的映射。但是,如果我部署以下配置(如下图所示),主机 192.168.0.1 是否能够在中间没有路由器的情况下访问主机 10.0.0.1?

该图显示了两个不同网络 192.168.0.0/24 和 10.0.0.0/24 上的 4 台主机,通过第 2 层交换机连接。交换机上的所有端口都配置为 vlan 10

在此处输入图片说明

4个回答

通常,您需要一个路由器来在子网之间进行路由。一种常见的配置是让一个路由器接口在两个不同的子网中具有两个 IP 地址(思科将第二个称为“辅助 IP”)。

以下是一些有用的情况:

  1. 您最初为子网分配了一个 /24,但现在在高峰时间拥有超过 254 台主机。与其重新编号为 /23,不如添加一个 /25 次要。
  2. 您正处于重新编号的过程中,并且在过渡期间可以使用两个子网以最大程度地减少影响。
  3. 您为工作站提供 Internet 可路由子网,并为 IP 电话、打印机、SAN 基础设施等提供 RFC1918 地址空间......(这会使您的 DHCP 配置变得复杂,但简化了访问端口配置)。

可以将终端主机配置为直接在两个 vlan 上进行通信,但这很容易出错。更简单的配置更可靠(每个主机一个 IP,每个 vlan 一个子网)。

具有多个 IP 地址的终端主机会遇到无穷无尽的问题,因为它们每次启动套接字时都必须为该套接字选择一个源 IP 地址:但是终端主机没有路由信息来做出关于哪个源 IP 地址最佳的智能决定.

请注意,每个双协议 IPv4/IPv6 网络在一个 vlan 上都有两个不同的子网。这些子网根本无法相互通信,因为它们是不同的 IP 协议。现代操作系统结合了大量智能来决定是通过 IPv4 还是 IPv6(关键字:“快乐的眼球”)联系目的地。

如果他们知道另一个子网与他们“在线”,他们就可以。这是“接口”路由进来的地方。(如何做到这一点取决于操作系统......)

例如(linux盒子):

199.XXX.XXX.0/28 dev eth0  proto kernel scope link
10.0.0.0/24 via 199.XXX.XXX.2 dev eth0
192.168.1.0/24 dev eth0 scope link

第一个是内核在将地址分配给接口时创建的。第二个是到第二个路由器后面的 LAN 的静态路由。最后,第三个是同一 LAN 上的辅助子网。

这种覆盖在现代网络中是不受欢迎的。这个特定的网络大约有 30 年的历史,所以它不适合“现代”。

不,你需要有一个路由器。所以可能会出现另一个问题——首先需要什么 VLAN?VLAN 还限制广播和未知单播流量(交换机应在所有 VLAN 接口上泛洪)的流量,以减少对逻辑分离实体的不必要更新。

  • 在 OSI Layer2 级别 - 是
  • 在 IP 级别 - 否(无需在本地机器上进行额外配置 - 静态路由,但每台计算机都作为路由器运行)
  • 在多播级别 - 是
  • 在应用程序级别(理论上) - 是