免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8509 | 回复: 11
打印 上一主题 下一主题

问个DHCP问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-07 11:03 |只看该作者 |倒序浏览
一个客户端用DHCP CLIENT 从DHCP SERVER那里拿IP,标准流程如下(用ubuntu 下dhcpdump抓包):
1)DHCP-DISCOVER
TIME: 2011-04-07 09:43:43.422
    IP: 0.0.0.0 (c8:a:a9:9e:14:a5) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 3a8471d5
  SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: c8:0a:a9:9e:14:a5:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  61 (  7) Client-identifier         01:c8:0a:a9:9e:14:a5
OPTION:  60 ( 12) Vendor class identifier   udhcp 1.13.3
OPTION:  57 (  2) Maximum DHCP message size 576
OPTION:  55 (  7) Parameter Request List      1 (Subnet mask)
                                              3 (Routers)
                                              6 (DNS server)
                                             12 (Host name)
                                             15 (Domainname)
                                             28 (Broadcast address)
                                             42 (NTP servers)
                                            
---------------------------------------------------------------------------

2)DHCP-OFFER
  TIME: 2011-04-07 09:43:43.422
    IP: 10.10.50.10 (0:13:72:4e:2a: > 10.10.50.243 (c8:a:a9:9e:14:a5)
    OP: 2 (BOOTPREPLY)
HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 3a8471d5
  SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 10.10.50.243
SIADDR: 10.10.50.10
GIADDR: 0.0.0.0
CHADDR: c8:0a:a9:9e:14:a5:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION:  53 (  1) DHCP message type         2 (DHCPOFFER)
OPTION:  54 (  4) Server identifier         10.10.50.10
OPTION:  51 (  4) IP address leasetime      86400 (24h)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:   3 (  4) Routers                   10.10.50.1
OPTION:   6 (   DNS server                10.10.50.10,10.10.50.11
---------------------------------------------------------------------------

3)DHCP-REQUEST
  TIME: 2011-04-07 09:43:43.445
    IP: 0.0.0.0 (c8:a:a9:9e:14:a5) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 3a8471d5
  SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: c8:0a:a9:9e:14:a5:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION:  53 (  1) DHCP message type         3 (DHCPREQUEST)
OPTION:  61 (  7) Client-identifier         01:c8:0a:a9:9e:14:a5
OPTION:  60 ( 12) Vendor class identifier   udhcp 1.13.3
OPTION:  50 (  4) Request IP address        10.10.50.243
OPTION:  54 (  4) Server identifier         10.10.50.10
OPTION:  55 (  7) Parameter Request List      1 (Subnet mask)
                                              3 (Routers)
                                              6 (DNS server)
                                             12 (Host name)
                                             15 (Domainname)
                                             28 (Broadcast address)
                                             42 (NTP servers)
                                            
---------------------------------------------------------------------------

4)DHCP-ACK
  TIME: 2011-04-07 09:43:43.446
    IP: 10.10.50.10 (0:13:72:4e:2a: > 10.10.50.243 (c8:a:a9:9e:14:a5)
    OP: 2 (BOOTPREPLY)
HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 3a8471d5
  SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 10.10.50.243
SIADDR: 10.10.50.10
GIADDR: 0.0.0.0
CHADDR: c8:0a:a9:9e:14:a5:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION:  53 (  1) DHCP message type         5 (DHCPACK)
OPTION:  54 (  4) Server identifier         10.10.50.10
OPTION:  51 (  4) IP address leasetime      86400 (24h)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:   3 (  4) Routers                   10.10.50.1
OPTION:   6 (   DNS server                10.10.50.10,10.10.50.11
---------------------------------------------------------------------------

我的疑问:
第2)步,DHCP CLIENT尚未分配IP,为何DHCP-OFFER报文的目的地址却已经是10.10.50.243?
这样DHCP CLIENT会怎么处理这个DHCP-OFFER报文?

很疑惑,求解答。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
2 [报告]
发表于 2011-04-07 15:29 |只看该作者
IP: 10.10.50.10 (0:13:72:4e:2a: > 10.10.50.243 (c8:a:a9:9e:14:a5)

不会吧。此时应该是广播报文啊。.pcap上来看看。

论坛徽章:
0
3 [报告]
发表于 2011-04-08 09:23 |只看该作者
回复 2# ssffzz1


附件,rar格式的,解压就是,客户端是busybox中带的udhcpc:
    dhcp.rar (352 Bytes, 下载次数: 47)

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
4 [报告]
发表于 2011-04-08 10:15 |只看该作者
你看一下是续租约还是首次获取地址。我抓取的首次获取地址的是广播的。后续续租约的不一定是。

论坛徽章:
0
5 [报告]
发表于 2011-04-10 10:22 |只看该作者
回复 4# ssffzz1

上面抓包是首次获取IP的。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
6 [报告]
发表于 2011-04-10 11:19 |只看该作者
这就奇怪了。DHCP服务器是什么系统的??

论坛徽章:
0
7 [报告]
发表于 2011-04-11 14:57 |只看该作者
回复 6# ssffzz1


ISC DHCPD。
Linux下用的基本都是这个,不过客户端用的是udhcpc,是我嵌入式盒子上的,经过抓包发现,dhcp client的实现差异挺大的。

论坛徽章:
0
8 [报告]
发表于 2011-04-14 23:33 |只看该作者
回复 6# ssffzz1


DHCP Server发送给客户端的offer与ack可以是单播,也可以是广播,取决于客户端DHCP discover bootp flags字段是单播还是广播。
操作系统不同,行为不同,windows xp系统默认flags字段是单播,而Vista与win7则是广播。

至于DHCP offers或者ack采用单播或者是广播,取决于客户端DHCP Discover以及request的bootp flags字段:0为单播,1为广播。
见rfc2131: A client that cannot receive unicast IP datagrams until its protocol software has been configured with an IP address SHOULD set the BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER or DHCPREQUEST messages that client sends.
对于协议栈因为没有配置IP而不能够接收单播报文的客户机,所发送的DHCP discover以及DHCP request包中的bootp标志位应设置为“1”,即请求服务器所发送offers以及ack采用广播的方式。

论坛徽章:
0
9 [报告]
发表于 2011-04-14 23:35 |只看该作者

论坛徽章:
0
10 [报告]
发表于 2011-04-15 12:35 |只看该作者
哈哈,一直疑惑的问题终于明白了
看来数据包各个字段都要明白了,不能马马虎虎的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP