dhcp-动态主机管理协议

dhcp 产生背景以及作用

在网络中,每台计算机为了实现互相通信,都需要配置ip 地址,当网络中只有少数几台计算机时,只需要通过手动的方式为每台计算机配置IP地址。但如果网络中有成百上千台计算机,显然用手工方式为每一台计算机配置IP地址,会有很高的管理成本,通过dhcp, 动态为主机分配ip 地址,解决了时间和成本;

dhcp 简介

  • dhcp(Dynamic Host Configuration Protocol,动态主机配置
    协议)是一个局域网的网络协议,使用udp协议工作;
  • 通过dhcp服务,dhcp服务器可以为网络中安装了dhcp客户端
    程序的计算机自动分配IP地址和其他相关配置(dns,网关等),
    而不需要管理员对每个主机进行逐一配置;

dhcp 特点

优点

  • 减少配置和管理的工作量,便于管理,提高效率;
  • 客户端采用租借的方式获取ip,节约ip 地址;

缺点

  • dhcp 服务配置错误或出现故障,特别是当网络中只有一台
    dhcp服务器时,就会导致网络中所有dhcp客户端无法正常获取
    ip地址,影响网络通信;

dhcp功能

  • 通过ip地址与mac地址绑定,实现ip地址的固定分配;
  • 可以自动配置客户端的dns服务器和默认网关;
  • 利用ip地址排除功能,使静态分配给其他主机的IP地址不再分配给另外的dhcp客户端;
  • 划分作用域,网络管理员事先配置好分配的ip 地址段,将这些ip 地址段的ip 地址分配给主机;

dhcp 报文格式

image.png

dhcp报文中各个字段的含义

  • hlen (hardware length):表示硬件地址长度,以太网的值为6;
  • hops:表示当前的dhcp报文经过的dhcp中继的数目。该字段由客户端或服务器设置为0,每经过一个dhcp中继时,该字段加1。此字段的作用是限制dhcp报文所经过的dhcp中继数目。服务器和客户端之间的dhcp中继数目不能超过16个,也就是Hops值不能大于16,否则dhcp报文将被丢弃;
  • xid:表示dhcp客户端选取的随机数,使dhcp服务器的回复与dhcp客户端的报文相关联;
  • secs (seconds):表示客户端从开始获取地址或地址续租更新后所用的时间,单位是秒;
  • flags:表示标志字段。只有标志字段的最高位才有意义,其余的15位均被置为0。最高位被解释为单播或者广播响应标志位,0:客户端请求服务器以单播形式发送响应报文1:客户端请求服务器以广播形式发送响应报文;
  • ciaddr (client ip address):表示客户端的IP地址。可以是服务器分配给客户端的IP地址或者客户端已有的IP地址。客户端在初始化状态时没有IP地址,此字段为0.0.0.0。IP地址0.0.0.0仅在采用dhcp方式的系统启动时允许本主机利用它进行临时的通信,不是有效目的地址;
  • yiaddr (your client ip address):表示服务器分配给客户端的IP地址。当服务器进行dhcp响应时,将分配给客户端的IP地址填入此字段;
    -siaddr (server ip address):dhcp客户端获得启动配置信息的服务器的IP地址;
    -giaddr(gateway ip address):表示第一个dhcp中继的IP地址。当客户端发出dhcp请求时,如果服务器和客户端不在同一个网段,那么第一个dhcp中继在将dhcp请求报文转发给dhcp服务器时,会把自己的IP地址填入此字段,dhcp服务器会根据此字段来判断出客户端所在的网段地址,从而选择合适的地址池,为客户端分配该网段的IP地址。服务器还会根据此地址将响应报文发送给此dhcp中继,再由dhcp中继将此报文转发给客户端。
    若在到达dhcp服务器前经过了多个dhcp中继,该字段作为客户端所在的网段的标记,填充了第一个dhcp中继的IP地址后不会再变更,只是每经过一个dhcp中继,hops字段的数值会加1;
    -chaddr (client hardware address):表示客户端的MAC地址;
    -sname (server host name):表示客户端获取配置信息的服务器名字;
  • file (file name):表示客户端需要获取的启动配置文件名;
  • options:表示dhcp的选项字段,用来存放分配给dhcp客户端的控制信息和参数;

options 选项报文格式

image.png

