家里的入户的光猫在书房,书房到客厅的只有一条网线。因此诞生了单线复用的需求,拓扑如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
┌─────────┐      ┌─────────┐               
│ │ │ │
│ Modem │ │ NAS │
│ │ │ │
└────┬────┘ └────┬────┘
│ │
│ │
│ Switch │
┌────┴───┌────────┌───┴────┌────────┐
│ Port1 │ Port2 │ Port3 │ Port4 │......
│ │ │ │ │
└────────└───┬────└────────└────────┘




┌───┴────┐ ┌────────┐
│ │ │ │
│ Router ├──────┤ AP │
│ │ │ │
└────────┘ └────────┘

  交换机 VLAN 配置如图所示:

1
2
3
4
5
6
7
8
9
10
11
VLAN    VLAN描述    成员端口    Tagged端口    Untagged端口
1 LAN 2-6 2-6
2 WAN 1-2 2 1

端口 PVID
端口1 2
端口2 1
端口3 1
端口4 1
端口5 1
端口6 1

  关于 tagged untagged PVID 的解释,交换机的帮助说的比网上的介绍清楚很多,这里粘贴一下:

  1. Untagged 将此端口上的流量的出口规则设置为 untagged。在发送数据包之前,交换机会丢弃 tag 头。
  2. Tagged 将此端口上的流量的出口规则设置为 tagged。在发送数据包之前,交换机会添加 tag 头。
  3. PVID(端口 VLAN ID)是端口缺省 VID。当端口接收到一个 untagged 包,它将给这个包添加一个带有端口 PVID 的 VLAN tag 并转发该数据包。

  软路由的 Openwrt 配置很简单, LUCI 界面直接新增一个接口 eth0.2 虚拟口作为 WAN 口,原来的物理口 eth0 加入到 LAN。

  简单的来说通过配置端口 1 和端口 2 被加入了 VLAN2,光猫的untagged包进入端口 1 后会被打上 VLAN2 标签(PVID2),被转发到端口 2 送给软路由 WAN 口 eth0.2 用于拨号上网。软路由的 WAN 口(eth0.2) 回程 VLAN2 数据包会在从端口 1 发往光猫时去除 VLAN 标签。这样就通过 VLAN2 完成了拨号功能。

  对于软路由 LAN(eth0) 无标签数据包进入端口 2 后会被打上 VLAN1 标签(PVID1),转发给同在 VLAN1 的端口 3~6。数据包在从端口 3~6 发送给设备(NAS),也会去除 VLAN 标签,反之同理,这样就完成交换机下的 LAN 设备与软路由下其它 LAN 设备互通。