原文:http://blog.51cto.com/liwenhui/105129

1、环境搭建:
     DC&DHCP SERVER
     IP:192.168.1.254 ( 这是一台DC兼DHCP服务器,设静态IP )
     Mask:255.255.255.0
     DG:192.168.1.7(DHCP中继代理“本地连接”的IP)
     作用域 (IP地址范围) : 192.168.2.1~192.168.2.254(在此仅为2.0网段做DHCP)
     作用域选项:“003路由器”---添加IP:192.168.1.7,这是为所有2.0网段的客户机添加默认网关;“006DNS服务器”---添加IP:192.168.1.254,这是客户机的首选DNS服务器,因为要加入域。
     添加排除:192.168.1.7~192.168.1.8(排除DHCP中继代理“本地连接2”的IP地址)
     DHCP中继代理(用一台双网卡的windows2003机器做中继代理)
     本地连接
     IP:192.168.1.7(static)
     Mask:255.255.255.0
    本地连接2
     IP:192.168.2.7 (satic)
     Mask:255.255.255.0 
   DHCP CLIENT
   设置IP地址自动获取,若在工作组的状态,加入域前必须先获得IP地址和DNS等信息。
       
2、起路由:管理工具---路由和远程访问---VPC2---配置并启用路由和远程访问---自定义配置,下一步---LAN路由,下一步---要开始服务吗?是。
     开中继:打开管理工具---路由和远程访问---VPC2(本地)---IP路由选择下面的“常规”---新增路由协议---选择“DHCP中继代理程序”,确定;
     指定服务:右键单击“DHCP中继代理程序”----属性----添加DHCP服务器地址:192.168.1.254----点“确定”,定位到DHCP服务器;
     指定接口:右键单击“DHCP中继代理程序”----“新增接口”--选择“本地连接2”,使该路由协议在“本地连接2”这个接口上运行。

3、在DHCP中继代理上抓包并分析DHCP实现的过程:
在客户机上执行ipconfig /release、ipconfig/renew后,在DHCP中继代理“本地连接2”上抓包(图1):

在 客户机上执行ipconfig /release、ipconfig/renew后,在DHCP中继代理“本地连接”上抓包(图2):

看图说话(注意,由于图 1和图2并不是同时抓取生成,所以两图的time项没有直接联系):
图1NO.1:由于客户机此时没有IP地址,所以执行ipconfig /renew后它发出一个DHCP Discover广播包以请求IP地址,该包包括源地址(客户机)0.0.0.0,目标地址255.255.255.255,客户机的MAC地址和计算机名;
图2NO.1:DHCP中继代理与客户机相连的本地连接2接口收到客户机的DHCP Discovery广播包后,直接转发给DHCP服务器(源地址192.168.2.7,目标地址192.168.1.254),为什么?因为我们在“DHCP中继代理程序”里给“本地连接2”配置了路由协议。
图2NO.2:DHCP服务器收到192.168.2.7转发过来的IP请求后,给本地连接2做出DHCP Offer应答,所以图2NO.2中的Source(源地址)变成了192.168.1.254,Destination(目标地址)变成192.168.2.7;
图2NO.3:192.168.2.7(本地接口2)转发DHCP Offer广播包,因为是广播,所以,在客户机收到的同时,本地连接也同样收到,为什么本地连接无法直接收到客户机发送的图1NO.1广播包?很简单,我们的DHCP中继代理是一个路由器,本地连接和本地连接2属于不同的广播域;
图1NO.2:第一个Discovery包广播出去后没有及时得到回应(实际上192.168.2.7正在帮它转发,也就是图2NO.1和NO.2的过程),所以它不甘心的发出了第二个。
图1NO.3:同图2NO.3,不再废话;
图1NO.4:客户机收到192.168.2.7(本地接口2)转发DHCP Offer广播包选择IP地址后做出DHCP Request回应,同样采取广播的形式;
图2NO.4:192.168.2.7(本地接口2)替客户机转发转发DHCP Request广播包,目标192.168.1.254;
图2NO.5:DHCP服务器收到DHCP Request包后确认IP租约,以DHCP ACK消息的形式发送给192.168.2.7,由本地连接2广播给客户机(因为此时客户机还是没有IP地址),图2NO.6和图1NO.5就是便是这个广播,客户机收到该包后,将配置IP地址,完成TCP/IP的初始化,从而可以在TCP/IP网络上通讯了。
       有意思的是,IP为192.168.1.7的本地连接似乎从头到尾都没参与这个过程,它看着数据从它面前匆忙的来回流动却不能参与其中,从图1图2中,我们看不到它的影子。其实,如果没有它的存在,也就是说,本地连接没有IP,所有的一切都将不可能实现。也许这也是一个网络管理员在公司所处位置真实的写照吧。

