155 lines
4.6 KiB
Markdown
155 lines
4.6 KiB
Markdown
---
|
||
title: DHCP
|
||
categories:
|
||
- Linux服务
|
||
tags:
|
||
- DHCP
|
||
- Linux
|
||
date: 2021-03-27 21:55:45
|
||
---
|
||
# DHCP
|
||
|
||
## 定义
|
||
|
||
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是一个工作在应用层的局域网网络协议!!!,数据传输时使用UDP不可靠传输协议工作,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配网络资源,使网络环境中的主机能动态的获得IP地址、Gateway 地址、DNS服务器地址等信息,并能够提升地址的使用率。
|
||
|
||
## DHCP工作原理
|
||
|
||

|
||
|
||
1、DHCP客户端进行IP请求
|
||
|
||
DHCP客户机启动时,没有ip,便会使用0.0.0.0作为源ip,携带自己的mac地址,使用255.255.255.255(广播地址)作为目标地址,通过UDP67端口发送广播报文,也就是DHCP Discover报文。(没开UDP67端口的主机无法接受报文,节省主机资源开销)
|
||
|
||
2、DHCP服务器响应请求
|
||
|
||
当DHCP服务器收到客户及请求ip地址的信息时,查看ip地址池,找一个ip写入到DHCP OFFER的消息中,然后DHCP使用自己的IP地址作为源地址,使用255.255.255.255作为目标地址,使用UDP68端口作为源端口来广播DHCP OFFER
|
||
|
||
DHCP OFFER的报文内容
|
||
|
||
```shell
|
||
DHCP客户机的MAC地址;
|
||
DHICP服务器提供的合法IP地址;
|
||
子网掩码;默认网关(路由);
|
||
租约的期限;
|
||
DHCP服务器的IP地址-MAC。
|
||
```
|
||
|
||
3、DHCP客户机选择IP
|
||
|
||
DHCP客户端从接收到的第一个DHCP OFFER消息中选择一个IP地址,客户机将DHCP REQUEST消息广播到所有的DHCP服务器,表明它接受提供的内容
|
||
|
||
4、DHCP服务器确认租约
|
||
|
||
DHCP服务器接收到DHCP REQUEST消息后,以DHCPACK消息的形式向客户机广播成功的确认,当客户机收到DHCP ACK消息时,它就配置了IP地址,完成了TCP/IP的初始化。
|
||
|
||
5、DHCP客户机续租
|
||
|
||

|
||
|
||
DHCP客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP服务器发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。
|
||
|
||
如果在租期过去50%的时候没有更新,则DHCP客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP那器联系。如果还不成功,到租约的100%时候,DHCP客户机必须放弃这个IP地址,重新申请。如果此时无DHCP服务器用,DHCP客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。
|
||
|
||
## DHCP服务搭建
|
||
|
||
### DHCP软件信息
|
||
|
||
软件名:dhcp(DHCP服务软件包) dhcp-comm(DHCP命令软件包)
|
||
|
||
服务名:dhcpd(DHCP服务名)dhcrelay(DHCP中继服务名)
|
||
|
||
端口号:udp 67(客户端目标端口)udp 68(服务器源端口)
|
||
|
||
配置文件:
|
||
|
||
```
|
||
dhcpd服务的配置文件:/etc/dhcp/dhcpd.conf
|
||
dhcpd.conf.sample dhcp的模板配置文件:/usr/share/doc/dhcp-4.*.*/dhcpd.conf.sample
|
||
dhcrelay dhcp中继的配置文件:/etc/sysconfig/dhcrelay
|
||
```
|
||
|
||
### DHCP配置文件详解
|
||
|
||
```shell
|
||
subnet 192.168.133.0 netmask 255.255.255.0 {
|
||
#声明要分配的网段和子网掩码
|
||
range 192.168.133.3 192.168.133.254;
|
||
#声明可用IP地址池
|
||
option domain-name "lzcwy.com" ;
|
||
#设置DNS域
|
||
option domain-name-servers 8.8.8.8 ;
|
||
#设置DNS服务器地址
|
||
option routers 192.168.133.2;
|
||
#默认网关的地址
|
||
option broadcast-address 192.168.133.255;
|
||
#广播地址(可不写)
|
||
default-lease-time 600;
|
||
#默认租约(s)
|
||
max-lease-time 7200;
|
||
#最大租约(s)
|
||
|
||
```
|
||
|
||
### DHCP部署
|
||
|
||
将DHCP配置文件模板覆盖配置文件
|
||
|
||
```shell
|
||
cp -a /usr/share/doc/dhcp-4.*.*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
|
||
```
|
||
|
||
修改配置文件
|
||
|
||
```shell
|
||
vim /etc/dhcp/dhcpd.conf
|
||
```
|
||
|
||
重启服务
|
||
|
||
```shell
|
||
systemctl restart dhcpd
|
||
```
|
||
|
||
重启客户机网卡
|
||
|
||
```
|
||
ifdown/ifup
|
||
```
|
||
|
||
### 配置静态ip
|
||
|
||
1、通过arp -a 查看客户端的ip地址
|
||
|
||
2、修改/etc/dhcp/dhcpd.conf文件
|
||
|
||
```shell
|
||
host fantasia {
|
||
hardware ethernet mac地址; #客户机的mac地址
|
||
fixed-address IP地址; #分配给客户机的静态ip地址
|
||
}
|
||
```
|
||
|
||
3、重启DHCP服务
|
||
|
||
```shell
|
||
systemctl restart dhcpd
|
||
```
|
||
|
||
4、重启客户机网卡,验证IP获取是否成功
|
||
|
||
```shell
|
||
ifdown/ifup
|
||
```
|
||
|
||
### 配置DHCP超级作用域
|
||
|
||
待补充——我菜啊
|
||
|
||
### 配置DHCP中继
|
||
|
||
待补充——我菜啊
|
||
|
||
|
||
|