为什么属于不同 VLAN 但属于同一网络的设备不能相互通信?
在上图中,当两台 PC 属于同一网络(如 192.168.1.10 /24 和 192.168.1.20 /24)但属于不同的 Vlan 时,我想它们无法相互通信。
那是对的。
我想知道两台PC如何知道另一台PC属于哪个VLAN?
他们没有。普通主机不知道 VLAN。
中间的交换机确实知道它是这样配置的(对于第 2 层),路由器也是如此(对于第 3 层)。交换机只转发VLAN 内的L2 流量,从不跨越。VLAN 的全部意义在于将主机彼此分开。
当 PC1 向 PC2 发送数据包时,它使用路由器作为网关。IP 数据包是为 PC2 寻址的,但封装帧是为网关寻址的。帧传送到未标记的交换机,被标记为 VLAN10 并被转发到路由器。
路由器提取数据包,确定它需要从连接到 VLAN20 的子接口转发出去,将其封装在发往 PC2 的帧中,对其进行标记,然后将其发送到交换机。交换机决定访问哪个端口(基于 PC2 的 MAC 地址),移除标签并将其转发给 PC2。
当帧到达交换机和路由器之间的中继端口时,VLAN tagg 会被插入到帧中,以便交换机和路由器知道该帧属于哪个 VLAN。
当框架在主干上时使用标签。该标签告诉交换机(或路由器)该帧属于哪个 VLAN。交换机仅在该 VLAN 内转发,路由器知道哪个子接口已被寻址。
路由器使用其路由表来决定它使用哪个子接口到达目标 IP。每个子接口都连接到其中一个 VLAN,并为该 VLAN 标记传输帧。
在相反的方向上,交换机根据入口端口的未标记(本机)VLAN 标记每个帧。
现在,我想知道两台 PC 如何知道另一台 PC 属于哪个 VLAN?
他们没有。普通主机不知道 VLAN。
在接入端口,是否会发生与中继端口相同的情况?
当数据包进入接入端口时,交换机将添加适当的 VLAN 标记。
当数据包即将在接入端口上退出时,交换机将删除 VLAN 标记,但在检查数据包是否发往正确的 VLAN 之前不会。交换机永远不会直接在两台主机之间转发数据包。
在上图中,当两台 PC 属于同一网络(如 192.168.1.10 /24 和 192.168.1.20 /24)但属于不同的 Vlan 时,我想它们无法相互通信。
除非路由器在它们之间转发数据包,否则不同 VLAN 上的两台主机无法通信。
路由器可能只有一个物理接口,但它有两个逻辑接口,每个 VLAN 一个。如果您想尝试在具有相同子网的两个 VLAN 之间进行路由,这会产生一些问题。
- 一些路由器会完全拒绝在两个不同的接口上配置相同的子网。
- 通过配置两个子网创建的隐式路由将相同,因此路由器将不知道将数据包发送到哪个接口。
- 主机会认为目的地是在线的,所以它们会针对目的地地址而不是默认网关进行 ARP。
所有这些问题都可以通过正确的路由器和配置来解决,是否应该解决它们是另一回事。我想对于大多数网络管理员来说,答案将介于“绝对不”和“仅在特殊情况下”之间。
默认情况下,基本上不同的 VLAN 不会相互通信。要使它们通信 VLAN 间路由,需要启用。
不同的 VLAN 不会相互通信,因为不同的 Vlan 分配给交换机中的不同节点。交换机不允许他们交谈。除非在不同的 VLAN 上配置了任何路由。为了确保不同 VLAN 之间的路由,需要配置 VLAN 间路由。“IP路由”
