网络准入控制作为主要保障企业网络基础设施的安全的措施,特别是对于中大型企业来说,终端类型多样数量激增、终端管理任务重难度大、成本高。
在这样的一个大背景下,拥有更灵活的动态识别、认证、访问控制等成为了企业网络安全的最核心诉求之一。今天本文就分享网络准入技术之中的MAC VLAN技术应用。
VLAN最常用的划分方式是基于端口划分,该方式按照设备端口来划分VLAN成员,将指定端口加入到指定VLAN中之后,该端口就可以转发该VLAN的报文。该方式配置简单,适用于终端设备物理位置比较固定的组网环境。
但是随着移动办公和无线接入的普及,终端设备不再通过固定端口接入设备,它可能本次使用端口A接入网络,下次使用端口B接入网络。如果端口A和端口B的VLAN配置不同,则终端设备第二次接入后就会被划分到另一VLAN,导致无法使用原VLAN内的资源;如果端口A和端口B的VLAN配置相同,当端口B被分配给别的终端设备时,又会引入安全问题。
如何在这样灵活多变的网络环境中部署VLAN呢?MAC VLAN应运而生。
MAC VLAN是基于MAC划分VLAN,它根据报文的源MAC地址来划分VLAN,决定为报文添加某个VLAN的标签。该功能通常和安全技术(比如802.1X)联合使用,以实现终端的安全、灵活接入。
MAC VLAN具有以下优点:
设备是如何根据MAC地址来划分VLAN的呢?当端口收到一个untagged报文后,以报文的源MAC地址为匹配关键字,通过查找MAC VLAN表项来获知该终端绑定的VLAN,从而实现将指定终端的报文在指定VLAN中转发。
MAC VLAN表项有两种生成方式:静态配置和动态配置。
手动配置静态MAC VLAN常用于VLAN中用户相对较少的网络环境。在该方式下,用户需要手动配置MAC VLAN表项,开启基于MAC地址的VLAN功能,并将端口加入MAC VLAN。
其原理为:当端口收到的报文为Untagged报文时,根据报文的源MAC地址匹配MAC VLAN表项。
a. 首先进行模糊匹配,即查询MAC VLAN表中掩码不是全F的表项。将源MAC地址和掩码相与运算后与MAC VLAN表项中的MAC地址匹配。如果完全相同,则模糊匹配成功,为报文添加表项中对应的VLAN Tag并转发该报文。
b. 如果模糊匹配失败,则进行精确匹配,即查询表中掩码为全F的表项。如果报文中的源MAC地址与某MAC VLAN表项中的MAC地址完全相同,则精确匹配成功,为报文添加表项中对应的VLAN Tag并转发该报文。
c. 如果没有找到匹配的MAC VLAN表项,则继续按照其他原则(基于IP子网的VLAN、基于协议的VLAN、基于端口的VLAN)确定报文所属的VLAN,为报文添加对应的VLAN Tag并转发该报文。
当端口收到的报文为Tagged报文时,如果报文的VLAN ID在该端口允许通过的VLAN ID列表里,则转发该报文;否则丢弃该报文。
该方式实现简单,只涉及接入设备,但该方式下需要在终端可能接入的端口手工配置允许终端的MAC VLAN通过,配置量大。
手动配置静态MAC VLAN时,如果不能确定从哪些端口收到指定VLAN的报文,就不能把相应端口加入到MAC VLAN。
采用动态触发方式可以将端口自动加入静态MAC VLAN。在该方式下,配置MAC VLAN表项后,需要在端口上开启基于MAC的VLAN功能和MAC VLAN的动态触发功能,不需要手动把端口加入MAC VLAN。
配置动态触发端口加入静态MAC VLAN后,端口在收到报文时,首先判断报文是否携带VLAN Tag,若带VLAN Tag,则直接获取报文源MAC地址;若不带VLAN Tag,则先进行报文VLAN选择(按照基于MAC的VLAN->基于IP子网的VLAN->基于协议的VLAN->基于端口的VLAN的优先次序为该Untagged报文添加对应的VLAN Tag,并获取该VLAN Tag),再获取报文源MAC地址,然后根据报文的源MAC地址和VLAN查询静态MAC VLAN表项:
动态MAC VLAN是由接入认证过程来动态决定接入用户报文所属的VLAN。该方式下,需要在设备上同时配置MAC VLAN和基于MAC的接入认证方式(比如MAC地址认证或者基于MAC的802.1X认证)。
如果用户发起认证请求,认证服务器会对认证用户名和密码进行验证,如果通过,则会下发VLAN信息。此时设备就可根据认证请求报文的源MAC地址和下发的VLAN信息生成MAC VLAN表项,并自动将MAC VLAN添加到端口允许通过的untagged VLAN列表中。用户下线后,设备又自动删除MAC VLAN表项,并将MAC VLAN从端口允许通过的VLAN列表中删除。
该方式的优点是灵活、安全:
在有完整的域认证或者有启用radius认证的环境中,动态MAC VLAN已经属于一种基本的网络准入认证方式。