我已经在 MikroTik Routerboard RB750UP(AR7240 CPU,内置 AR9330 交换机)上安装了 OpenWrt。我在下面提供了其他详细信息,但我的问题是:
如何在同一端口上配置未标记和标记的 VLAN?
我已经成功独立配置了非标记 VLAN 和标记 VLAN,但不是针对同一端口。我之所以要这样做,是因为我将一台 Ubiquiti NanoStation loco M2 插入到提供无线局域网(需要未标记的帧)的端口,但我还想配置一个标记 VLAN 来管理 loco(即通过标记的 van 访问其管理 ip)。
以下是更多详细信息:
硬件
- MikroTik 路由器板 RB750UP
- Ubiquiti NanoStation 机车 M2
swconfig
输出:
swconfig dev eth0 help
switch0: eth0(AR7240/AR9330 built-in switch), ports: 5 (cpu @ 0), vlans: 16
<snip>
以下是我认为的RB750 的 AR7240/AR9330 交换机的布局。
操作系统
OpenWrt BARRIER BREAKER (Bleeding Edge,r36085),采用自定义配置构建
# uname -a
Linux OpenWrt 3.8.3 #3 Wed Mar 27 04:09:04 PDT 2013 mips GNU/Linux
网络图
这是我的图表的链接网络设置。
如图所示,NanoStation loco 插入端口 3,并在 vid=3 的 vlan 上配置了管理 IP 192.168.20.10/24。它还充当 192.168.100.0/24 网络的无线网桥/接入点。
因此,路由器上的端口 3 配置了一个用于 192.168.100.0/24 网络的未标记 VLAN,以及一个用于 192.168.20.0/24 管理网络的标记 VLAN(vid=3)。
网络配置
以下是我尝试通过以下配置实现的目标:
- 端口 3(虚拟接口 eth0.3)上的标记 VLAN 3(vid=3)
- 端口 3 上的未标记 VLAN 4(虚拟接口 eth0.4)
- 端口 3 上的默认 vlan pvid=4(用于处理传入的未标记帧)
实际内容如下/etc/config/network
:
<snip>
config interface 'loco'
option proto 'static'
option ifname 'eth0.3'
option ipaddr '192.168.20.1'
option netmask '255.255.255.0'
config interface 'locolan'
option proto 'static'
option ifname 'eth0.4'
option ipaddr '192.168.100.1'
option netmask '255.255.255.0'
<snip>
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option vid '1'
option ports '0t 2 4'
config switch_vlan
option device 'switch0'
option vlan '2'
option vid '2'
option ports '0t 1'
config switch_vlan
option device 'switch0'
option vlan '3'
option vid '3'
option ports '0t 3t'
config switch_vlan
option device 'switch0'
option vlan '4'
option vid '4'
option ports '0t 3'
config switch_port
option port '3'
option pvid '4'
重启路由器后,swconfig
显示以下交换机配置。请注意 VLAN 3 中缺少“3t”。
# swconfig dev switch0 show
Global attributes:
enable_vlan: 1
Port 0:
pvid: 0
link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
pvid: 2
link: port:1 link:up speed:100baseT full-duplex auto
Port 2:
pvid: 1
link: port:2 link:down
Port 3:
pvid: 4
link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
pvid: 1
link: port:4 link:up speed:100baseT full-duplex auto
VLAN 0:
vid: 0
ports: 0t
VLAN 1:
vid: 1
ports: 0t 2 4
VLAN 2:
vid: 2
ports: 0t 1
VLAN 3:
vid: 3
ports: 0t <----- no tagged port 3!
VLAN 4:
vid: 4
ports: 0t 3
因此,我无法 ping 通机车的管理 IP。
我也尝试过使用手动配置vlan /端口分配和标签swconfig
,但在每个排列中,它要么将端口 3 排除在其中一个vlan之外,要么强制端口 3 在两个vlan中都被标记。
问题
- 如何在同一端口上配置未标记和标记的 VLAN?我专门尝试为 OpenWrt 配置此功能,但即使了解如何为 Linux 执行此操作也会有所帮助。
- swconfig 或 AR7240/AR9330 OpenWrt 交换机驱动程序是否存在已知的错误/问题,可能会导致此问题?(我的搜索结果为空。)
答案1
一般来说,即使未标记的端口也需要分配一个 NATIVE VLAN id,并且仅当此 id 与默认 id 1 不同时才需要。这是为了帮助交换机了解如何转发数据包。如果您不提供 vlan 并且它是桥接的,则它被视为路由接口。您通常不应在接口上指定子接口(即标签),除非您希望它在该系统上与该接口上的 IP 绑定。
- 配置 Vlan 路由接口(不是物理/桥接接口)
- 指定物理桥接接口上使用的标记协议(即dot1q)
- 选择并指定所有接口上的本机 VLAN ID(如果不是 VLAN 1)
还有一点。一般来说,只有当 L2 数据包从一个 VLAN 移动到核心交换机引擎时,并且只有当它需要通过另一个中继传输时,才会进行标记。当数据包流出交换机引擎时,它会被剥离标记并通过标准以太网帧转发。
答案2
我认为不可能有一个启用标记的端口,并且不启用标记..
您处于访问模式,并且已配置 id(无标记),
您可以在访问模式下在端口上配置多个id。
要么你正在该端口上标记,使用一个id
要么你标记多个id来隔离流量,这被称为主干
我认为您这里需要的是在您的接口上配置一个中继,并配置您的管理员和数据 VLAN。请记住,在其他设备上配置的端口必须通过中继接受特定 ID 车辆上的标记帧
答案3
我认为常见的混淆点(在这种情况下,对于不熟悉 VLAN 的用户来说)是接入点默认不会将 AP 本身的管理接口标记到任何 VLAN id,因此如果 AP 连接到的托管交换机端口更改为带有几个 VLAN(中继)的标记,您将无法从 Web 界面配置 AP。
解决方案是首先在 AP 上设置 VLAN ID,然后通过将托管交换机端口临时更改为具有标记 VLAN 的中继端口来测试它们,以测试 VLAN 是否实际工作并在路由器中正确设置。
如果 VLAN 似乎工作正常(一次连接一个 SSID),则暂时将中继端口改回未标记(常规端口),并在接入点 Web 界面中找到将 AP 本身的管理接口绑定到您想要的任何 VLAN 的设置。如果您确定 VLAN 确实工作正常(您应该刚刚测试过它),则可以将 AP 管理接口设置为此 VLAN。最后,将交换机端口改回中继端口,标记您想要的每个 VLAN,每个 SSID 一个,和/或管理 VLAN(如果不在 Wifi 上)。现在,您应该可以让 VLAN 工作,并同时访问 AP Web 界面。
答案4
用户173470,
为此,最佳做法是将该特定端口上的 Native VLAN 或 PortVlan ID 分配给 NanoStation 的 VLAN。然后,如果您希望它们在该端口上传递,请标记所有其他 VLAN。并非所有设备都可以传递标记帧。此外,您不必将所有成员分配给这些端口。仅将 vlan 成员分配给您希望流量传递的端口。(节省带宽)。
您的其他端口可以查看相应的 PVID/物理 VLAN 并进行标记。如果您只需要传递一个 VLAN,则将其设置为未标记,以供只需要该 VLAN 的设备使用。
使您的配置保持简单。
希望这有帮助。干杯。