免费注册 查看新帖 |

Chinaunix

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

借C/C++宝地一问,别的版没这个活跃,DHCP问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-07 11:32 |只看该作者 |倒序浏览
一个客户端用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报文?

很疑惑,求解答。

论坛徽章:
0
2 [报告]
发表于 2011-04-07 11:43 |只看该作者
有不一定在 DHCP-OFFER 用吧?
只是告诉DHCP客户端可以使用这个IP地址 我想应该是这样子的

论坛徽章:
0
3 [报告]
发表于 2011-04-07 11:46 |只看该作者
在 DHCP-ACK 时 已经使用这个IP地址了

论坛徽章:
0
4 [报告]
发表于 2011-04-07 12:18 |只看该作者
回复 2# beyonder2015


对于DHCP CLIENT的网络接口eth0来说,尚未分配IP, 这样一个DHCP-OFFER报文又是如何经过eth0,传输到DHCP CLIENT客户端的,这个报文肯定要传到用户空间处理的?
我的疑问是为什么没丢弃?毕竟没IP啊。

论坛徽章:
0
5 [报告]
发表于 2011-04-07 12:48 |只看该作者
应该和广播包类似吧,在传输层经过68端口后,交付给应用层的DHCP相关协议处理的肯定。

论坛徽章:
0
6 [报告]
发表于 2011-04-07 13:16 |只看该作者
回复 5# beyonder2015


    似乎可以这么理解,和一般的那种四元组socket不一样,谢谢啊。

论坛徽章:
0
7 [报告]
发表于 2011-04-07 13:53 |只看该作者
回复 6# lzueclipse

请问楼主兄弟用的什么抓包软件,共享下啊

论坛徽章:
0
8 [报告]
发表于 2011-04-07 14:30 |只看该作者
回复 7# beyonder2015


    ubuntu下:apt-get install dhcpdump
呵呵,估计是基于tcpdump做的二次开发,只能搞dhcp包。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP