用dd-wrt配置VLAN交换机和无线AP

802.1Q VLAN常用于企业级网络,鲜见于家庭网络。不过,家用无线路由器一般都内置一个支持VLAN功能的四口或五口的网络交换机。带五口交换机的普通无线路由器的操作系统就是使用VLAN功能来划分WAN/LAN端口的。

我的L型写字台下有一个汇集家里所有网络面板接口的配线箱,预留了一根网线连到运营商的楼道配线箱。由于运营商光网改造是装修以后的事,光纤无法通过埋设的管线穿到配线箱,我只能在光纤入户处另外安装了一只电表箱给光纤宽带家庭网关(“光猫”)专用。运营商提供的光猫不支持无线网络,而且对有线LAN设备的数量也有限制——刚安装光纤宽带时光猫只支持4个LAN设备;据运营商内部人士所说,现在这个数量限制已经提高到10个;但是,用户协议里允许的LAN设备仍然只是4个,其实在移动互联网时代允许10个LAN设备也是捉襟见肘的。因此,我只能在写字台上方放置一只自己的无线路由器,让光猫工作在桥接状态。用自己的无线路由器更加安全,而且能提供更丰富的功能。

配线箱和电表箱之间只有一根装修时预留的网线连接。写字台上方不是无线路由器最理想的位置,对家里有些角落信号覆盖不好,无线连接会时常断开,而光纤入户处却是能覆盖家里所有角落的理想位置。由于主无线路由器和电表箱之间有一堵厚墙阻隔,WDS不是理想的解决方案。这时,我想到了用无线路由器内置的VLAN功能,在电表箱旁的墙上挂一只无线路由器,既作VLAN交换机,又作无线AP。

主路由器Netgear WNDR4300带五口交换机,LAN端口1~4属于VLAN 1,WAN端口属于VLAN 2。用作VLAN交换机和无线AP的Buffalo WHR-G300Nv2带一个四口交换机和一个独立的WAN端口。两只无线路由器都运行dd-wrt。

Netgear WNDR4300的配置

由于主路由器本身就已经启用VLAN功能,用以划分LAN和WAN两个网段,所以只须对它作简单配置,让它的WAN端口对VLAN 1作中继。

打开它的Web管理界面的Administration / Commands页面,在Commands输入框里输入以下命令:

swconfig dev eth0 vlan 1 set ports "0t 1 2 3 4 5t"
swconfig dev eth0 vlan 2 set ports "0t 5t"
swconfig dev eth0 set apply

然后,单击Save Startup按钮。重启路由器后,WNDR4300的VLAN配置就会生效。

WHR-G300Nv2的配置

作VLAN交换机和AP用的WHR-G300Nv2的配置要复杂一些。以下是我发表于dd-wrt论坛的WHR-G300Nv2配置步骤
1. On Setup / Basic Setup, disable WAN, configure Router IP settings, disable DHCP server, and then click Save.

Basic Setup

  1. On Setup / Networking, unbridge eth1, the network interface connected to the internal switch, and then click Save.

Networking

  1. On Administration / Commands, enter the following commands into the Commands box and then click Save Startup.
swconfig dev eth1 vlan 1 set ports "0t 1 4t" 
swconfig dev eth1 vlan 2 set ports "0t 2 3 4t" 
swconfig dev eth1 set apply 
vconfig set_name_type VLAN_PLUS_VID_NO_PAD 
vconfig add eth1 1 
vconfig add eth1 2 
brctl addif br0 vlan1

WHR-G300Nv2 has two network interfaces, eth0 is for the WAN port, and eth1 is connected to the internal switch. The internal switch port numbers of the 4 LAN ports are in the reverse order as they are labeled.

Results after rebooting:

root@DD-WRT:~# swconfig dev eth1 show 
Global attributes: 
 enable_vlan: 1 
Port 0: 
 pvid: 1 
 link: port:0 link:up speed:1000baseT full-duplex txflow rxflow 
Port 1: 
 pvid: 1 
 link: port:1 link:down 
Port 2: 
 pvid: 2 
 link: port:2 link:down 
Port 3: 
 pvid: 2 
 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 1: 
 vid: 1 
 ports: 0t 1 4t 
VLAN 2: 
 vid: 2 
 ports: 0t 2 3 4t 
root@DD-WRT:~# brctl show 
bridge name bridge id STP enabled interfaces 
br0 8000.0024a5xxxxxx no eth0 
 ath0 
 vlan1

I configured the wifi as WDS Station before making the VLAN changes, so I can still access the router in case I screw up the VLAN settings. After making sure everything is fine, I will change the WiFi mode to AP.


对于采用Atheros WiSOC的无线路由器,dd-wrt图形界面不支持VLAN配置,VLAN配置只能通过swconfig命令进行。而且,配置了VLAN后,dd-wrt重载配置时会使AP和内置的Web服务器出问题。因此,dd-wrt不是将WHR-G300Nv2配置为VLAN交换机的理想操作系统;OpenWrt更为合适。根据OpenWrt网站的介绍,安装OpenWrt后WHR-G300Nv2能访问到的内存和闪存可以加倍。

使用VLAN功能还可以任意划分逻辑上相互隔离的网段。在移动互联网和IPTV时代,将局域网划分成两个或更多网段,让安全性未必过关的手机和机顶盒只能访问Internet,限制它们访问其他家庭网络上的设备,还是很有必要的。我将于以后的文章中介绍如何在dd-wrt中启用VLAN功能划分访问其他家庭网络受限的Guest network网段。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.