options 字段说明

  • 1 设置子网掩码选项;
  • 3 设置网关地址选项;
  • 6 设置dns服务器地址选项;
  • 12 设置dhcp客户端的主机名选项;
  • 15 设置域名后缀选项;
  • 33 设置静态路由选项;
  • 44 设置NetBios服务器选项;
  • 46 设置NetBios节点类型选项;
  • 50 设置请求IP地址选项;
  • 51设置IP地址租约时间选项;
  • 52 设置Option附加选项;
  • 53设置dhcp消息类型;
  • 54设置服务器标识;
  • 55设置请求选项列表;客户端利用该选项指明需要从服务器获取哪些网络配置参数;该选项内容为客户端请求的参数对应的选项值;
  • 58设置续约T1时间,一般是租期时间的50%;
  • 59设置续约T2时间;一般是租期时间的87.5%;
  • 60设置厂商分类信息选项,用于标识dhcp客户端的类型和配置;
  • 61设置客户端标识选项;
  • 66设置TFTP服务器名选项,用来指定为客户端分配的TFTP服务器的域名;
  • 67设置启动文件名选项,用来指定为客户端分配的启动文件名;
  • 77设置用户类型标识;
  • 120 设置SIP服务器IP地址选项;说明:当前仅支持解析IP地址,不支持解析域名;
  • 121设置无分类路由选项;该选项中包含一组无分类静态路由(即目的地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由;

工作原理

网络拓扑

31.jpg

配置

AR2:
[Huawei]dhcp enable (开启dhcp功能)
[Huawei]interface GigabitEthernet 0/0/0 (进入 接口0/0/0 视图下)
[Huawei-GigabitEthernet0/0/0]ip address 192.168.10.10 24(配置接口地址)
[Huawei-GigabitEthernet0/0/0]dhcp select interface(开启接口采用接口地址池的dhcp服务器功能,分配的ip 地址属于192.168.10.0/24 子网下)
[Huawei-GigabitEthernet0/0/0]dhcp server excluded-ip-address 192.168.10.1 (排除不被分配的地址)
[Huawei-GigabitEthernet0/0/0]dhcp server excluded-ip-address 192.168.10.254(排除不被分配的地址)
[Huawei-GigabitEthernet0/0/0]dhcp server dns-list 8.8.8.8(dns配置)
[Huawei-GigabitEthernet0/0/0]dhcp server lease day 0 hour 0 minute 5(配置租期)
[Huawei-GigabitEthernet0/0/0]quit

网络抓包

  1. 在pc4 上设置启用dhcp ,分别在pc4 接口0/0/1 和AR2 接口0/0/1上进行抓包;
  2. pc4 dhcp client 发送Discovery类型报文,发送广播消息,大喊一声,请分配给我一个ip 地址;


    32.jpg
  • 源ip:0.0.0.0; 目的ip:255.255.255.255(广播形式)
  • 源mac:pc4 mac(让dhcp server 知道谁发过来),目的mac:ff:ff:ff:ff:ff:ff(广播形式)
  • dhcp 报文内容:


    33.jpg
  1. 网络内所有主机都会收到消息,只有dhcp server 会响应,根据接口所用的地址池选择一个未被使用的ip 进行响应;


    34.jpg
  • 源ip:dhcp server ip (192.168.10.10) ,目的ip:分配的ip(192.168.10.253);
  • 源mac:dhcp server mac; 目的mac:pc4 mac;
  • dhcp 报文:


    35.jpg
  1. 客户端此时请求dhcp server,说: 我想用你给我分配的这个ip 地址,因为网络中会存在多个dhcp server,在第一步时都会给客户端分配ip 地址,而dhcp客户端一般只接收第一个收到的dhcp Offer报文,并且还要让其他dhcp server 也知道(我当前分配的ip dhcp client没采用,下次可以另外分给其他的dhcp client了),所以,此时的request的广播消息是必须发出的,源ip 是0.0.0.0;


    36.jpg
  • dhcp 报文:


    37.jpg
  1. 当192.168.10.10 dhcp-server 收到后,它就知道了,有人要使用我分配的ip,我需要进行确认一下,让人家放心去用;


    38.jpg
  • dhcp 报文:


    39.jpg

dhcp 中继

中继解决的问题

  • 由于在ip地址动态获取过程中采用广播方式发送请求报文,因此dhcp只适用于dhcp客户端和服务器处于同一个子网内的情况。为进行动态主机配置,需要在所有网段上都设置一个dhcp服务器,会浪费资源;
  • dhcp中继功能可以解决这个问题,每个子网的客户端可以通过dhcp中继与其他网段的服务器通信,最终获取到ip地址。这样,多个网络上的dhcp客户端可以使用同一个dhcp服务器,既节省了成本,又便于进行集中管理;

中继实验

在上述实验中增加一台路由器实现客户端跟dhcp 服务器不在同一网络下的通过中继转发功能;

40.jpg

配置

AR3 配置
[Huawei]dhcp enable
[Huawei-GigabitEthernet0/0/0]ip address 192.168.10.10 24
[Huawei]IP pool 192-168-20 (创建全局地址池,当前dhcp-client 和dhcp-server在不同网段,所以要使用全局地址池功能,基于接口的地址池不能生效)
[Huawei-ip-pool-192-168-20]network 192.168.20.0 mask 24(全局地址池中配置给dhcp-client 分配的地址网段)
[Huawei-GigabitEthernet0/0/0]dhcp select global (选用全局地址池进行分配)
[Huawei]ip route-static 192.168.20.0 24 192.168.10.11(路由配置)
AR2 配置:
[Huawei]dhcp enable
[Huawei-GigabitEthernet0/0/0]ip address 192.168.20.10 24
[Huawei-GigabitEthernet0/0/0]dhcp select relay (开启中继功能)
[Huawei-GigabitEthernet0/0/0]dhcp relay server-ip 192.168.10.10(配置中继转发的dhcp-server)
[Huawei-GigabitEthernet0/0/1]ip address 192.168.10.11 24

流程

1.dhcp-client 首先发送广播消息,交换机进行转发到AR2 中继;


41.jpg

2.AR2中继根据配置的dhcp-server 地址, 对报文重新封装成单播的,发给dhcp-server,源ip: 192.168.20.10, 目的ip:192.168.10.10;


42.jpg
  1. 剩余的流程跟未配置中继类似,只是多了中继的一个转发步骤;
  • 中继与dhcp-server 之间:


    43.jpg
  • dhcp-client 与中继之间:


    44.jpg

ip 续期

使用dhcp 协议分配的ip 只是临时的,过一段时间会失效,如果还想继续使用的话,就得续期;dhcp-client会在租期过去 50% 的时候,直接向为其提供ip地址的 dhcp-server 发送 dhcp request 消息包。客户机接收到该服务器回应的 dhcp ack 消息包,会根据包中所提供的新的租期以及其他已经更新的 tcp/ip参数,更新自己的配置;

dhcp 总流程图

45.jpg
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容