DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
减少管理员的工作量
避免IP地址冲突
当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置
自动分配:分配到一个IP地址后永久使用
手动分配:由DHCP服务器管理员专门指定IP地址
动态分配:使用完后释放该IP,供其它客户机使用
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程:
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
当DHCP服务接收到来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机,如果有,DHCP服务器就将此IP地址做上标记,加入到DHCP Offer的消息中,然后DHCP服务器就广播一则DHCP Offer消息
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器就将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户及收到DHCP ACK消息时,他就配置了IP地址,完成TCP/IP的初始化
DHCP客户机重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的DHCP Request请求信息
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
为大量客户机自动分配地址,提供集中管理 减轻管理和维护成本、提高网络配置效率
网卡的IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
CentOS光盘中的 dhcp-4.2.5-47.el7.centos.x86_64.rpm
主配置文件:/etc/dhcp/dhcpd.conf
配置为DHCP客户端提供的各项TCP/IP参数
#vim /etc/dhcp/dhcpd.conf
option domain-name "zzq.y2002.com"; #搜索域
option domain-name-servers www.zzq.y2002.com; #指定域名服务器,此处可以是域名也可以是IP
default-lease-time 86400; #默认租约时长
max-lease-time 86400; #最大租约时长
subnet 192.168.137.0 netmask 255.255.255.0 { 网段声明 和该网段的子网掩码
range 192.168.137.110 192.168.137.160; DHCP地址池
option routers 192.168.137.2; 网关
}
host prtsvr {
hardware ethernet 00:c0:c3:22:46:81; 指定对应主机的MAC地址
fixed-address 192.168.4.100; 指定为该主机保留的IP地址(IP与MAC绑定)
}
执行程序:/usr/sbin/dhcpd
#systemctl {start|restart|stop|enable|disable} dhcpd.service 启停DHCP服务
执行参数配置:/etc/sysconfig/dhcpd
[root@localhost ~]# less /var/lib/dhcpd/dhcpd.leases
……
lease 192.168.4.131 { 分配的客户端IP
starts 4 2017/05/11 17:27:15;
ends 4 2017/05/11 23:27:15; 租期时间
cltt 4 2017/05/11 17:27:15;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:3b:ff:76; 客户端MAC地址
}
systemctl start dhcpd
1、修改网卡配置文件(如ifcfg-ens33)
BOOTPROTO=dhcp
2、使用dhclient命令
dhclient [-d] [网络接口名]
Listening on LPF/ens33/00:0c:29:3b:ff:76
Sending on LPF/ens33/00:0c:29:3b:ff:76
Sending on Socket/fallback
DHCPDISCOVER on ens33 to 255.255.255.255 port67 interval 5 (xid=0x608095ef)
DHCPREQUEST on ens33 to 255.255.255.255 port67 (xid=0x608095ef)
DHCPOFFER from 192.168.4.11
DHCPACK from 192.168.4.11 (xid=0x608095ef)
当企业内部网络规模比较大时,通常通过VLAN 将网络规划为多个不同的子网。但是在该情况下一台DHCP 服务器无法为不同网段的客户机同时提供服务,因为DHCP 协议使用广播,而VLAN 能隔离广播。
例如:DHCP 服务器在VLAN 100 中,就只有VLAN 100 内的客户机能从DHCP 服务器那里获取IP 地址。如果VLAN 2 或VLAN 3 的客户机就无法通过这台DHCP 服务器来获取IP 地址。
针对以上问题,一般有两种解决方案:
为每个网段安装一台DHCP 服务器,但这种方式的弊端是:资源浪费与不利于管理;
在连接不同网段的设备上开启DHCP 中继功能,将DHCP 这种特殊的广播信息在VLAN 之间转发,让其他VLAN 的客户机也能从DHCP 服务器获取IP 地址
DHCP 中继的配置命令: ip helper-address DHCPsrv-IPAddress 。
其中,DHCPsrv-IPAddress 为DHCP 服务器的IP 地址。
在三层交换机上配置DHCP 中继转发:首先需要保证交换机上各VLAN 之间网络通信正常,然后依次在不包含DHCP 服务器的VLAN 上进行DHCP 中继配置。例如执行以下命令可以在VLAN2 中进行DHCP 中继转发配置。
SW-3L(config)# interface vlan 2
SW-3L(config-if)# ip helper-address 192.168.100.100
SW-3L(config)# interface vlan 1
SW-3L(config-if)# ip helper-address 192.168.100.100