局域网(LAN)是由Hub、bridge或Switch等网络设备连接同一网段内的所有节点形成,通常是一个单独的广播域。处于同一个局域网内的网络节点之间可以直接通信,处于不同局域网段的设备之间的通信则必须经过路由器才能通信。
VLAN(Virtual Local Area Network)虚拟局域网是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。由下图可以看出通过划分不同的VLAN,VLAN内的主机间可以直接通信,而不同VLAN内的报文在传输时是相互隔离的,即VLAN间不能直接互通。
VLAN划分机制IEEE 802.1Q标准定义了 VLAN Header的格式。它在普通以太网帧结构的SA后增加了4字节的 VLAN Tag/Header数据。VLAN 交换机的端口分为Access port和Trunk port两类。Access port用于连接多台计算机,而trunk port用于连接多个交换机,原则上数据从Access端口进入时带上vlan tag,从Access端口发出时去除vlan tag。如果数据从Trunk端口进入或发出时vlan tag都保持不变。
MT7688集成了5端口的switch功能,内部构造可参考下图所示:5个端口的switch位于eth0上,其中0号端口属于vlan1 作为WAN口,1-3号端口属于vlan0作为LAN口,5号端口连接到CPU的eth0接口.
VLAN配置实现Openwrt/LEDE发行版的网卡的配置文件位于/etc/config/network中,配置文件在系统启动时由系统的shell脚本读取其中的网络参数并应用在网络接口上,可通过 VIM等编辑工具修改,但修改后仅仅是对配置文件进行更改,需要调用 service network restart重启网络才会使配置生效。
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdb8:1b0c:e22c::/48'
config interface 'lan'//配置LAN口
option ifname 'eth0.1'//vlan1
option proto 'static'//静态IP
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
config device 'lan_dev'//配置LAN硬件信息
option name 'eth0.1'
option macaddr '40:d6:3c:03:10:62'//设置MAC地址
config interface 'wan'//配置WAN口
option ifname 'eth0.2'// vlan2
option proto 'dhcp'//dhcp方式
option metric '10'
config device 'wan_dev'
option name 'eth0.2'
option macaddr '40:d6:3c:03:10:63'
config interface 'wan6'
option ifname 'eth0.2'
option proto 'dhcpv6'
config interface 'wwan'
option ipv6 '0'
option device '/dev/ttyUSB2'
option username 'guest'
option password 'guest'
option service 'umts_only'
option apn 'cmnet'
option dialnumber '*99***1#'
option metric '30'
option proto '3g'
config switch//配置 switch0
option name 'switch0'
option reset '1'
option enable_vlan '1'//开启vlan
config switch_vlan
option device 'switch0'
option vlan '1'//VLAN1与eth0.1对应,即配置为LAN口
option ports '0 1 2 3 6t'//0~3是LAN口
config switch_vlan
option device 'switch0'
option vlan '2'//VLAN2,与eth0.2对应,即配置WAN口
option ports '4 6t'//4是WAN口
config route 'route_rule_1'
option interface 'wan'
option target '192.178.123.1'
option netmask '255.255.255.0'
option gateway '192.178.123.2'
网络配置工具
ifconfig命令在Linux中用于显示和临时配置网卡信息,如设置网卡IP地址、MAC地址等,通常用于网络调试,网卡在重启后会恢复为默认配置,除非修改网卡配置文件。ifconfig命令语法为ifconfig+参数,常用功能如下:
(1)显示激活状态的网络接口设备信息。其中eth0为物理网卡,HWaddr为网卡的物理地址,目前将eth0虚拟划分为eth0.1 和eth0.2两个VLAN,eth0.1中包括VLAN的IP地址(inet addr),广播地址(Bcast),掩码(Mask)。‘’
(2)显示所有网络接口设备(包括未被激活的)信息: ifconfig -a,此处显示wlan0设备未被激活。
(3)启动/关闭指定网卡: ifconfig eth0 up / ifconfig eth0 down
(4)配置IP地址: ifconfig eth0 192.168.2.10
swconfig是OpenWrt/LEDE用于配置交换机的命令。swconfig list显示系统交换机,swconfig dev switch0 show 显示当前端口配置。
总结通过VLAN技术对局域网的划分可以将广播域根据需要划分在不同的VLAN内,节省了带宽,提高了网络处理能力; 不同VLAN内的报文在传输时相互隔离,即使一个VLAN发生故障也不会影响其他VLAN的正常工作,增强局域网的安全性和健壮性;可以突破物理位置的限制,在逻辑上划分出不同的广播域,网络构建和维护更方便灵活。