首先,我已经知道有两种类型的 VLAN:
- 基于端口的 VLAN
- 基于标签的 VLAN(又名 IEEE 802.1q)
我正在使用 TP-Link TL-R480T+ v6。手册指出其交换机使用端口 VLAN - 我对此很好。
4.3.5.6 端口VLAN
VLAN 功能可以防止局域网中的广播风暴,增强网络的安全性。通过在物理 LAN 中创建 VLAN,您可以将 LAN 划分为多个逻辑 LAN,每个逻辑 LAN 都有自己的广播域。同一 VLAN 中的主机相互通信,就好像它们在 LAN 中一样。但是,不同 VLAN 中的主机不能直接相互通信。因此,广播报文被限制在一个 VLAN 中。
TL-R480T+提供端口VLAN功能,可让您根据端口号为LAN端口创建多个逻辑VLAN。
这是它在 Web 界面上的样子:
它确实可以防止来自不同 VLAN 的主机相互通信。但是我在配置了 3 个不同的 VLAN 后发现的第一个奇怪的事情是:路由器连接到交换机的接口对所有 VLAN 都使用了一个 IP 地址192.168.0.1
。来自任何 VLAN 的主机都可以使用该地址连接到路由器。怎么可能发生?
我假设它的路由器在内部创建了 3 个不同的虚拟接口,面向 3 个 VLAN,192.168.0.1
所有 3 个接口的 IP 地址相同(听起来太愚蠢了)。但后来,我才意识到集成的DHCP 服务器也连接到所有 VLAN,并将非重复地址分发给属于不同 VLAN 的客户端。它为什么要这样做?
我决定使用连接到 2 个不同端口(或 VLAN)的 2 台计算机,并将它们配置为使用相同的 IP 地址。你猜怎么着?其中一个由于 IP 冲突而无法工作。从什么时候开始,来自不同广播域的主机无法使用相同的 IP 地址?
有人能猜出这东西在幕后是如何工作的吗?
这听起来很像许多交换机中的端口隔离(又名“私有 VLAN”)功能。
忽略其名称中的“VLAN”。它实际上意味着像普通的单个子网(单个广播域)一样工作,除了所有“客户端”或“不受信任”端口只能向“路由器”或“受信任”端口发送/接收以太网帧 - 但不能直接彼此之间。
(或者换句话说:从路由器的角度来看,所有客户端都在一个广播域中,与常规以太网没有任何变化。路由器仍然以相同的方式解析 IP 地址,无论是否重复。仅从客户端的角度来看,因为客户端只允许向路由器发送帧,结果就好像每个客户端都有一个与其他人不同的虚拟广播域。因此TP-Link的描述没有错误,只是不完整。)
例如,如果您有一个充满相互不信任设备的公共网络——如宿舍 LAN 或咖啡店 Wi-Fi——您希望客户端只能访问 Internet,但不能相互联系。(Wi-Fi AP 具有相同的功能,但称之为“客户端隔离”。)
这使您免于创建大量微小的 VLAN、IP 子网和 DHCP 池,每个池仅包含一个客户端设备(并且每个 IP 地址都绑定到一个物理端口,因为 VLAN 通常是静态分配的)。
端口隔离有时与 Proxy-ARP 一起使用,路由器代表整个 LAN 回复 ARP 请求。这将允许客户端再次相互联系,但只能通过路由器 - 这允许使用路由器的防火墙规则过滤数据包,类似于跨 VLAN 流量。