为了账号安全,请及时绑定邮箱和手机立即绑定

嵌入式linux系统的开发—— VLAN虚拟网络划分实现

标签:
Linux
前言

局域网(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的正常工作,增强局域网的安全性和健壮性;可以突破物理位置的限制,在逻辑上划分出不同的广播域,网络构建和维护更方便灵活。

点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
1.8万
获赞与收藏
1569

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消