HCIA Datacom - VLAN原理与配置

HCIA Datacom - VLAN原理与配置

  • 以太网是一种基于SCMA/CD的数据网络通信技术,其特征是共享通信介质。当主机数目较多时会导致安全隐患、广播泛滥、性能显著下降甚至造成网络不可用
  • 在这种情况下出现了VLAN(Virtual Local Area Network)技术解决以上问题

什么是VLAN

  • 传统以太网的问题

    • 在典型交换机网络中,当广播域某台主机发送一个广播帧或未知单薄帧时,该数据帧会被泛洪,甚至传递到整个广播域
    • 广播域越大,产生的网络安全问题、垃圾流量问题就越严重
  • 虚拟局域网(VLAN,Virtual LAN)

    • 虚拟局域网VLAN可以隔离广播域
    • 特点
      • 不受地域限制
      • 同一VLAN内的设备才能直接进行二层通信

VLAN的基本概念

如何实现VLAN

  • VLAN标签(VLAN Tag)
    • 要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段
    • IEEE 802.1Q协议规定,在以太网数据帧中加入4个字节的VLAN标签,又称VLAN Tag,简称Tag
  • IEEE 802.1Q标准(也被称为Dot1Q)定义了该“标记”方法。该标准对传统的以太网数据帧进行修改,在帧头中插入802.1QTag,而在该Tag中,便可以写入VLAN信息

