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


    介绍-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的方式
    • 2022年10月21日20:03:20
      • 修改了代码块的语法高亮
  • 相关阅读:
    数据库基础理论
    【opencv450-samples】train_svmsgd.cpp
    git 学习总结
    力扣:138. 随机链表的复制(Python3)
    算法-堆/多路归并-查找和最小的 K 对数字
    HTML+CSS+JS网页设计期末课程大作业 html+css+javascript+jquery化妆品电商网站4页面
    PAM从入门到精通(七)
    数据结构——归并排序
    携创教育:2023年4月自考考试时间首次公布!
    【Linux】shell脚本+cron定时任务实现“当程序报错时,发送邮件”
  • 原文地址:https://www.cnblogs.com/alittlemc/p/16760556.html