DHCP服务器的搭建及抓包分析DHCP的实现的更多相关文章

  1. http2 技术整理 nginx 搭建 http2 wireshark 抓包分析 server push 服务端推送

    使用 nginx 搭建一个 http2 的站点,准备所需: 1,域名 .com .net 均可(国内域名需要 icp 备案) 2,云主机一个,可以自由的安装配置软件的服务器 3,https 证书 ht ...

  2. 计算机网络-DHCP协议抓包分析总结

    前置问题:什么是(网络)协议? 网络协议为计算机网络中进行数据交换而建立的规则.标准或约定的集合. 而且: 一个网络协议至少包括三要素: 语法:用来规定信息格式;数据及控制信息的格式.编码及信号电平等 ...

  3. dhcp协议抓包分析

    dhcp协议 DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client). wires ...

  4. 抓包分析SSL/TLS连接建立过程【总结】

    1.前言 最近在倒腾SSL方面的项目,之前只是虽然对SSL了解过,但是不够深入,正好有机会,认真学习一下.开始了解SSL的是从https开始的,自从百度支持https以后,如今全站https的趋势越来 ...

  5. Http实战之Wireshark抓包分析

    Http实战之Wireshark抓包分析 Http相关的文章网上一搜一大把,所以笔者这一系列的文章不会只陈述一些概念,更多的是通过实战(抓包+代码实现)的方式来跟大家讨论Http协议中的各种细节,帮助 ...

  6. Wireshark抓包分析/TCP/Http/Https及代理IP的识别

    前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...

  7. HTTP2特性预览和抓包分析

    背景 近年来,http网络请求量日益添加,以下是httparchive统计,从2012-11-01到2016-09-01的请求数量和传输大小的趋势图: 当前大部份客户端&服务端架构的应用程序, ...

  8. 实战录 | 基于openflow协议的抓包分析

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...

  9. 云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

    这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> S ...

随机推荐

  1. 使用redis PSUBSCRIBE实现实时任务

    PSUBSCRIBE可以监听键的过期事件 1.进行数据库的配置 notify-keyspace-events Ex 2.使用命令监听事件 psubscribe  __keyevnet@0__:expi ...

  2. 使用elasticsearch启动项目报错failed to load elasticsearch nodes 。。。。。No type specified for field [name]

    failed to load elasticsearch nodes .....No type specified for field [name]翻译: 加载ElasticSearch节点失败... ...

  3. navicat12.0.29破解操作步骤

    navicat12.0.29破解操作步骤 2018年07月11日 22:21:17 xijian0521 阅读数:1620   我的百度网盘地址: 下载点这里 以管理员身份运行 此注册机:  打开注册 ...

  4. throw 与 throws的比较

    说实话,今天在公司的实习,确确实实编号被严重打脸了,说真的,自己的基础功不扎实,希望慢慢弥补吧! 抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常,下面它们之间的异同. 一 ...

  5. 十年后,我又开始研究SEO了

    2009年的时候,我就小打小闹式地要创业了,其实就是和同学在北京阜成门开了一家特产店.但我们的想法不止在这个店,有更大的目标,目前也不便在这里展开了.反正当时我就注意到了SEO,即搜索引擎优化.通俗地 ...

  6. 前端Web浏览器基于Flash如何实时播放监控视频画面(前言)之流程介绍

    [关键字:前端浏览器如何播放RTSP流画面.前端浏览器如何播放RTMP流画面] 本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 考虑到视频延 ...

  7. Java连接MYSQL进行操作(增,删,改)

    连接数据库,并用表格输出数据 创建insex.jsp <table border="1" width="80%" align='center'> & ...

  8. visual studio 容器工具首次加载太慢 vsdbg\vs2017u5 exists, deleting 的解决方案

    ========== 正在准备容器 ========== 正在准备 Docker 容器... C:\Windows\System32\WindowsPowerShell\v1.\powershell. ...

  9. 从0系统学Android--1.2 手把手带你搭建开发环境

    要想进行程序开发,首先我们需要搭建开发环境,下面就开始搭建环境. 1.2.1 所需的工具 首先 Android 开发是基于 Java 的,因此你需要掌握简单的 Java 语法.会基础的 Java 语法 ...

  10. C#3.0新增功能10 表达式树 02 说明

    连载目录    [已更新最新开发文章,点击查看详细] 表达式树是定义代码的数据结构. 它们基于编译器用于分析代码和生成已编译输出的相同结构.表达式树和 Roslyn API 中用于生成分析器和 Cod ...