首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过故障诊断STP的TLV VLAN损坏或丢失

通过故障诊断STP的TLV VLAN损坏或丢失
EN

Stack Overflow用户
提问于 2020-07-16 16:47:03
回答 1查看 57关注 0票数 0

我需要生成一个STP流量,但是当我通过wireshark捕获它时,它会显示vlan的tlv (tag-length-value)丢失,tlv记录被过早截断,这是我的代码:

代码语言:javascript
复制
sendp(Dot3(dst="01:00:0c:cc:cc:cd", src="08:17:35:51:29:2e")/LLC(dsap=0xaa, ssap=0xaa, ctrl=3)/SNAP(OUI=0x0c, code=0x010b)/STP(rootid=8406, portid=0x802e, pathcost=19, rootmac="2c:33:11:53:85:80",bridgeid=32982, bridgemac="08:17:35:51:29:00")/data)

我添加了Dot1Q(vlan=214) =>

根标识符和网桥标识符中的数据发生了更改,这不是我们所希望的,并且出现了上图所示的新问题,那么我应该在代码行中添加/删除什么来解决tlv vlan问题?

EN

Stack Overflow用户

发布于 2020-07-17 05:56:54

我想你需要把Dot3层换成以太

这里有3个例子:

我从"I added Dot1Q(vlan=214) =>“(我从”I added Dot1Q(vlan=214)=>“中推断出)

  • replace of Dot3 by Ether

下面是3个例子:

代码语言:javascript
复制
from scapy.layers.inet import SNAP
from scapy.layers.l2 import Ether, Dot3, Dot1Q, LLC, STP
data = "test"

示例1:

代码语言:javascript
复制
packet = (
    Dot3(dst="01:00:0c:cc:cc:cd", src="08:17:35:51:29:2e")
    / LLC(dsap=0xAA, ssap=0xAA, ctrl=3)
    / SNAP(OUI=0x0C, code=0x010B)
    / STP(
        rootid=8406,
        portid=0x802E,
        pathcost=19,
        rootmac="2c:33:11:53:85:80",
        bridgeid=32982,
        bridgemac="08:17:35:51:29:00",
    )
    / data
)
packet.show2()

输出:

代码语言:javascript
复制
###[ 802.3 ]### 
  dst       = 01:00:0c:cc:cc:cd
  src       = 08:17:35:51:29:2e
  len       = 47
###[ LLC ]### 
     dsap      = 0xaa
     ssap      = 0xaa
     ctrl      = 3
###[ SNAP ]### 
        OUI       = 0xc
        code      = 0x10b
###[ Spanning Tree Protocol ]### 
           proto     = 0
           version   = 0
           bpdutype  = 0
           bpduflags = 0
           rootid    = 8406
           rootmac   = 2c:33:11:53:85:80
           pathcost  = 19
           bridgeid  = 32982
           bridgemac = 08:17:35:51:29:00
           portid    = 32814
           age       = 1.0
           maxage    = 20.0
           hellotime = 2.0
           fwddelay  = 15.0
###[ Raw ]### 
              load      = 'test'

示例2:

代码语言:javascript
复制
vlan_packet = (
    Dot3(dst="01:00:0c:cc:cc:cd", src="08:17:35:51:29:2e")
    / Dot1Q(vlan=214)
    / LLC(dsap=0xAA, ssap=0xAA, ctrl=3)
    / SNAP(OUI=0x0C, code=0x010B)
    / STP(
        rootid=8406,
        portid=0x802E,
        pathcost=19,
        rootmac="2c:33:11:53:85:80",
        bridgeid=32982,
        bridgemac="08:17:35:51:29:00",
    )
    / data
)
vlan_packet.show2()

输出:

代码语言:javascript
复制
###[ 802.3 ]### 
  dst       = 01:00:0c:cc:cc:cd
  src       = 08:17:35:51:29:2e
  len       = 51
###[ LLC ]### 
     dsap      = 0x0
     ssap      = 0xd6
     ctrl      = 136
###[ Raw ]### 
        load      = 'p\xaa\xaa\x03\x00\x00\x0c\x01\x0b\x00\x00\x00\x00\x00 \xd6,3\x11S\x85\x80\x00\x00\x00\x13\x80\xd6\x08\x175Q)\x00\x80.\x01\x00\x14\x00\x02\x00\x0f\x00test'

=>看到这个包有多让人困惑了吗?

我认为您需要发送的内容:示例3:

代码语言:javascript
复制
vlan_packet = (
    Ether(dst="01:00:0c:cc:cc:cd", src="08:17:35:51:29:2e")
    / Dot1Q(vlan=214)
    / LLC(dsap=0xAA, ssap=0xAA, ctrl=3)
    / SNAP(OUI=0x0C, code=0x010B)
    / STP(
        rootid=8406,
        portid=0x802E,
        pathcost=19,
        rootmac="2c:33:11:53:85:80",
        bridgeid=32982,
        bridgemac="08:17:35:51:29:00",
    )
    / data
)
vlan_packet.show2()

输出:

代码语言:javascript
复制
###[ Ethernet ]### 
  dst       = 01:00:0c:cc:cc:cd
  src       = 08:17:35:51:29:2e
  type      = n_802_1Q
###[ 802.1Q ]### 
     prio      = 0
     id        = 0
     vlan      = 214
     type      = 0x8870
###[ LLC ]### 
        dsap      = 0xaa
        ssap      = 0xaa
        ctrl      = 3
###[ SNAP ]### 
           OUI       = 0xc
           code      = 0x10b
###[ Spanning Tree Protocol ]### 
              proto     = 0
              version   = 0
              bpdutype  = 0
              bpduflags = 0
              rootid    = 8406
              rootmac   = 2c:33:11:53:85:80
              pathcost  = 19
              bridgeid  = 32982
              bridgemac = 08:17:35:51:29:00
              portid    = 32814
              age       = 1.0
              maxage    = 20.0
              hellotime = 2.0
              fwddelay  = 15.0
###[ Raw ]### 
                 load      = 'test'

斯泰西看起来更快乐了

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62930924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档