介绍-VLAN

VLAN(Virtual Local Area Network)即虚拟局域网,工作在数据链路层。

交换机将通过:接口、MAC、基于子网、协议划分(IPv4和IPv6)、基于策略的方式划分VLAN的方式,将接入的设备进行划分。

  • 目的:
    • VLAN 可以将同一个物理网络划分为多个逻辑网段,从而减小广播域,节约交换机性能,抑制网络风暴。
    • VLAN之间无法二层互通,可以隔离业务,增强网络安全性。

以太网报文

  • 在交换机中以太网(EtherNet)有untagtag两种报文。untag帧即终端可以识别的普通以太网帧。tag帧在源mac地址(SA)和帧负载(Frame Load)之间有一段4Byte的Tag字段。
特点
Ethernet帧 untag,一般指端设备可识别
802.1q帧 在Ethernet帧的基础上加上Tag字段,一般用于交换机之间

图1.802.1q帧tag示意图

  • 这个Tag字段中主要内容是VLAN ID,保存着VLAN。

    • VLAN ID占用12bit,可以记录到4096个数字,去除全0和全1的情况,所以VLAN范围为1-4094
    • CFI占用1bit,0代表以太网,1代表令牌环网(Token Ring)。

PIVD和三种vlan接口工作模式

因为tag的存在,交换机可以识别选择性处理数据帧,但是终端设备是无法正常的识别tag,所以交换机需要为出入端口的数据帧进行处理。

可以这样理解,交换机之间使用含tag的语言交流,终端只懂untag语言,所以需要端口承担不同的工作模式。

PVID

PVID(Port Default VLAN ID)指的是端口缺省VLAN(端口默认VLAN ID),在实际上配置中,我们实际上是给端口配置pvid,pvid可以理解就是这个接口要处理端口的一个参数,在处理报文时候需要使用。

ps:这里的收发是站在交换机的角度出发,即入接口为交换机收,同理出接口为交换机发。发的时候交换机不会检查是否是tag帧还是untag帧,因为从交换机cpu处理过的都是tag帧。

ps:一下简化一下,untag帧即为标准的以太网帧,tag帧为带有vlan的802.1q帧。

Access接口:

  • 用于交换机连接终端设备,在配置交换机的时候只需要配置port default vlan id即pvid,用于生成vlan id为tag的,不涉及allowed list和tag list、untag list。
  • 收:
    • untag帧,打上端口pvid后接收;
    • tag帧(话说应该是接错了到交换机),看vlan id是否等于pvid,相同则接受,不相同就丢弃
  • 发:
    • 将帧中tag字段剔除后发送。
[alittlemcSW]interface GigabitEthernet 0/0/1
[alittlemcSW-GigabitEthernet0/0/1]port link-type access
[alittlemcSW-GigabitEthernet0/0/1]port default vlan 10  

Trunk接口:

  • 用于交换机之间的级联。trunk可以设置多个可以通过的vlan id或范围,即allow-pass list。
  • 收:
    • untag帧,打上pvid,后转发;
    • tag帧,判断vlan id是否是为allow-pass list中允许的vlan id,允许则接收,否则丢弃。
  • 发(必是tag帧):

    • 比较帧vlan id和端口pvid是否相同,相同则去掉tag发送,不相同直接发送。
