一、DHCP原理
1.了解DHCP服务器
1.1 什么是DHCP
- DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议,是一个应用层协议,使用UDP的67和68端口。
- DHCP的前身是BOOTP协议(BootstrapProtocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。
1.2 DHCP的作用
- 减少管理员的工作量避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
1.3 DHCP 的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管理员专门指定IP地址
- 动态分配:使用完后释放该IP,供其它客户机使用
2.DHCP的租约
2.1 DHCP的租约过程
- 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
- 分为四个步骤
1.客户机请求IP地址:
当一个 DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。此时DHCP客户机以广播方式发送 DHCP Discover发现信息来寻找 DHCP 服务器.
2.服务器响应:
当DHCP服务器接收到来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记,加入到 DHCP Offer的消息中,然后 DHCP服务器就广播一则DHCP offer 消息.
3.客户机选择IP地址:
DHCP 客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个 DHCP 客户机。之后 DHCP 客户机会向服务器发送 DHCP Request消息。
4.服务器确定租约:
DHCP服务器接收到 DHCP Request 消息后,以 DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。当客户机收到 DHCP ACK消息时,它就配置了IP地址,完成 TCP/IP 的初始化。
2.2 重新登陆
DHCP客户机每次重新登录网络时,不需要再发送 DHCP Discover 信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。
2.3 更新租约
1.当DHCP服务器向客户机出租的IP地址租期达到50% (T1)时,就需要更新租约。DHCP客户端会自动以单播的方式向DHCP服务器发送 DHCP REQUEST 报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCPACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER 报文请求新的IP地址。
2.当租期达到87.5%(T2)时,如果仍未收到DHHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送 DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。
3.使用DHCP动态配置主机地址
3.1 DHCP服务
- 为大量客户机自动分配地址,提供集中管理
- 减轻管理和维护成本、提高网络配置效率
3.2可分配的地址信息主要包括
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
4.安装DHCP服务器
- CentOS光盘中的dhcp-4.2.5-47.el7.centos.x86_64.rpm
DHCP软件包的主要文件 - 主配置文件:/etc/dhcpd.conf
- 执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost /]# cd /mnt/Packages/
[root@localhost /mnt/Packages]#ls |grep dhcp
dhcp-4.2.5-68.el7.centos.1.x86_64.rpm
dhcp-common-4.2.5-68.el7.centos.1.x86_64.rpm
dhcp-libs-4.2.5-68.el7.centos.1.x86_64.rpm
[root@localhost /mnt/Packages]#rpm -ivh dhcp-4.2.5-68.el7.centos.1.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:dhcp-12:4.2.5-68.el7.centos.1 ################################# [100%]
[root@localhost /mnt/Packages]#rpm -ql dhcp
......
/usr/share/doc/dhcp-4.2.5
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
/usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example
......
[root@localhost /usr/share/doc]#cd /usr/