zoukankan      html  css  js  c++  java
  • VLAN

    转自:http://support.huawei.com/ehedex/hdx.do?docid=DOC1000008469&lang=zh&clientWidth=1350&browseTime=1501423660689

    VLAN概述

    从VLAN技术的出现、VLAN的优点到VLAN如何工作等,描述了VLAN技术是二层网络中重要转发技术之一。

    VLAN概述

    以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detect,载波侦听多路访问/冲突检测)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至使网络不可用等问题。通过交换机可实现LAN(Local Area Network)互联,由于交换机采用交换方式将来自入接口的信息转发到指定出接口上,克服了共享介质上的访问冲突问题,有效的解决了冲突严重问题。但是,当来自入接口的信息无法确定指定的出接口时,此信息会通过交换机上其他所有接口转发(除接收该信息的接口),形成了广播域。

    为了解决广播域问题,可将网络分段,把大的广播域划分为若干个小的广播域,从而限制广播报文的影响范围。通常采用路由器在网络层进行网络隔离,但是存在规划复杂、组网方式不灵活,且成本较高。作为替代的LAN分段方法,VLAN(Virtual Local Area Network,虚拟局域网)技术被引入,用于解决大型的二层网络所面临的广播风暴、安全等问题。

    VLAN定义

    VLAN是将一个物理的LAN在逻辑上划分成多个广播域(多个VLAN)的通信技术。每一个VLAN都包含一组拥有相同需求的计算机,与物理上形成的LAN具有相同的属性。但是由于VLAN是在逻辑划分而不是在物理上划分,所有同一个VLAN内的各个工作站无需放置在同一个物理空间。即使两台计算机有着同样的网段,如果它们不属于同一个VLAN,它们各自的广播流不会互相转发,从而实现了控制流量、减少设备投资、简化网络管理、提高网络的安全性。

    图1是一个典型的VLAN应用。3台交换机放置在不同的地点,比如写字楼的不同楼层。采用VLAN,可以实现各企业客户共享LAN设施,同时保证各自的网络信息安全。

    图1 VLAN的典型应用示意图

    从上述应用可以看出VLAN具有以下优势:
    • 限制广播域。广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
    • 增强局域网的安全性。不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
    • 提高了网络的健壮性。故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
    • 灵活构建虚拟工作组。用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

    VLAN相关术语和基本原理

    • 802.1Q简介和VLAN帧格式

      传统的以太网数据帧在目的MAC地址和源MAC地址之后封装的是上层协议的类型字段,如图2所示。

      图2 传统的以太网数据帧格式

      IEEE 802.1Q是虚拟桥接局域网的正式标准,对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag,如图3所示。

      图3 802.1Q帧格式

      • TPID:长度为2字节,表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。

      • PRI:Priority,长度为3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。用于当交换机阻塞时,优先发送优先级高的数据帧。

      • CFI:Canonical Format Indicator,长度为1比特,表示MAC地址是否是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。用于兼容以太网和令牌环网。在以太网中,CFI的值为0。

      • VID:VLAN ID,长度为12比特,表示该帧所属的VLAN。在S3700中,VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。

        每台支持802.1Q协议的交换机发送的数据包都会包含VLAN ID,以指明自己属于哪一个VLAN。因此,在一个VLAN交换网络中,以太网帧有以下两种形式:
        • 有标记帧(tagged frame):加入了4字节802.1Q Tag的帧
        • 无标记帧(untagged frame):原始的、未加入4字节802.1Q Tag的帧
    • VLAN的划分方式

      VLAN划分方式表1所示。

      表1 VLAN划分方式

      VLAN划分方式

      定义

      基于端口划分

      根据交换机的端口划分VLAN。例如交换机的1~4端口划分到VLAN2,5~8端口划分到VLAN3。

      同一VLAN可以跨越多个以太网交换机,例如可以将交换机A的端口1~4和交换机B的端口3~6划分到同一个VLAN。

      交换机维护一张VLAN映射表,记录本机端口和VLAN的对应关系。

      基于MAC地址划分

      根据每个主机的MAC地址划分VLAN,即根据主机的MAC地址配置主机属于哪个VLAN。

      交换机维护一张VLAN映射表,记录MAC地址和VLAN的对应关系。

      基于IP子网划分

      根据主机的IP地址决定主机属于哪个VLAN:同一个IP子网的所有主机属于同一个VLAN。这样,同一个IP子网中的用户被划分在一个VLAN内。

      交换机维护一张VLAN映射表,记录IP子网和VLAN的对应关系。

      基于协议划分

      根据二层数据帧中协议字段划分VLAN。通过二层数据帧中的协议字段(目前可支持IPv4、IPv6、IPX、AppleTalk协议),可以判断出上层运行的网络协议,从而在相应的VLAN中传输。

      交换机维护一张VLAN映射表,记录协议和VLAN的对应关系。

      基于策略划分VLAN

      根据每个主机的MAC地址和IP地址划分VLAN,即根据主机的MAC地址和IP地址配置主机属于哪个VLAN。

      交换机维护一张VLAN映射表,记录MAC地址、IP地址、端口和VLAN的对应关系。

    • VLAN内的链路类型

      图4 VLAN中的链路类型示意图

      图4所示,VLAN中有以下两种链路类型:

      • 接入链路(Access Link):用于连接用户主机和交换机的链路。通常情况下,主机并不需要知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标记的帧。因此,主机发送和接收的帧都是untagged帧。

      • 干道链路(Trunk Link):用于交换机间的互连或交换机与路由器之间的连接。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上传输的帧都是Tagged帧。

    • 端口属性

      表2所示端口属性。

      表2 端口属性

      端口属性

      对接收不带Tag的报文处理

      对接收带Tag的报文处理

      对发送报文的处理

      用途

      Access端口

      接收该报文,并打上缺省VLAN的Tag。

      • 当VLAN ID与缺省VLAN ID相同时,接收该报文。
      • 当VLAN ID与缺省VLAN ID不同时,丢弃该报文。

      去掉Tag,发送该报文。

      端口只能属于1个VLAN,用于交换机与计算机直接连接。

      Trunk端口

      • 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。
      • 打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。
      • 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。
      • 当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。
      • 当VLAN ID与缺省VLAN ID相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。
      • 当VLAN ID与缺省VLAN ID不同,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。

      端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于网络设备之间连接。

      Hybrid端口

      • 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。
      • 打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。
      • 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。
      • 当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。

      当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。可以通过命令设置发送时是否携带Tag。

      端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于网络设备之间连接,也可以用于连接用户设备。

      QinQ端口

      QinQ端口是使用QinQ协议的端口。QinQ端口可以给帧加上双重Tag,即在原来Tag的基础上,给帧加上一个新的Tag,从而可以支持多达4094 x 4094个VLAN,满足网络对VLAN数量的需求。

      每个Access、Trunk、Hybrid、QinQ类型的端口都可以配置一个缺省VLAN(PVID:Port Default VLAN ID),表示端口所属的VLAN。
      • 对于Access类型端口,PVID的数值表示当前端口所属的VLAN。

      • 对于Trunk、Hybrid类型端口,由于Hybrid类型端口和Trunk类型端口允许多个VLAN数据帧通过,也可理解为这两种类型的端口属于多个VLAN,所以需要配置PVID。

      缺省情况下,端口将被划分到VLAN1。由于设备所有的端口都默认加入VLAN1,因此当网络中存在VLAN1的未知单播、组播或者广播报文时,可能会引起广播风暴。对于不需要加入VLAN1的端口及时退出VLAN1,避免环路。
    • VLAN中的数据交换原理

      图4所示,VLAN2中的PC1发送数据到目的地PC2,转发过程如下:

      1. CE1的Access类型端口收到PC1发送的untagged帧,在帧上打上标记PVID(VLAN 2)形成tagged帧。通过MAC地址表,找到对应的出接口,将此tagged帧发送出去。

        说明:
        类似的,假设是基于MAC地址划分VLAN。CE1的Acess类型端口接收到PC1发送的untagged帧,在VLAN映射表中查询帧中源MAC地址所对应的VLAN ID,并构造tagged帧。
      2. PE的Trunk类型端口接收到帧后,先检查此帧携带的VLAN ID是否与自身已配置的VLAN ID一致。如果一致,直接将此数据帧透传到对端。否则,直接丢弃该帧。

      3. CE2的Trunk类型端口接收到帧后,通过MAC地址表,找到对应的出接口,即CE2与PC2相连的Access端口。

      4. CE2的Access类型端口收到帧后,确定帧中携带的VLAN ID和端口支持的VLAN ID一致,将帧中的标记剥掉,形成untagged帧,转发给目的主机PC2。

    • VLANIF接口

      VLANIF接口是逻辑接口、是三层接口,可以部署在三层交换机上,也可以部署在路由器上。

      三层交换技术是将路由技术与交换技术合二为一的技术,在交换机内部实现了路由,提高了网络的整体性能。三层交换机通过路由表传输第一个数据流后,会产生一个MAC地址与IP地址的映射表。当同样的数据流再次通过时,将根据此表直接从二层通过而不是通过三层。

      为了保证第一次数据流通过路由表正常转发,路由表中必须有正确的路由表项。因此必须在三层交换机上部署VLANIF接口并部署路由协议,实现三层路由可达。

    说明:
    关键点总结:
    • 对于主机来说,它不需要知道VLAN的存在。主机发出的是untagged报文。
    • 交换设备接收到报文后,根据配置规则(如端口信息)判断出报文所属的VLAN后,再进行处理。
    • 如果报文需要通过另一台交换机转发,则该报文必须通过干道链路传输透传到对端交换设备上。为了保证其它交换设备能够正确处理报文中的VLAN信息,在干道链路上传输的报文必须都打上了VLAN标记。
    • 当交换设备最终确定报文出端口后,将报文发送给主机前,需要将VLAN标记从帧中删除,这样主机接收到的报文都是不带VLAN标记的以太网帧。

    所以,一般情况下,干道链路上传输的都是tagged帧,接入链路上传送到的都是untagged帧。这样处理的好处是:网络中配置的VLAN信息可以被所有交换设备正确处理,而主机不需要了解VLAN信息。

    今天不自律,明天不自由
  • 相关阅读:
    Javascript的异步和回调
    JS-使用工厂方法创建对象
    PHPUnit使用教程——PHP环境变量+x-debug+composer+phpunit配置安装(超详细!)
    JQuery 纵向二级菜单与对齐方式
    图像映射<map>、<area>
    打开另一个窗口
    多行文本省略号
    replace 正则
    jquery each用法
    li前面的原点或者方的样式修改html中列表项li所显示的圆点的颜色?,以及相关样式的设定
  • 原文地址:https://www.cnblogs.com/buddy916/p/7260821.html
Copyright © 2011-2022 走看看