当前位置: 首页 > news >正文

网络安全准入技术之MAC VLAN

网络准入控制作为主要保障企业网络基础设施的安全的措施,特别是对于中大型企业来说,终端类型多样数量激增、终端管理任务重难度大、成本高。

在这样的一个大背景下,拥有更灵活的动态识别、认证、访问控制等成为了企业网络安全的最核心诉求之一。今天本文就分享网络准入技术之中的MAC VLAN技术应用。

文章目录

    • MAC VLAN产生背景
    • MAC VLAN技术优点
    • MAC VLAN运行机制
      • 静态MAC VLAN
        • 手动配置静态MAC VLAN
        • 动态触发端口加入静态MAC VLAN
      • 动态MAC VLAN
    • 推荐阅读

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具有以下优点:

  • MAC VLAN能够实现精确的接入控制,它能精确定义某个终端和VLAN的绑定关系,从而实现将指定终端的报文在指定VLAN中转发。

  • MAC VLAN能够实现灵活的接入控制,同一终端通过不同端口接入设备时,设备会给终端分配相同的VLAN,不需要重新配置VLAN;而不同终端通过同一端口接入设备时,设备可以给不同终端分配不同的VLAN。

MAC VLAN运行机制

设备是如何根据MAC地址来划分VLAN的呢?当端口收到一个untagged报文后,以报文的源MAC地址为匹配关键字,通过查找MAC VLAN表项来获知该终端绑定的VLAN,从而实现将指定终端的报文在指定VLAN中转发。

MAC VLAN表项有两种生成方式:静态配置和动态配置。

静态MAC 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

手动配置静态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地址与MAC VLAN表项中的MAC地址精确匹配,再检查报文的VLAN ID是否与对应表项中的VLAN ID一致。若一致,通过该报文动态触发端口加入相应VLAN,同时转发该报文;否则丢弃该报文。

  • 如果报文源MAC地址与MAC VLAN表项的MAC地址不精确匹配,当报文VLAN ID为PVID(Port VLAN ID,端口缺省VLAN),判断端口是否允许报文在PVID内转发。若允许,则在PVID中转发该报文,否则丢弃该报文。当报文VLAN ID不为PVID,判断是否报文VLAN ID为Primary VLAN ID且PVID为对应的Secondary VLAN ID。若是,则转发该报文;否则丢弃该报文。
    动态触发端口加入静态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列表中删除。

该方式的优点是灵活、安全:

  • 它能够自动识别MAC地址、能够自动创建MAC VLAN表项、能够自动允许MAC VLAN通过接入端口。因此该方式应用于大型网络时能够大大简化配置,使用灵活。

  • 只有用户接入认证成功,才能通过指定的VLAN接入网络,因此提高了网络的安全性。

在有完整的域认证或者有启用radius认证的环境中,动态MAC VLAN已经属于一种基本的网络准入认证方式。

推荐阅读

  • IPV4过渡IPV6的关键技术NAT(Network AddressTranslation,网络地址转换)
  • SDWAN(Software Defined Wide Area Network)概述与优势分析
  • 专门为Web应用程序提供安全保护的设备-WAF
  • 在 Exchange Server 的边缘传输服务器上配置邮件附件筛选
  • Windows系统配置高精度时间服务
  • Cisco交换机本地SPAN和远程SPAN的配置

相关文章:

网络安全准入技术之MAC VLAN

网络准入控制作为主要保障企业网络基础设施的安全的措施,特别是对于中大型企业来说,终端类型多样数量激增、终端管理任务重难度大、成本高。 在这样的一个大背景下,拥有更灵活的动态识别、认证、访问控制等成为了企业网络安全的最核心诉求之…...

MyBatis 操作数据库

文章目录 1. 什么是MyBatis?2. 入门MyBatis2.1 准备工作2.2.1 创建springboot项目2.2.2 数据准备 2.2 配置数据库连接2.3 写持久层代码2.4 单元测试2.4.1 web测试2.4.2 自动测试 1. 什么是MyBatis? MyBatis是一种持久层框架,用于简化JDBC的开…...

设计模式 -- 建造者模式(Builder Pattern)

这个模式以前也义Android-kotlin的场景下讲过 Android 用建造者模式模式写一个Dialog-CSDN博客 不过用的是 变种的建造者模式 建造者模式: 属于创建型模式 提供了一种创建对象的最佳方式, 使用多个简单的对象一步一步构建成一个复杂的对象 。 介绍 意图…...

如何下载 Apache + PHP + Mysql 集成安装环境并结合内网穿透工具实现公网访问内网服务

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. WampServer下载安装二. WampServer启动三. 安装cpolar内网穿透3.1 注册账号…...

一招告别百度广告烦恼,同时效率提高100倍的几个常用搜索技巧!

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…...

文件上传 [ACTF2020 新生赛]Upload1

打开题目,发现是一道文件上传题目 随便上传个一句话木马上去 发现网站前端有白名单限制,只能上传含有jpg,png,gif的后缀文件 那我们便传个2.jpg的一句话木马上去,bp抓包 我们改成php文件后缀试试,发现重发…...

振南技术干货集:比萨斜塔要倒了,倾斜传感器快来!(1)

