zoukankan      html  css  js  c++  java
  • Vlan技术总结

    VLAN主要有两个作用:

    1.       vlan可以有效的控制广播域的范围
    2.       vlan可以分组设备,增强局域网的安全性(业务隔离)

     

    vlan的范围:

    一共有4096个vlan,vlan 1为默认vlan。但其中vlan 0 和 vlan 4095是保留的,故用户真正可以创建的vlan数为4094.

    Cisco交换机中,vlan 1002-1005默认用于 FDDI 和 TOKEN RING

     

    Vlan标签:

    交换机用vlan标签来区分不同的以太网帧。

     

    Access类型端口:

    仅属于某个特定的vlan

    行为总结:“进口打标,出口解标“

     

    Trunk类型的端口:

    携带vlan标签的数据帧可以在trunk链路(中继链路)上进行透传。

    Trunk端口一般情况下不对数据帧进行打标和解标操作。

    Trunk端口允许多个不同的vlan的数据帧通过。

    (注意:cisco以及锐捷设备的trunk端口默认属于所有已存在的vlan,H3C,华为设备的trunk端口默认只属于本地vlan,本地vlan即vlan 1,它和默认vlan 1不同,本地vlan默认为vlan 1 可以修改------在接口模式下输入:switchport trunk native vlan ?,同时本地vlan是属于trunk下的概念,故对华为,H3C的设备需要额外命令配置该trunk端口属于哪些vlan))

     

    Trunk的分装格式:ISL(cisco专有) ,dot1.Q(IEEE 802.1Q)国际标准,它们都是为打标签服务的。

    ISL:在以太网报文头部增加了26byte作为vlan tag,在帧尾加了4个字节的CRC。.

    802.1Q:在以太网帧的源mac字段后插入4个byte 的tag帧。

     

     

     

    IEEE 802.1Q 标签帧格式

    DA

    SA

    vlan tag

    Type/Length

    Date

    CRC

    6B

    6B

    4B

    2B

    46-1500B

    4B

    Vlan tag:4字节,包含2个字节的标签协议标识(TPID)和2个字节的标签控制信息(TCI),TCI字段具体又分为: priorty、CFI、Vlan ID,具体格式如下所示:

    TPID

    User Priority

    CFI

    VID

    2B

    3b

    1b

    12b

    TPID(标签协议标识):2字节,用于标识帧的类型,其值为0x8100时表示802.1Q/802.1P的帧。设备可以根据这个字段判断对它接收与否。

    TCI(标签控制信息字段):2字节,包括用户优先级(User Priority)、规范格式指示器(Canonical Format Indicator)和 VLAN ID。

    User Priority:3个bti,表示帧的优先级,取值范围0~7,值越大优先级越高,用于802.1p。

    CFI,1bit,值为0代表MAC地址是以太帧的MAC,值为1代表MAC地址是FDDI、令牌环网的帧。

    VIDVLAN ID:12bit,表示VLAN的值。12bit共可以表示4096个VLAN.

     

    (由于标准以太网帧的长度为64—1518Byte,所以802.1Q帧的长度范围为68—1522Byte)

     

    ISL标签帧格式:

     

    当一个携带了vlan标签的数据帧被从trunk端口发送出去是,如果标签中的vlanid与trunk端口的本地vlan相同,则应解掉标签发送。

    当一个不携带vlan标签的数据帧从trunk端口进入交换机时,则给该帧打上trunk端口本地的vlanid.

    除以上两种情况,trunk对其它情况不打标也不解标。

     

     

    不同vlan相同IP网段的pc跨广播通信:

     


     

    对上图PC1能ping通PC2.

    若上图sw1的f0/1端口模式和sw2的f0/1的模式未知,其它都如上图所示,如果要实现PC1能ping通PC2,请问有几种情况可以实现。

    1) sw1的f0/1端口模式设为access,并未其指定vlan ID号为vlan11,sw2的f0/1端口模式也设为access,并未其指定vlan ID号为vlan21。

    PC1与PC2的通信过程:pc1首先分装数据帧,数据帧到达交换机sw1后给数据帧打上vlan11的标签,交换机查找mac地址表,把数据帧从端口f0/1转发,端口f0/1给数据帧去标签,数据帧到达sw2的f0/1后,给数据帧打上vlan21的标签,sw2查找自己的mac地址表,通过端口f0/2把数据帧转发给PC2,端口f0/2并对数据帧解标)

    原理:access类型端口“进口打标,出口解标“

    u  2)sw1的f0/1端口模式设为access,并未其指定vlan ID号为vlan11,sw2的f0/1端口模式设为trunk,并修改该端口的本地vlan为vlan21(默认情况下本地vlan为vlan1)。

    PC1与PC2的通信过程:pc1首先分装数据帧,数据帧到达交换机sw1后给数据帧打上vlan11的标签,交换机查找mac地址表,把数据帧从端口f0/1转发,端口f0/1给数据帧去标签,数据帧到达sw2的f0/1后,给数据帧打上本地vlan标签即vlan21,sw2查找自己的mac地址表,通过端口f0/2把数据帧转发给PC2,端口f0/2并对数据帧解标。

    原理:access类型端口“进口打标,出口解标“,而对trunk类型端口当一个不携带vlan标签的数据帧从trunk端口进入交换机时,则给该帧打上trunk端口本地的vlanid.

    3) sw1的f0/1端口模式设为trunk,并修改该端口的本地vlan为vlan11,sw2的f0/1端口模式也设为trunk,并修改该端口的本地vlan为vlan21。

    PC1与PC2的通信过程:pc1首先分装数据帧,数据帧到达交换机sw1后给数据帧打上vlan11的标签,交换机查找mac地址表,把数据帧从端口f0/1转发,端口f0/1比较自己的本地vlanid和数据帧的标签,发现相同则对它解标,数据帧不带vlan标签在trunk链路上传送,到达sw2的f0/1后,给数据帧打上该端口本地vlan标签即vlan21,sw2查找自己的mac地址表,通过端口f0/2把数据帧转发给PC2,端口f0/2并对数据帧解标。(可能出现错误)

    对情况3)弊端或出错情况介绍:

           1、 设备会不断出现native vlan不匹配的提示,同时如果trunk链路两端设备的nativevlan不一致也将

               导致一些二层协议不能正常运行,例如:vtp 、stp等

           2、trunk使用的封装协议必须为802.1q,不能为isl,因为isl对左右vlan都会做vlan标记

  • 相关阅读:
    非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)
    python相关总结
    可视化滤波器
    Ubuntu 和windows程序区别
    远程服务器运行代码相关
    Ubuntu
    jmeter学习(1)基础支持+安装部署
    python中eval方法的使用
    mysql学习(4)python操作数据库
    mysql学习(3)10045错误,连接不上数据库
  • 原文地址:https://www.cnblogs.com/duanxz/p/4133483.html
Copyright © 2011-2022 走看看