DHCP:表示Dynamic Host Configuration Protocol,其前身是bootp,DHCP基于bootp来说引入了租约的概念,当使用IP的主机关机之后,那么IP地址就会被释放,并且在租约的概念上面还引入了续租的概念实现了地址的动态管理;- 租约的续租是在使用时间接近于一半的时间时进行续租,
DHCP的报文是通过广播的方式进行的,由于路由器不转发广播报文,所以DHCP服务器应该在局域网里面进行设置; DHCP协议的流程
client ------> DHCP服务器
DHCPDISCOVR(UDP,广播)
<---------- DHCPOFFER
DHCPREQUEST ----------->
<----------- DHCPACK
上面的报文都是广播的
续租的过程是单播的
DHCPREQUEST ----------->
<----------- DHCPACK
- 前面的虽然说路由器不进行广播报文,所以
DHCP服务器不能够提供跨物理网络的地址分配请求,但是可以将路由器配置称为DHCP的中继器,单播转发跨网络的DHCP报文,在这个过程中:
- 1
.DHCP和路由器的通信是单播的,请求主机和路由器的通信是广播的; - 2.
DHCP提供的地址池,必须和IP在统一网段中; - 3.一个
DHCP主机可以包含多地址池,在DHCP服务器转发非同一个网络的请求时,会通过路由器的某个接口的MAC地址进行转发,DHCP服务器可以根据MAC的信息选择一个合适的网段的IP进行分配;
- 1
- 对于
DHCP服务器来说,大多数情况下,分配的地址对于某个特定的服务器来说是特定的,这些地址成为保留地址.保留地址不使用地址池的地址,通过MAC地址来进行识别; rhel6系列上面提供了DHCP RELAY功能,这个功能和DHCP服务器不能够同时使用规划
子网的范围是172.25.23.10–>172.25.23.100/24
默认的网关是:172.25.23.250
广播地址是:172.25.23.255
规划保留地址是:172.25.23.222配置DHCP服务器
- 先说明以下这些配置文件都是什么意思
/var/lib/dhcpd/dhcpd.leases:表示租约,用于记录哪个地址给哪个主机使用;/etc/dhcp/dhcpd.conf:DHCP的主配置文件;/usr/sbin/dhcpd:用于提供主服务的程序;/usr/sbin/dhcrelay:表示DHCP的中继功能,不能够和DHCP同时使用;/etc/dhcp/dhcpd.conf:DHCP的主配置文件;
主配置文件
/etc/dhcp/dhcpd.conf里面的语法说明:#ddns-update-style none:动态DNS的更新方式,DNS和主机名称的对应关系随着DHCP的分配而改变,这个用于DHCP通知DNS进行对应关系的更改;subnet:表示子网;routers:表示默认的网关的;domain-name-servers:表示DNS服务器的地址;range:表示地址池范围;default-lease-time:表示默认的租约时间;max-lease-time:表示最大租约时间;
用于定义保留地址的说明
host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95;
filename "vmunix.passacaglia";
server-name "toccata.fugue.com";
}
- DHCP服务器的配置
DHCP服务器的安装,这里使用rpm软件包进行安装
[root@server23 ~]# yum install dhcp -y
- 对于配置文件,默认提供的是一个空的配置文件,需要从特定位置进行复制
[root@server23 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
- 接下来需要按照规划来更改配置文件
subnet 172.25.23.0 netmask 255.255.255.0 {
range 172.25.23.10 172.25.23.100;
option routers 172.25.23.250;
option broadcast-address 172.25.23.255;
default-lease-time 600;
max-lease-time 7200;
}
- 上面的配置信息是没有包含保留地址的配置的,接下来启动
DHCPD服务
[root@server23 ~]# service dhcpd start
Starting dhcpd: [ OK ]
- 查看服务监听的端口
[root@server23 ~]# netstat -anulp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:67 0.0.0.0:* 2767/dhcpd
- 这里需要额外说明的是
DHCPD服务器监听的是UDP/67端口,而client监听的是UDP/68端口; - 接下来需要另一台虚拟机来检测服务的配置是否正常
- 首先需要更改的是
IP的获得方式,一般情况下,默认是DHCP,如果以前修改为static,现在改为DHCP; - 然后从新启动网络服务

* 接下来查看DHCP client是否打开UDP/68端口
* 也可以通过租约文件来查看IP地址的分配情况
[root@server23 ~]# cat /var/lib/dhcpd/dhcpd.leases
lease 172.25.23.10 {
starts 1 2018/04/09 11:46:09;
ends 1 2018/04/09 11:56:09;
cltt 1 2018/04/09 11:46:09;
binding state active;
next binding state free;
hardware ethernet 52:54:00:e7:89:57;
}
- 如果分配出去额地址很多,那么这个租约文件里面的内容会十分多;
- 接下来更改配置文件,使分配到
172.25.23.10的主机重新分配IP地址,得到172.25.23.222这个地址
更改配置文件如下:
subnet 172.25.23.0 netmask 255.255.255.0 {
range 172.25.23.10 172.25.23.100;
option routers 172.25.23.250;
option broadcast-address 172.25.23.255;
default-lease-time 600;
max-lease-time 7200;
host newhost {
hardware ethernet 52:54:00:e7:89:57; //这个地址需要和你需要保留的地址一致;
fixed-address 172.25.23.222;
}
}
- 接下来重新启动服务
[root@server23 ~]# service dhcpd restart
Starting dhcpd: [ OK ]
- 接下来检测是否分配到符合期望的
IP地址

本文介绍DHCP服务的工作原理及配置方法,包括租约概念、DHCP报文交互流程、跨网络地址分配请求处理机制,以及如何配置DHCP服务器提供动态IP分配服务。

8317

被折叠的 条评论
为什么被折叠?



