我有两个 VLAN(VLAN10 + VLAN20)
我已经在路由器和 L3 交换机上成功配置它们,现在想要让路由在 IPv4 上有效运行。
我现在想要解决的是获取路由信息,特别是将默认网关信息动态地发送给 DHCP 客户端,以便它们在 VLAN 之间路由时通过本地交换机进行路由,而不是返回主路由器。
我这样做的主要原因是我的路由器只有 1Gbps 链路,所以当前跨 VLAN 路由限制为 1Gbps。
理想情况下,我希望保持广播流量全局(但不确定是否可行),因为实际上每个 VLAN 都是一个子网。
是否可以让每个 L3 交换机“阻止”其上游 DHCP 服务器,然后作为中继发布,以便它可以通过其地址作为设备的默认网关?
如果这不可能,我还能如何构建此网络以允许在最近的 L3 路由器/交换机上进行 VLAN 间路由,而不是一路回到主路由器?(使事情复杂化的是,每个交换机下都有一个无线 AP,我希望在其间启用漫游)。
答案1
我想让广播流量保持全局(但不确定这是否可行),因为每个 VLAN 都是一个子网
不会发生。VLAN 的全部目的是分离 L2 广播域。
我还能如何构建此网络以允许在最近的 L3 路由器/交换机上进行 VLAN 间路由
您只需在交换机上启用路由即可。
- 假设 VLAN 10 和 20 都存在于 328 上。启用路由后,交换机将在直接连接的 VLAN 之间进行路由,而不会将流量发送到路由器
- 假设 VLAN 10 在 328 上,而 VLAN 20 在 309 上。当流量从 VLAN 10 发送到 VLAN 20 时,如果 328 已经知道 309 有到此子网的路由,它将直接将流量路由到那里。如果不知道,它将查询哪个相邻路由器知道路由,309 将响应,328 将知道如何到达子网。在任一情况下,都不会向路由器发送 VLAN 间流量。
是否可以让每个 L3 交换机“阻止”其上游 DHCP 服务器,然后作为中继发布
Mikrotik 300 系列交换机知道 DHCP 选项 82,因此它们可以充当 DHCP 中继代理。
更复杂的是,每个交换机下都有一个无线 AP,我想在其间启用漫游)
这是否会使事情复杂化取决于 AP。要允许漫游,两个 AP 必须广播相同的 SSID。如果它们支持 dot1Q,您应该能够配置它们以将 SSID 10 上的 Wi-Fi 流量丢弃到 VLAN 10,将 SSID 20 上的 Wi-Fi 流量丢弃到 VLAN 20 等。
如何实际做到这一点:
- 配置交换机间和交换机 AP 链路进行中继,以便它们可以在多个 VLAN 上传递流量
- 将路由器放在自己的子网上 - 交换机路由器链路不需要中继
- 将两台交换机直接连接到路由器,这样 VLAN 之外的流量就可以直接转发到路由器,而无需通过交换机间链路
- 在交换机上启用路由
- 将交换机的默认路由指向路由器
- 配置路由器在所有 VLAN 上提供 DHCP 服务
- 将客户端默认网关设置为交换机
- 客户端将始终将发往其自身网络之外的流量发送到 DGW。如果 DGW 设置为路由器,则无论交换机上是否启用了 IP 路由,交换机都会将流量转发到路由器。
- 如果路由器只能在单个子网上提供 DHCP 服务,则需要在网络的其他地方设置 DHCP 服务器。我会将其与路由器放在同一个 VLAN 中,这样它就不会接收除 DHCP 之外的任何其他客户端流量。
- 将客户端默认网关设置为交换机
- 在交换机 VLAN 上配置 DHCP 选项 82(DHCP 中继)
- 在 AP 上配置所需的 SSID
- 配置 AP 以将特定 SSID 上收到的流量转发到适当的 VLAN
举个例子,一张图片值1000元:
有关详细说明,请参阅Mikrotik 文档以及您的 AP 文件。
WoL 数据包通常发送到 L2 bcast 地址。这意味着默认情况下它们不能跨 VLAN 转发。解决此问题的一种方法是将 WoL 源系统的物理接口配置为在每个 VLAN 上都有子接口。在 Linux/UNIX 系统(包括 MacOS)上,您可以配置例如eth0.10
VLAN 10、eth0.20
VLAN 20 等。在 Windows 系统上,这有点更加复杂。连接到此系统的交换机接口需要针对每个 VLAN 进行中继。这样,单个系统就可以分别向每个 VLAN 发送 WoL。
可能还有其他解决方案。搜索后,mikrotik wol across vlans
Mikrotik 论坛上出现了一些可能的解决方案/解决方法。