[alittlemcSW]interface GigabitEthernet 0/0/2
[alittlemcSW-GigabitEthernet0/0/2]port link-type trunk
[alittlemcSW-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[alittlemcSW-GigabitEthernet0/0/2]port trunk pvid vlan 10  

Hybrid接口:

注意,Hybrid为华为专有的接口,所以思科锐捷这些是没有的哦,而且默认华为交换机就默认使用此模式。

  • 兼容了access和trunk的特点,接在交换机或终端均可。
  • 收(其实是和Trunk的接收操作是一样的):
    • untag帧,打上pvid,后转发;
    • tag帧,判断vlan id是否是为tag list(和trunk中allow-pass list效果一致)中允许的vlan id,允许则接收,否则丢弃。
  • 发(在hybrid中有tagged list和untagged list):
    • 检查tag帧中的vlan id,属于tag list,直接转发;属于untag list中则剔除tag帧的tag后变为untag帧转发。
[alittlemcSW]interface GigabitEthernet0/0/3
[alittlemcSW-GigabitEthernet0/0/3]port hybrid pvid vlan 10
[alittlemcSW-GigabitEthernet0/0/3]port hybrid tagged vlan 20 30 #允许带vlan20 30的tag直接通过,对应trunk模式
[alittlemcSW-GigabitEthernet0/0/3]port hybrid untagged vlan 10 100 200 #发送时将vlan10 100 200的tag字段剔除,对应access模式
  • hybrid和trunk模式其实很相似,在收时候一致。在发时候,因为pvid只有一个,hybrid允许untagged list中多个vlan id帧直接剔除tag发送,而trunk只会对和pvid相同的vlan id帧剔除tag发送。

VLAN IF

vlan if是交换机虚拟出来的三层接口,可以设置ip,每一个vlan对应一个vlan if,主要用作为vlan网关。我们需要通过网络层的路由从而实现不同之间vlan之间数据互访。 同时也可以实现同vlan不同子网的互访。

众所周知,不同vlan可以使用网络层来实现通信,不同网段使用网关的路由来通信。基于此,我整理了两个实验。

使用vlanif IP作为用户网关的情况下都可以实现不同子网、不同VLAN通信。

同vlan不同子网通讯

vlanif甚至可以和路由器ip一样很方便的使用:同VLAN下不同网段之间路由,比如某个项目由不同公司负责,一期项目使用了10.10.10.0/24网段、二期使用10.10.20.0/24网段。

图2.拓扑1

#将1,2,3端口都划分到vlan10 access
[alittlemcSW]port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/3
[alittlemcSW-port-group]port link-type access
[alittlemcSW-port-group]port default vlan 10

直接设置vlanif sub

[alittlemcSW]interface vlanif 10
[alittlemcSW-Vlanif10]ip address 10.10.10.254 24
[alittlemcSW-Vlanif10]ip adderss 10.10.20.254 24 sub
[alittlemcSW-Vlanif10]ip adderss 10.10.31.254 22 sub

不同VLAN通信子网使用

基于上次的实验微调了一下,不同vlan之间的通信的原理也包含其中啦,只要配置了vlanif,vlanif都在本机内可以直同路由。

图3.拓扑2

直接上配置。

#
interface Vlanif10
ip address 10.10.10.254 255.255.255.0
ip address 10.10.31.254 255.255.252.0 sub
#
interface Vlanif20
ip address 10.10.20.254 255.255.255.0
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 10
#

如果是不同的交换机之间,配置是一样的,只不过要注意配置静态路由即可。

其他

QinQ

QinQ(802.1Q in 802.1Q)也被称之为VLAN Stacking或Double VLAN。(详细可见什么是QinQ? 为什么需要QinQ? - 华为 (huawei.com)

我们的802.1q帧多了4Byte用于存放Tag,其中VLAN ID占用12bit,即vlan id的范围1到4064。但是某些情况下一个需要大量的vlan就可能不够用,QinQ在以太网帧中插入了两段tag信息,即可以实现存储4064x4064个vlan的效果。

图4.QinQ

更新日志

  • 2022年10月21日19:22:40

    • 完成了vlan的介绍、三种接口模式、vlanif的应用
    • 预告-后面会更新vlan的划分->接口、MAC、基于子网、协议划分(IPv4和IPv6)、基于策略的方式划分VLAN的方式

网络工程知识(二)VLAN的基础和配置:802.1q帧;Access、Trunk、Hybrid接口工作模式过程与配置;VLANIF的小实验的更多相关文章

  1. 如何在centos上配置802.1Q VLAN标记,linux单网卡多vlan多网段Ip配置案例

    介绍 VLAN使将大型网络分成较小且易于管理的网络成为可能.802.1Q是所有供应商都在其网络设备中实施的标准.某些交换机能够将多个VLAN分配给单个网络端口.使用此功能,您可以将多个VLAN分配给单 ...

  2. java 网络编程(二)----UDP基础级的示例

    下面介绍UDP基础级的代码示例: 首先了解创建UDP传输的发送端的思路: 1.创建UDP的Socket服务.2.将要发送的数据封装到数据包中.3.通过UDP的socket服务将数据包发送出去.4.关闭 ...

  3. 工程师技术(二):postfix基础邮件服务、postfix空客户端邮件服务、搭建mariadb数据库系统、配置一个数据库、使用数据库查询

    一.postfix基础邮件服务 目标: 本例要求在虚拟机server0上配置 postfix 基础服务,具体要求如下: 1> 监听本机的所有接口    2> 将邮件域和邮件服务主机名都改为 ...

  4. vlan 以及 Linux实现的IEEE 802.1Q VLAN

    vlan 以及 Linux实现的IEEE 802.1Q VLAN Vlan的概念 VLAN技术介绍 VLANVLAN概述 以太网是一种基于CSMA/CD(Carrier Sense Multiple ...

  5. 802.1Q VLAN技术原理

    文章出处:http://hi.baidu.com/x278384/item/d56b0edfd4f56a4eddf9be79 在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN.而且, ...

  6. (VLAN)理解Hybrid接口的应用

    实验三:理解Hybrid接口的应用 实验原理: 实验内容: 某企业二层网络使用两台S3700交换机S1和S2,且两台设备在不同的楼层.网络管理员规划了3个不同VLAN, HR部门使用VLAN 10,市 ...

  7. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  8. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  9. 菜鸟脱壳之脱壳的基础知识(二) ——DUMP的原理

    菜鸟脱壳之脱壳的基础知识(二)——DUMP的原理当外壳的执行完毕后,会跳到原来的程序的入口点,即Entry Point,也可以称作OEP!当一般加密强度不是很大的壳,会在壳的末尾有一个大的跨段,跳向O ...

随机推荐

  1. Redis进阶篇:发布订阅模式原理与运用

    "65 哥,如果你交了个漂亮小姐姐做女朋友,你会通过什么方式将这个消息广而告之给你的微信好友?" "那不得拍点女朋友的美照 + 亲密照弄一个九宫格图文消息在朋友圈发布大肆 ...

  2. C++ UAC 提权 以一个管理员身份运行程序

    这里是我编译的和一个测试Demo:http://pan.baidu.com/s/1qWNgC6C 大家如果看我下边的不是很清楚,可以下载这个具体工程: 群:103197177 C++进阶讨论:欢迎喜欢 ...

  3. iOS去广告最简单方案!+以图搜漫

    iOS去广告 ️推荐 | 通过下载.安装.启用(一般默认启用)描述文件,即可实现通过私人dns来达到全系统的广告拦截.隐私保护功能 ️注意: 限 iOS 14 及以上版本系统使用 复制链接需在 saf ...

  4. HEXO-admin安装和使用(汉化版)

    hi,大家好,我是KINGWDY,众所周知我用的是hexo,写博文首先要在终端输入hexo n xxxxx,然后打开MWeb PRO开始写md,但是,这很麻烦,就在我一筹莫展之际,我看到了这篇博文-- ...

  5. 2020牛客NOIP赛前集训营-提高组(第二场)- B.包含 (FWT)

    题面 题解 这题就是个快速沃尔什变换的模板题,输入ai时,令s[ai]=1,对s[]做一遍DWT_AND(s)(快速沃尔什正变换,按位与),然后直接访问s[x]完事. #include<map& ...

  6. 一次较波折的MySQL调优

    春节长假某日,阳光明媚,春暖花开,恰逢冬奥会开幕,想着一定是一个黄道吉日,必能顺风顺水.没想到却遇到一个有点小波折 的客户报障. 01故障起因 故障起因是客户前一天从自建MySQL迁移到云上RDS,在 ...

  7. 第七十八篇:写一个按需展示的文本框和按钮(使用ref)

    好家伙, 我们又又又来了一个客户 用户说: 我想我的页面上有一个搜索框, 当我不需要他的时候,它就是一个按钮 当我想要搜索的时候,我就点一下它, 然后按钮消失,搜索框出现, 当我在浏览其他东西时,这个 ...

  8. SpringMVC--从理解SpringMVC执行流程到SSM框架整合

    前言 SpringMVC框架是SSM框架中继Spring另一个重要的框架,那么什么是SpringMVC,如何用SpringMVC来整合SSM框架呢?下面让我们详细的了解一下. 注:在学习SpringM ...

  9. Netty 学习(二):服务端与客户端通信

    Netty 学习(二):服务端与客户端通信 作者: Grey 原文地址: 博客园:Netty 学习(二):服务端与客户端通信 CSDN:Netty 学习(二):服务端与客户端通信 说明 Netty 中 ...

  10. 一文学会Spring JDBC 使用

    Spring JDBC 1.JDBC JDBC 就是 数据库开发 操作的 代名词,因为只要是现代商业项目的开发那么一定是离不开 数据库 的,不管你搞的是什么,只要是想使用动态的开发结构,那么一定就是 ...