DHCP (Dynamic Host,Configuration Protocol,动态主机配置协议)由Internet工作小组设计开发专门用于为 TCP/IP网路中的计算机自动分配TCP/IP参数的协议
DHCP 服务避免了因手动设置IP 地址所产生的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲突。DHCP提供了安全、可靠且简单的 TCP/IP 网络设置,降低了配置 IP地址的负担
典型的C/S模式
在网络中架设一台专用的 DHCP 服务器,负责集中分配各种网络地址参数( 主要包括IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址 );其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与 DHCP 服务器进行通信,完成自动配置过程
DHCP是C/S模式,DHCP 服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。
Server 端:DHCP Server(运行dhcp 服务)
UDP 服务:监听端口 67(bootps)
Client 端:DHCP Client(运行dhcp程序)
TDP 服务:监听端口68(bootpc)
自动分配: 分配一个IP地址后永久使用
手动分配: 由DHCP服务器管理员专门指定IP地址
动态分配: 使用完后释放该IP,供其他客户机使用
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
客户机请求IP 地址当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找 DHCP 服器
服务器响应当HCP服务器接收到来自客户机请求P地址的信息时,它就在自己的P地址池中查是否有合法的TP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记,加入到DHCPOffer的消息中,然后DHCP服务器广播一则 DHCP Offer 消息
客户机选择IP地址DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP
服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机。之后DHCP客户机会向服务器发送DHCPRequest消息。
服务器确定租约DHCP服务器接收到DHCPReuest消息后,以DHCPACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。当客户机收到DHCPACK消息时,它就配置了IP地址,完成TCP/IP的初始化。
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP 地址的DHCP Request请求信息。
租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP
ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCPNAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。
当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP
ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCPNAK报文,则重新发送DHCPDISCOVER报文请求新的IP地址。
为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本、提高网络配置效率
网卡的IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
DHCP服务器软件
CentOS光盘中的dhcp-4.2.5-47.el7.centos.x86_64.rpm
DHCP软件包的主要文件
主配置文件:/etc/dhcpd.conf
执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
步骤:
1、yum安装dhcp服务
rpm -qa dhcp ###检查是否有安装DHCP服务(没有就用yum安装)
yum install -y dhcp ###安装DHCP服务
2、配置dhcp配置文件
rpm -qc dhcp ##查看配置文件
cd /etc/dhcp/
ls ###进入并查看DHCP安装的目录
rpm -qc dhcp ###查看配置文件有哪些
cat /etc/dhcp/dhcpd.conf ###服务刚安装好,配置文件是没有任何东西的,需要把模板拷贝过来
cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf ##拷贝模板起名为dhcpd.conf
vim /etc/dhcp/dhcpd.conf
设置全局配置参数(dhcp.conf)可以就默认不变
default-lease-time 21600; #默认租约为 6 小时,单位为秒
max-lease-time 43200; #最大租约为 12 小时,单位为秒
option domain-name “example.org”; #指定默认域名
option domain-name-servers 202.106.0.20,202.106.148.1; #指定DNS服务器地址
#ddns-update-style none; #禁用DNS动态更新
subnet 网段声明
一台 DHCP 服务器可以为多个网段提供服务,因此 subnet 网段声明必须有而且可以有多个。
注意别少了每行结尾的分号!(想要复制几行就 几yy 粘贴就 p)
开启一台windows虚拟机,在本地网络连接中全部选择自动获取,即可自动获取到服务器端设置的ip地址等配置
ipconfig /release ###释放IP地址
ipconfig /renew ###重新获得IP地址
该租约文件中记录了分配出去的每个 IP 地址信息(租约记录), 包括 IP 地址、客户端的 MAC 地址、租用的起始时间和结束时间等
host 声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的 IP 地址(保留地址),这些主机的共同特点是要求每次获取的 IP 地址相同,以确保服务的稳定性。
host win10 {
hardware ethernet 00:0C:29:18:B8:3C; #hardware ethernet:mac地址
fixed-address 192.168.94.250; #保留地址
}
#host 后面可自定义名称
vim /etc/dhcp/dhcpd.conf 编辑文件
systemctl restart dhcpd 重启dhcpd服务
[root@localhost ~]#yum install dhcp -y
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“static”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“0ba12236-1264-4a1c-8536-88dd89f47c19”
DEVICE=“ens33”
ONBOOT=“yes”
IPADDR=“192.168.100.100”
PREFIX=“24”
GATEWAY=“192.168.100.254”
IPV6_PRIVACY=“no”
[root@localhost ~]# cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
undo terminal monitor
Info: Current terminal monitor is off.
system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW2
[SW2]int e0/0/2
[SW2-Ethernet0/0/2]q
[SW2]vlan batch 10 20 100
Info: This operation may take a few seconds. Please wait for a moment…done.
[SW2]int e0/0/2
[SW2-Ethernet0/0/2]p l a
[SW2-Ethernet0/0/2]p d v 10
[SW2-Ethernet0/0/2]int e0/0/3
[SW2-Ethernet0/0/3]p l a
[SW2-Ethernet0/0/3]p d v 20
[SW2-Ethernet0/0/3]int e0/0/4
[SW2-Ethernet0/0/4]p l a
[SW2-Ethernet0/0/4]p d v 100
[SW2-Ethernet0/0/4]int e0/0/5
[SW2-Ethernet0/0/5]p l a
[SW2-Ethernet0/0/5]p d v 100
[SW2-Ethernet0/0/5]q
[SW2]int e0/0/1
[SW2-Ethernet0/0/1]p l t
[SW2-Ethernet0/0/1]p t a v a
undo terminal monitor
Info: Current terminal monitor is off.
system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW1
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]p l t
[SW1-GigabitEthernet0/0/1]p t a v a
[SW1-GigabitEthernet0/0/1]q
[SW1]vlan batch 10 20 100
[SW1]int Vlanif 10
[SW1-Vlanif10]ip add 192.168.1.254 24
[SW1-Vlanif10]q
[SW1]int Vlanif 20
[SW1-Vlanif20]ip add 192.168.2.254 24
[SW1-Vlanif20]q
[SW1]int Vlanif 100
[SW1-Vlanif100]ip add 192.168.100.254 24
[SW1-Vlanif100]q
[SW1]ping 192.168.100.100
PING 192.168.100.100: 56 data bytes, press CTRL_C to break
Reply from 192.168.100.100: bytes=56 Sequence=1 ttl=64 time=130 ms
Reply from 192.168.100.100: bytes=56 Sequence=2 ttl=64 time=60 ms
Reply from 192.168.100.100: bytes=56 Sequence=3 ttl=64 time=60 ms
Reply from 192.168.100.100: bytes=56 Sequence=4 ttl=64 time=60 ms
Reply from 192.168.100.100: bytes=56 Sequence=5 ttl=64 time=30 ms
[SW1]dhcp enable #开启DHCP之后再配置
[SW1]int Vlanif 10
[SW1-Vlanif10]dhcp select relay #DHCP中继选择
[SW1-Vlanif10]dhcp relay server-ip 192.168.100.100 #DHCP中继服务器IP地址
[SW1-Vlanif10]q
[SW1]int Vlanif 20
[SW1-Vlanif20]dhcp select relay
[SW1-Vlanif20]dhcp relay server-ip 192.168.100.100
[SW1-Vlanif20]q
[SW1] User interface con0 is available
DHCP的定义以及好处
DHCP的分配方式:自动分配,手动分配,动态分配
DHCP的工作原理:
DHCP 客户端进行 IP 请求
DHCP 服务器响应请求
DHCP 客户机选择 IP
DHCP 服务器确认租约
DHCP中继原理与配置