DHCP协议

  • 简介

DHCP:(Dynamic Host Configuration Protocol)动态主机配置协议,主要为了让一台电脑插入网线就实现上网的效果,而一台电脑需要上网需要配置一些信息,而DDHCP报文的定义就是为了拿到这些配置信息。包括:

  1. IP地址
  2. 子网掩码
  3. 默认路由的IP地址
  4. 域名服务器的IP地址
  • DHCP在客户服务端的交互流程

  • client--->server:

需要IP地址的主机A,广播发送DHCPDISCOVER报文(源地址为0.0.0.0【因为这个时候client还没有ip地址】,目的地址为255.255.255.255【广播】),用来发现DHCP服务器的IP地址。 

  • server--->client:
  1. 本地网络的所有主机都可以收到DHCPDISCOVER报文,但只有DHCP服务器会回复这个报文
  2. DHCP服务器收到报文后,查找该计算机的配置信息,能找到返回给主机A。【注:一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。该地不可撤销这种分配方式叫:静态分配
  3. 找不到该主机A的配置信息,从IP地址池(address pool)中去一个IP地址分配给主机A,这种方式叫动态分配。
  4. 被分配到的IP地址是有时效性的,主机A可以用这个IP地址的时间称为租用期。当当租用期到期之后,客户机可以提出延长租用期的要求并续订租约,这个操作叫租用期延长
  5. 给主机A回复:这个报文叫DHCPOFFER报文,表明提供IP地址等信息
  • client:

主机A拿到IP地址等信息

  • DHCP中继代理

在DHCP服务器和客户端之间转发DHCP数据包。我们不希望再子网中提供过多的DHCP服务器,于是一个网络中至少有一个DHCP中继代理(通常是路由器)。

  • 主机A发出DHCPDISCOVER的广播报文---->路由器收到----->路由器以单播的方式向DHCP服务器转发这个报文--->路由器收到DHCP服务器的反馈报文---->路由器发给主机A
  •  DHCP的详细工作流程

  1.  DHCP服务端被动打开UDP 的 67端口
  2. DHCP客户端从68的UDP端口发送DHCPDISCOVER报文
  3. DHCP客户端收到服务端的DHCPOFFER报文(可能会有几个)
  4. DHCP客户端从中选一个DHCPOFFER报文,并发出DHCPREQUEST报文【更新租约期】
  5. DHCP服务器回复DHCPACK报文,或者DHCPNACK报文
  6. DHCP客户端发出DHCPRELEASE报文【客户端停止服务器提供的租用期,发送此报文】
  • 抓包

  • 在linux上,dhcp客户端申请一个ip地址:udhcpc命令

root@pc123:/# ifconfig eth0 up
root@pc123:/# udhcpc -i eth0
udhcpc: started, v1.32.0
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending select for 192.168.1.152
udhcpc: lease of 192.168.1.152 obtained, lease time 86400
/etc/udhcpc.d/50default: Adding DNS 192.168.1.1
root@pc123:/#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值