-1

考虑一下我有一个连接到多个终端设备的交换机的场景,比如 X、Y、Z,其中 X 在 Vlan_X 中,Y 在 Vlan_Y 中,Z 在 Vlan_Z 中。

该交换机通过路由器连接到外部网络,用于路由数据。同样在这里,每个 Vlan 都被指定一个唯一的 IP,因为每个 Vlan 代表一个子网。

现在 X 和 Y 都通过网络发送 TCP/UDP 请求,该请求通过路由器进行路由。

我的问题是路由器在路由回复时如何识别 X 和 Y 的 MAC 地址?

由于Router和Switch之间的线路启用了Trunk,Router如何在X或Y对应的802.1q中添加正确的Vlan ID?

谢谢查兰

4

1 回答 1

0

暂时忽略 vlan 的存在 - 假设您有三个独立的设备

switch_VXswitch_VYswitch_VZ与主机X,Y,Z连接到它们。

现在假设您的路由器有一条不同的以太网电缆连接到每个交换机。

在您的路由器上,您将拥有三个不同的以太网端口。 eth_VX , eth_VY , eth_VZ

在此设置中,它的工作原理应该很明显。

  • 每个交换机都有自己的第 3 层协议地址子网,适用于您使用的任何协议(IPv4、IPv6、AppleTalk、IPX 等)
  • 路由器需要在每个接口上进行配置,该接口的地址与交换机正在使用的地址范围相同。
  • 然后路由器通过查看它的协议地址到达主机,寻找匹配的接口,然后使用正确的协议->mac 转换机制与终端主机对话。
    • 对于 IPv4,这意味着路由器在其路由表中查找,找到eth_?? ,然后在 ARP 表中查找它正在寻找的主机的 MAC 地址。
  • 每台主机都配置有来自其使用的交换机上的子网的地址,并且每台主机都配置为使用路由器的地址作为其默认网关。

从逻辑上讲,这正是它的工作方式——总是如此。但是,限制人们为每个子网使用单独的交换机组并不有效。需要单独的以太网电缆和每个交换机的路由器端口效率不高。当您想要进行适当的服务并添加冗余电缆和路由器等时,成本会更高。

所以制造商稍微改变了物理拓扑,并将一些物理的东西移到了软件配置中。然而,这些设备仍然在做同样的工作。

因此,您在设备(或一组设备)上拥有单独的 vlan,而不是单独的交换机。在上面的解释中,将switch_VX替换为switch_vlan_X。交换机上的 VLAN 配置有效地创建了一个完全独立的交换机。它运行自己的 MAC 地址表,运行自己的生成树副本。在交换机内部,它必须记录每个以太网帧内的 VLANID - 以确保它永远不会被发送到错误的端口。交换机在收到帧时添加 VLANID,并在将其发送出去之前将其剥离。所以最终主机不知道它正在发生。这一切都被隐藏了。

这样就删除了多个交换机,我们可以在一台交换机上配置我们的 vlan。

但是我们仍然有多根电缆连接到我们的路由器。因此,让我们通过配置交换引擎将连接到路由器的端口视为特殊端口来解决这个问题。而不是剥离所有帧的 VLANID - 让我们将帧发送到仍然在其上的 VLANID 的路由器。我们需要就帧的通用格式达成一致,以便路由器知道去哪里寻找。802.1Q 是行业标准,但还有其他一些选择。大多数供应商将端口配置为保留 VLANID 时将其称为“主干”端口。

现在路由器在单个接口上获取帧流,但其中有需要删除的 VLAN 标识符。让我们让路由器在软件中做到这一点。所以在上面的描述中,不是不同的以太网接口;我们将拥有一个理解 VLAN 的软件界面。将所有提及的 eth_VX 替换为 eth_vlan_X 。现在路由器知道它何时收到属于 VLAN X 的帧,它与接口 eth_vlan_x 相关联,它可以删除 VLANID 并适当地处理它。如果路由器想要从接口 eth_vlan_x 发送一个帧,它知道它需要将 VLANID X 插入到每个帧中。

因此,我们从逻辑设置开始,并将物理布局更改为更灵活、更高效。但是,从逻辑上讲,它与使用独立的单独设备的设置完全没有区别。

于 2014-04-09T20:05:10.837 回答