DHCP 原理详解

本文详细介绍了DHCP协议的工作原理,包括其主要用途、八种报文类型、续租过程、同网段多DHCP服务处理、跨网段配置及工作流程。此外,还阐述了DHCP在Linux环境下的实现,包括服务器和客户端配置,以及如何通过配置文件绑定MAC地址与IP。最后,讨论了常见错误及其解决方案。
摘要由CSDN通过智能技术生成

DHCP 相关概念介绍

1、网络配置

  • 静态指定

  • 动态获取

    bootp    # boot protocol (MACIP一一静态对应)
    dhcp     # 增强的bootp,动态
    

2、DHCP(Dynamic Host Configuration Protocol)

  • 动态主机配置协议
  • 局域网协议,UDP协议(server:67 / client:68)

3、主要用途

  • 用于内部网络和网络服务供应商自动分配IP地址给用户
  • 用于内部网络管理员作为对所有电脑作集中管理的手段

4、使用场景

  • 自动化安装系统
  • 解决IPV4资源不足问题

5、DHCP 八种报文

  1. DHCP DISCOVER:客户端到服务器
  2. DHCP OFFER :服务器到客户端
  3. DHCP REQUEST:客户端到服务器
  4. DHCP ACK :服务器到客户端
  5. DHCP NAK:服务器到客户端,通知用户无法分配合适的IP地址
  6. DHCP DECLINE :客户端到服务器,指示地址已被使用
  7. DHCP RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间
  8. DHCP INFORM:客户端到服务器, 客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,极少用到

6、续租

  1. 50% :租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST请求(单播)。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
  2. 87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求

7、同网段多DHCP服务

  1. DHCP服务必须基于本地
  2. 先到先得的原则

8、跨网段

  1. RFC 1542 Compliant Routers
  2. dhcrelay: 中继

9、相关协议

  1. arp
  2. rarp

10、DHCP 工作流程

在这里插入图片描述

10.1 地址申请

  1. Client — dhcp discover
  2. Server — dhcp offer (IP/mask gw dns)
  3. Client — dhcp request
  4. Server — dhcp ack

10.2 地址续租

  • dhcp request(单播)

  • dhcp ack

  • dhcp request(单播)

  • dhcp nck

  • dhcp discover(无法获取到新地址时,会再次广播进行地址申请)

DHCP 的实现

1、实现方式

Linux DHCP协议的实现程序:

  1. dhcp
  2. dnsmasq(dhcp,dns)

2、DHCP Server

/usr/sbin/dhcpd
	/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
	/etc/dhcp/dhcpd6.conf--> /etc/rc.d/init.d/dhcpd6
/usr/sbin/dhcrelay
	/etc/rc.d/init.d/dhcrelay
	
dhcp server:67/udp
dhcp client: 68/udp
dhcpv6 client:546/udp

3、DHCP Client

dhclient:自动获取的IP信息: /var/lib/dhclient
[root@T-Neo ~]# dhclient -d                    # -d 表示 运行于前台
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/ens38/00:0c:29:4a:0e:dd
Sending on   LPF/ens38/00:0c:29:4a:0e:dd
Listening on LPF/ens37/00:0c:29:4a:0e:d3
Sending on   LPF/ens37/00:0c:29:4a:0e:d3
Listening on LPF/ens33/00:0c:29:4a:0e:c9
Sending on   LPF/ens33/00:0c:29:4a:0e:c9
Sending on   Socket/fallback
DHCPREQUEST on ens38 to 255.255.255.255 port 67 (xid=0x5fb23cbb)
DHCPREQUEST on ens37 to 255.255.255.255 port 67 (xid=0x2e267e1d)
DHCPREQUEST on ens33 to 255.255.255.255 port 67 (xid=0x59a91ab1)
DHCPACK from 192.168.10.254 (xid=0x2e267e1d)
bound to 192.168.10.20 -- renewal in 744 seconds.
DHCPNAK from 192.168.200.10 (xid=0x5fb23cbb)
DHCPDISCOVER on ens38 to 255.255.255.255 port 67 interval 8 (xid=0x196ffb67)
DHCPACK from 192.168.1.1 (xid=0x59a91ab1)
bound to 192.168.1.10 -- renewal in 39975 seconds.
DHCPREQUEST on ens38 to 255.255.255.255 port 67 (xid=0x196ffb67)
DHCPOFFER from 192.168.200.10
DHCPACK from 192.168.200.10 (xid=0x196ffb67)
bound to 192.168.200.25 -- renewal in 19914 seconds.

4.3 dhcpd.conf 示例

option domain-name "magedu.com";
option domain-name-servers 192.168.0.1,8.8.8.8;
default-lease-time 86400;
max-lease-time 86400;
subnet 192.168.100.0 netmask 255.255.255.0 {
   
	range 192.168.100.1 192.168.100.200;
	option routers 192.168.100.1;
}

4、DHCP 配置文件

4.1 dhcpd.conf

帮助参考:man 5 dhcpd.conf
全局配置
subnet {
   
...
}
host {
   
}
其它配置选项:
	filename: 指明引导文件名称
	next-server:提供引导文件的服务器IP地址
示例:
	filename "pxelinux.0";
	next-server 192.168.100.100;
检查语法
	service dhcpd configtest

4.2 地址分配记录

# /var/lib/dhcpd/dhcpd.leases

DHCP 示例

1、DHCP 安装

[root@Tang-Neo ~]# yum install dhcp -y
[</
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值