首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义动态主机配置协议Option82

自定义动态主机配置协议Option82
EN

Stack Overflow用户
提问于 2015-02-03 22:55:54
回答 1查看 2.1K关注 0票数 1

我正在尝试创建一个包含Option82的自定义DHCP请求,但我无法设置子选项的长度:

代码语言:javascript
复制
ethernet= Ether(dst='ff:ff:ff:ff:ff:ff',src=get_if_hwaddr("eth1"), type=0x800)
ip= IP(src='0.0.0.0', dst='255.255.255.255')
udp = UDP(sport=68, dport=67)
bootp = BOOTP(chaddr =hw, ciaddr ='0.0.0.0', xid =0x01020304, flags= 1)
dhcp = DHCP(options=[("message-type","discover")])/DHCP(options=[("relay_agent_Information", "TEST"), "end"])

packet = ethernet / ip / udp / bootp / dhcp

无论我做什么,option82的长度总是错误的。是否有人知道如何设置子选项的地址头?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-04-18 03:05:47

DHCP选项82不是像"TEST"那样的简单字符串。您可能会发现在RFC3046中对该选项有一个非常好的解释,该选项82是一个用于特定代理提供的子选项的“容器”选项。中继代理信息选项的格式为:

代码语言:javascript
复制
      Code   Len     Agent Information Field
     +------+------+------+------+------+------+--...-+------+
     |  82  |   N  |  i1  |  i2  |  i3  |  i4  |      |  iN  |
     +------+------+------+------+------+------+--...-+------+

长度N表示座席信息字段中的八位字节总数。座席信息字段由每个子选项的SubOpt/Length/Value元组序列组成,编码方式如下:

代码语言:javascript
复制
      SubOpt  Len     Sub-option Value
     +------+------+------+------+------+------+--...-+------+
     |  1   |   N  |  s1  |  s2  |  s3  |  s4  |      |  sN  |
     +------+------+------+------+------+------+--...-+------+
      SubOpt  Len     Sub-option Value
     +------+------+------+------+------+------+--...-+------+
     |  2   |   N  |  i1  |  i2  |  i3  |  i4  |      |  iN  |
     +------+------+------+------+------+------+--...-+------+

Scapy并不使用子选项,因此您需要以十六进制格式提供完整的Option82字段,包括字段长度等。例如,请考虑对代码进行以下修改,以生成Option82的正确长度:

代码语言:javascript
复制
...
option82 = "\x01\x01\x05\x02\x06\x11\x22\x34\x44\x55\x66"
dhcp = DHCP(options=[("message-type","discover")])/DHCP(options=[("relay_agent_Information", option82), "end"])
...

在这种特定情况下,DHCP选项82是\x01\x01\x05\x02\x06\x11\x22\x34\x44\x55\x66。这里是Circuit ID = 05Remote ID = 112233445566。对应的Wireshark转储如下:

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

https://stackoverflow.com/questions/28301914

复制
相关文章

相似问题

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