VLAN数据帧

  • 原始以太网数据帧

    目的MAC地址 源MAC地址 在此处插入802.1Q Tag 类型 Dtat FCS
  • 802.1QTag

    TPID(0×8100 PRI CFI VLAN ID
    16bit 3bit 1bit 12bit
  • TPID(标签协议标识符):标识数据帧的类型,值为0×8100时表示802.1Q帧

  • PRI(优先级)标识帧的优先级,主要用于Qos

  • CFI(标准格式指示符)在以太网环境中,该字段的值为0

  • VLAN ID(VLAN 标识符)标识该帧所属的VLAN

  • 802.1Q帧(标记帧,Tagged帧)

    目的MAC地址 源MAC地址 TAG 类型 Data FCS

VLAN的划分方式

VLAN划分方式 VLAN 10 VLAN 20
基于接口 GE0/0/1,GE0/0/3 GE0/0/2,GE0/0/4
基于MAC地址 MAC1,MAC3 MAC2,MAC4
基于IP子网划分 10.0.1.* 10.0.2.*
基于协议划分 IP IPv6
基于策略 10.0.1.*+ GE0/0/1+MAC1 10.0.2.* + GE0/0/2 + MAC2

基于接口的VLAN划分

  • 原理
    • 根据交换机的接口来划分VLAN
    • 网络管理员预先给交换机的每个接口配置不同的PVID,将该接口划入PVID对应的VLAN
    • 当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打上接口指定PVID的Tag,然后将数据帧将在指定PVID中传输
  • 缺省VLAN,PVID
    • Port VLAN ID,是接口上的缺省VLAN
    • 取值:1~4094

基于MAC地址的VLAN划分

  • 原理
    • 根据数据帧的源MAC地址来划分VLAN
    • 网络管理员预先配置MAC地址和VLAN ID映射关系表
    • 当交换机收到的是Untagged帧时,就依据该表给数据帧添加指定VLAN的Tag,然后数据帧将在指定VLAN中传输
  • 映射表
    • 记录了MAC地址和VLAN ID的关联情况

以太网二层接口类型

  • Access接口
    • 交换机上常用来链接用户PC、服务器等终端设备的接口。Access接口所链接的这些设备网卡往往只收发无标记帧。Access接口只能接入一个VLAN
  • Trunk接口
    • Trunk接口允许多个VLAN的数据帧通过,这些数据帧通过802.1QTag实现区分。Trunk接口常用于交换机之间的互联,也用于连接路由器、防火墙等设备的子接口
  • Hybrid接口
    • Hybrid接口与Trunk接口类似,也允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。用户可以灵活指定Hybrid接口在发送某个(或某些)VLAN的数据帧时是否携带Tag

Access接口

接口收到Untagged帧 接口收到Tagged帧 帧的VLAN ID与接口PVID相同 帧的VLAN ID与接口PVID不同
接收帧 接收该帧,并打上该接口PVID的Tag 当该帧的VLAN ID与该接口的PVID相同,接收该帧。当该帧的VLAN ID与该接口的PVID不同时,丢弃该帧
发送帧 帧的VLAN ID与接口PVID相同:先剥离该帧的Tag,然后再将其从该接口发出 帧的VLAN ID与接口PVID不同,禁止将该帧从该接口发出

Trunk接口

接口收到的Untagged帧 接口收到Tagged帧 帧的VLAN ID与接口PVID相同 帧的VLAN ID与接口PVID不同
接收帧 该帧打上PVID,当PVID在该接口允许通过VLAN列表里时接收该帧;当PVID不在允许通过的VLAN列表时,丢弃该帧。 当该帧的VLAN ID在该接口允许通过的VLAN列表时,接收该帧,否则丢去该帧
发送帧 当该帧的VLAN ID在该接口允许通过VLAN列表中,则将该帧的Tag剥离,然后将其从该接口发送出去;如果VLAN ID不在允许通过的VLAN列表中则禁止将该帧从该接口发出 当该帧的VLAN ID在该接口允许通过的VLAN列表中,则保留该帧的Tag,然后将其从该接口发送出去;如果VLAN ID不在允许通过的VLAN列表中则禁止将该帧从接口发出

Hybrid接口

接口收到Untagged帧 接口收到Tagged帧 帧的VLAN ID是该接口允许通过的VLAN ID 帧的VLAN ID是该接口允许通过的VLAN ID
接收帧 打上PVID,当PVID在该接口允许通过的VLAN列表里时接收该帧,当PVID不在允许通过的VLAN列表里时,丢弃该帧 当该帧的VLAN ID在该接口允许通过的VLAN列表里时,接收该帧,否则丢弃该帧
发送帧 当管理员通过命令设置发送该VLAN的帧时不携带Tag,则将该帧的Tag剥除,然后将其从该接口发送出去 当管理员通过命令设置发送该VLAN的帧时携带Tag,则保留该帧的Tag,然后将其从该接口发送出去

VLAN的应用

VLAN的规划

  • VLAN分配原则

    • 按业务规划:可分为语音、视频和数据
    • 按部分划分:可分为工程部、市场部、财经部等
    • 按应用划分:可分为服务器、办公、教室等
  • VLAN分配技巧

    • VLAN ID的分配在有效范围内,可以随意分配和选取,但是为了提高VLAN ID的连续性,可以采用VLAN ID和子网关联的方式进行分配
  • VLAN规划示例

    • 假设某园区有三栋楼,分别为行政楼、教学楼、办公楼;每栋楼各有1台接入交换机,核心交换机在行政楼;行政楼内有办公室、财务部和教室;办公楼内由办公室和财务部;教学楼内有办公室和教室

    • VLAN规划如下:

      VLAN IP地址 描述
      1 X.16.10.0/24 办公室用户所属VLAN
      2 X.16.20.0/24 财务部用户所属VLAN
      3 X.16.30.0/24 教室用户所属VLAN
      100 Y.16.100.0/24 设备管理所属VLAN

应用场景 - 基于接口的VLAN划分

  • 应用场景
    • 某商务楼内有多家公司,为了降低成本,多家公司共用网路资源,各公司分别链接到一台二层交换机的不同接口,并通过统一的出口访问
  • VLAN划分
    • 为了保证各公司业务的独立和安全,可将每个公司所连接的接口划分到不同的VLAN,实现公司间业务数据的完全隔离。可以认为每个公司拥有独立的“虚拟路由器”,每个VLAN就是一个”虚拟工作组“

应用场景 - 基于MAC的VLAN划分

  • 应用场景:
    • 某个公司的网路中,网络管理者将同一部门的员工划分到同一VLAN中。为了提高部门内的信息安全,要求只有本部门员工的主机才可以访问特定的网络资源
  • VLAN划分
    • 为了保证非本部门员工不能访问网络资源,可在SW1上配置基于MAC地址划分的VLAN。这样,新的主机接入网络,就无法访问公司的网络资源

VLAN的配置示例

VLAN的基础配置命令

  • 创建VLAN
    • vlan vlan-id
      • 通过此命令创建VLAN并进入VLAN视图,如果VLAN已存在,直接进入该VLAN视图。VLAN-id是整数形式,取值范围时1~4094
    • vlan batch { vlan-id [ to vlan-id2] }
      • 通过此命令批量创建vlan
      • batch:指定批量创建的VLAN ID
      • vlan-id:表示第一个VLAN的编号
      • vlan-id2:表示最后一个VLAN的编号

Access接口的基础配置命令

  • 配置接口类型
    • port link-type access
      • 在接口视图下,配置接口的链路类型为Access
  • 配置Access接口的缺省VLAN
    • port default vlan vlan-id
      • 在接口视图下,配置接口的缺省VLAN并同时加入这个VLAN
      • VLAN-id配置缺省VLAN的编号。整数形式,取值范围1~4094

Trunk接口的基础配置命令

  • 配置接口类型
    • prot lin-type trunk
  • 配置Trunk接口加入指定VLAN
    • port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }
  • (可选)配置Trunk接口的缺省VLAN
    • prot trunk pvid vlan vlan-id

Hybird接口的基础配置命令

  • 配置接口类型
    • port link-type hybrid
  • 配置hybrid接口加入指定VLAN
    • 在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口
    • prot hybrid Untagged vlan { vlan-id1 [ to vlan-id2 ] | all }
  • 在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Tagged方式通过接口
    • prot hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
  • (可选)配置Hybrid接口的缺省VLan
    • port hybrid pvid vlan vlan-id

基于MAC地址划分VLAN

VLAN的基础配置命令

  • 关联MAC地址与VLAN
    • mac-vlan mac-address mac-address { mac-address-mask | mac-address-mask-length }
    • mac-address:指定与VLAN关联的MAC地址。格式为H-H-H。其中H为4位的十六进制数,可以输入1~4位,如00e0、fc01.当输入不足4位时,表示前面的几位为0,如:输入e0,等同于00e0.MAC地址不可设置为0000-0000-0000、FFFF-FFFF-FFFF和组播地址
    • mac-address-mask:指定MAC地址编码。格式为H-H-H,其中H为1至4位的十六进制数
    • mac-address-mask-length:指定MAC地址掩码长度。整数形式,取值范围1~48
  • 使能MAC地址与VLAN
    • mac-vlan enable