注解目录 1、倾斜传感器的那些基础干货 1.1 典型应用场景 (危楼、边坡、古建筑都是对倾斜敏感的。) 1.2 倾斜传感器的原理 1.2.1 滚珠式倾斜开关 1.2.2 加速度式倾斜传感器 1)直接输出倾角 2)加速度计算倾角 3)倾角精度的提高 (如果…...

手把手教你搭建属于自己的快递小程序

在数字化时代,小程序已经成为各行各业连接用户、提供服务、创造价值的重要工具。其中,快递寄件小程序因其实用性和广泛的需求,成为很多企业和开发者关注的焦点。本文将详细介绍如何快速创建快递寄件小程序,以及如何利用它实现盈利…...

C# Onnx LSTR 基于Transformer的端到端实时车道线检测

目录 效果 模型信息 项目 代码 下载 效果 端到端实时车道线检测 模型信息 lstr_360x640.onnx Inputs ------------------------- name:input_rgb tensor:Float[1, 3, 360, 640] name:input_mask tensor:Float[1, 1, 360, …...

Java相关编程思想

少用继承多用“组合”——在现有类的基础上组织一个新类。 2.继承要用“is”来检验,如果继承者is被继承者,说明这是一个比较好的继承。 3.向上造型,把实现方法留给继承者去实现。(动态绑定) 4.把接口理解为抽象类的进一…...

Hadoop-HDFS架构与设计

HDFS架构与设计 一、背景和起源二、HDFS概述1.设计原则1.1 硬件错误1.2 流水访问1.3 海量数据1.4 简单一致性模型1.5 移动计算而不是移动数据1.6 平台兼容性 2.HDFS适用场景3.HDFS不适用场景 三、HDFS架构图1.架构图2.Namenode3.Datanode 四、HDFS数据存储1.数据块存储2.副本机…...

OpenAI暂停新的ChatGPT Plus注册 | OpenAI 的 GPT Builder 创建您的 GPTs

OpenAI DevDay 才过去仅仅一周时间,伴随着开发者大会上发布的一系列重磅升级和新特性,无疑这样的进化速度让广大网友炸锅了,其火热程度可见一斑。 就在四个小时前,OpenAI的CEO Sam Altma突然宣布,ChatGPT Plus账号暂停…...

Git目录不对,即当前文件夹不对应git仓库

报错信息是: fatal: not a git repository (or any of the parent directories): .git 如: 是当前文件夹不对应git仓库,一般在git clone之后,需要进入下一级文件夹才对应仓库。 在文件夹看,本层中没有.git文件夹&…...

Python基础:正则表达式(regular expression)详解

在Python中,正则表达式是一种强大的工具,可用于匹配和操作字符串。什么是正则表达式? 正则表达式是一种模式匹配语言,用于匹配字符串中的特定模式。这些模式可以是字母、数字、字符组合或其他符号。正则表达式通常用于文本处理、网…...

sqlmap requires ‘python-pymysql‘ third-party library

使用sqlmap进行udf提权报错: [14:06:04] [CRITICAL] sqlmap requires python-pymysql third-party library in order to directly connect to the DBMS MySQL. You can download it from https://github.com/PyMySQL/PyMySQL. Alternative is to use a package pyt…...

05 robotFrameWork+selenium2library 一维数组的使用

一、原生数组: 1、Excel中: LIST_OneRange 项目1|项目2 2、生成的PY: LIST_OneRange [u项目1,u项目2] 3、脚本使用: :FOR ${Local_I} IN RANGE len(${OneRange}) ${value} Evaluate ${OneRange}[${Local_I}] …...

SpringCloud Alibaba组件入门全方面汇总(上):注册中心-nacos、负载均衡-ribbon、远程调用-feign

文章目录 NacosRibbonFeignFeign拓展 Nacos 概念:Nacos是阿里巴巴推出的一款新开源项目,它是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力于帮助用户发现、配置和管理微服务,它提供了一组简单易用的特性集&am…...

Zabbix钉钉机器人告警

目录 一.在钉钉群里添加机器人 二.配置钉钉告警脚本 1.安装python依赖模块python-requests 2.配置钉钉告警配置脚本zabbix_ding.conf 3.创建告警日志并且授权。 4.配置钉钉告警执行脚本dingding.py 5.测试 三.配置zabbix告警 1.创建媒介 2.给用户添加报警媒介 3.配置…...

unity shaderGraph实例-扫描效果

文章目录 效果展示整体结构各区域内容区域1区域2区域3区域4区域5区域6GraphSetttings注意事项使用方法 效果展示 整体结构 各区域内容 区域1 用场景深度减去顶点的View空间的视野深度(Z值),这里Z值需要乘-1是因为从相机看到的物体顶点的视野…...

AW2013芯片讲解

文章目录 前言一、AW2013芯片介绍二、AW2013从机地址三、AW2013读写时序AW2013写时序AW2013读时序 四、AW2013的INT引脚五、LED作用和配置描述LED控制PWM控制模式简短编程模式 六、AW2013寄存器讲解总结 前言 本篇文章将带大家学习AW2013芯片的使用。 一、AW2013芯片介绍 AW…...

基础测试工具使用经验

背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...