zoukankan      html  css  js  c++  java
  • 一次VLAN标签引发的网络事件的处置

    一次VLAN标签引发的网络事件的处置

     

    一、背景介绍

    事件背景:

      HZ某分公司新装一套业务系统,通过一条专线和BJ总公司连通。分配给HZ公司的ip地址为:a.b.c.X,掩码24位,网关a.b.c.1。BJ总公司网络管理员无法联系、相关配置未知。

    故障现象:

      HZ分公司端光猫下来网线直连某台服务器(ip、掩码、网关设置好),能ping通网关a.b.c.1。

      光猫下来网线连接到二层Hub,所有服务器也连到该Hub,所有服务器能正常ping通网关a.b.c.1。Hub网口不够,且性能不佳,未采用。

      光猫下来网线连接UNIS S5600 Series交换机,该交换机为出厂配置,所有服务器之间能互通,但是均无法ping通网关。

     

    二、原因分析

      光猫下来网线直接连接服务器,服务器能ping通网关。光猫下来网线连接S5600以太口G1/0/1(access模式,vlan 1),服务器连接S5600以太口G1/0/2(access模式,vlan 1),ping网关不通。

      从服务器直连光猫到达BJ对端交换机端口的数据包未带vlan tag,从S5600以太口G1/0/1(access模式)连接BJ对端交换机端口的数据包也未带vlan tag,所以出去的数据包是一样的。

      那么很可能接收到的数据包携带了vlan tag,服务器收到带vlan tag的数据包正常处理了。傻瓜机是不具备任何处理(修改,封装,处理封装等)数据的能力的,所以傻瓜交换机的转发原则,收到什么转发什么。而S5600以太口G1/0/1的PVID默认为1,如果收到数据包vlan tag不为1,S5600收到后直接丢弃。

     

    三、wireshark抓包查看vlan tag

      将光猫网线直连电脑,wireshark抓包,查看接收到的数据包vlan tag为1016,说明这个C类段的vlan为1016。具体过程如下:

    (一)先设置Wireshark

      1、打开Wireshark,点击 编辑–>首选项

      2、选择 外观 --> 列(中文版),对应appearance–>columns,并点击下方 + 按钮。

      3、添加命名 “Vlan”(大小写皆可),选择802.1Q VLAN id,并确认保存。

     

    (二)修改电脑注册表

      1、打开电脑 网络和Internet设置,点击 以太网–>更改适配器设置。

     

      选择抓包的网口,右键 点击“属性”。

     

      选择Microsoft网络客户端,点击配置

     

      选择高级,找到Priority & VLAN(中文版为优先级和VLAN)并选择Enabled(中文版为使能),确定保存。

     

      选择详细信息,属性找到驱动程序关键字,记录值。

     

      2、在windows运行下查找regedit,进入注册表编辑器。

       进入HKEY_LOCAL_MACHINESYSTEMControlSet001ControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}007

     

     

     

     

     

     

     

     

     

     

     

      

      查看 MonitorModeEnabled的值是否为1,PreserveVlanInfoInRxPacket的值是否为1。若不存在,则新建 DWORD(32位),文件名分别为MonitorModeEnabled 、PreserveVlanInfoInRxPacket,设置值为1。设置完后重启电脑。

     

    (三)wireshark抓包查看vlan tag

    数据包分析:

      IEEE 802.1Q标准对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。VLAN帧最小帧长为64字节。

      VLAN帧格式:

      1、Destination address:6字节,目的MAC地址。

      2、Source address:6字节,源MAC地址。

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

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

    如果设置用户优先级,但是没有VLANID,则VLANID必须设置为0x000。

      3.3、CFI:1比特,CFI (Canonical Format Indicator),长度为1比特,表示MAC地址是否是经典格式。CFI为0说明是标准格式,CFI为1表示为非标准格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。

      3.4、VID:12比特 ,VLAN ID,长度为12比特,表示该帧所属的VLAN。在VRP中,可配置的VLAN ID取值范围为1~4094。0和4095协议中规定为保留的VLAN ID。三种类型:Untagged帧:VID 不计;Priority-tagged帧:VID为 0x000;VLAN-tagged帧:VID范围0~4095。三个特殊的VID:0x000:设置优先级但无VID;0x001:缺省VID;0xFFF:预留VID。

      4、Length/Type:2字节/指后续数据的字节长度,但不包括CRC检验码。

      5、Data:42~1500字节/负载(可能包含填充位)。

      6、CRC:4字节/用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。

      0x81 00时表示802.1Q Tag帧,0x 3f8为VLAN ID,转换成十进制为1016。如下图:

    四、解决方法

    (一)H3C交换机设备上access、trunk、hybrid端口的处理流程

    (1)access端口

      发送(从交换机内部往外发送):

        带有vlan tag:删除tag后,发送

        不带vlan tag:不可能出现

      接收

        带有vlan tag:若该tag等于该access端口的pvid,则可以接收,进入交换机内部

        不带vlan tag:添加该access端口的pvid,进入交换机内部

    (2)trunk端口(允许发送native VLAN数据的时候,可以不加tag)

      发送(从交换机内部往外发送):

        带有vlan tag:若tag等于该trunk端口的pvid,则删除tag后发送;否则保留tag直接发送

        不带vlan tag:不可能出现

      接收

        带有vlan tag:保留该tag,进入交换机内部

        不带vlan tag:添加该trunk端口的pvid,进入交换机内部

    (3)hybrid端口(允许发送多个VLAN数据的时候,可以不加tag)

      发送(从交换机内部往外发送):

        带有vlan tag:是否带tag进行发送,取决于用户配置(用户可以配置tagged list,untagged list)

        不带vlan tag:不可能出现

      接收

        带有vlan tag:保留该tag,进入交换机内部

        不带vlan tag:添加该hybrid端口的pvid,进入交换机内部

      注:数据帧在交换机内部处理时,均带有vlan tag。

     

    (二)对端互联端口配置分析

      对端交换机和我互联端口不可能为access口(access口删除tag后再发送出去)。

      若为trunk口:(1)trunk口发送规则为:若tag等于该trunk端口的pvid,则删除tag后发送;否则保留tag直接发送。说明该端口的pvid不可能为1016。(2)其接收规则为:不带vlan tag的包添加该trunk端口的pvid,进入交换机内部  。而电脑直连能和网关通又要求trunk端口的pvid为1016。所以不成立。

      对端和我互联交换机端口则为hybrid端口。该端口pvid为1016(接收不带vlan tag时添加该hybrid端口的pvid,进入交换机内部)。1016在tagged list中(发送带有vlan tag时是否带tag进行发送,取决于用户配置)。

     

    (三)我端交换机S5600配置。

      满足:(1)对端发过来的vlan tag 1016能接得住;(2)发过去的要么不带vlan tag,要带就带1016即可。

      连接服务器的端口配置:access模式,vlan 1016。

      与对端交换机互联口配置:(1)若为access模式,该端口pvid设置为1016即可。(2)若为trunk模式,该端口pvid不为1016,且允许1016过即可。(3)若为hybrid模式,将vlan 1016配置为tagged list,允许1016过即可。

     

  • 相关阅读:
    运算符、基本数据类型-----整型、字符串
    练习题
    python安装与初识(python起源、分类,if语句、while语句、基本数据类型、变量的命名)
    hdu2187悼念512汶川大地震遇难同胞——老人是真饿了(贪心 简单题)
    牛客小白月赛9 A签到(分数取模,逆元)
    牛客小白月赛9H论如何出一道水题(两个连续自然数互质)
    EOJ3134. 短信激活码(大数幂取模)
    EOJ3650 转机折扣(26进制,字符串)
    hdu1042 N!(大数求阶乘)
    hdu2061 Treasure the new start, freshmen!(暴力简单题)
  • 原文地址:https://www.cnblogs.com/xxkj/p/14573812.html
Copyright © 2011-2022 走看看