DHCP服务
1. DHCP服务
2. DHCP的租约过程
3. DHCP动态配置主机地址
1. DHCP服务
DHCP (Dynamic HostConfiguration Protocol,动态主机配置协议)
由Internet作任务小组设计开发,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
使用DHCP的好处
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
DHCP的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管理员专门]指定IP地址
- 动态分配:使用完后释放该IP,供其它客户机使用
2. DHCP的租约过程
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分为四个步骤(华为服务器中依次是广播→单播→广播→单播)
- 客户端在网络中搜索服务器
- 服务器向客户端响应服务
- 客户端向目标服务器发出服务请求
- 服务器向客户端提供服务
客户机请求IP地址
- 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
- 此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
服务器响应
- DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
- 如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播DHCP Offer消息
客户机选择IP地址
- DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
服务器确定租约
- DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
- 当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化
重新登录
- DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
更新租约
- 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
- 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
3. DHCP动态配置主机地址
DHCP服务
- 为大量客户机自动分配地址,提供集中管理
- 减轻管理和维护成本、提高网络配置效率
可分配的地址信息
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
配置DHCP服务器
DHCP服务器软件
- CentOS光盘中的dhcp-4.2.5-47.el7.centos.x86_ 64 .rpm
DHCP软件包
- 主配置文件:/etc/dhcpd.conf
- 执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
安装软件包及备份
1 yum install -y dhcp 2 cd /etc/dhcp/ 3 ls 4 less dhcpd.conf 5 6 cd /usr/share/doc/dhcp-4.2.5/ 7 ls 8 less dhcpd.conf.example 9 10 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
1 vim /etc/dhcp/dhcpd.conf 2 #设置全局配置参数 3 4 default-lease-time 21600; 5 #默认租约为6小时,单位为秒 6 7 max-lease-time 43200; 8 #最大租约为12小时,单位为秒 9 10 option domain-name "benet.com"; 11 #指定默认域名 12 13 option domain-name-servers 202.106.0.20,202.106.148.1; 14 #指定DNS服务器地址 15 16 ddns-update-style none; 17 #禁用DNS动态更新
1 #subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数) 2 subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址 3 range 192.168.80.10 192.168.80.20; #设置地址池 4 option routers 192.168.80.254; #指定默认网关地址 5 } 6 7 subnet 192.168.1.0 netmask 255.255.255.0 { 8 range 192. 168.1.100 192.168.1.200; 9 option routers 192.168.1.254; 10 } 11 12 subnet 192.168.2.0 netmask 255.255.255.0 { 13 range 192.168.2.20 192.168.2.30; 14 option routers 192.168.2.254; 15 } 16 17 #host主机声明(给单机分配固定的IP地址) 18 host hostname{ #指定需要分配固定IP地址的客户机名称 19 hardware ethernet 00:c0:c3:22:46:81; #指定该主机的MAC地址 20 fixed-address 192.168.4.100; #指定保留给该主机的IP地址 21 } 22 23 #后面内容可都删除 24 25 systemctl start dhcpd 26 systemctl stop firewalld 27 setenforce 0
host 主机声明(给单台主机分配固定的IP地址)
Linux客户端使用DHCP 动态获取IP
1 #方法一 2 vi /etc/sysconfig/network-scripts/ifcfg-ens33 3 DEVICE=ens33 4 ONBOOT=yes 5 BOOTPROTO=dhcp 6 ifdown ens33; ifup ens33 7 8 #方法二 9 dhclient -d ens33 10 11 查看租约文件 12 less /var/lib/dhcpd/dhcpd.lease