DHCP服务概述:
名称:DHCP - Dynamic Host Configuration Protocol 动态主机配置协议
功能:DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获取服务器分配的IP地址和子网掩码。默认情况下,DHCP在windows server的一个服务组件不会自动安装,需要手动安装并配置相关参数。
DHCP通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2. DHCP应当可以给用户分配永久固定的IP地址。
3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
4. DHCP服务器应当向现有的BOOTP客户端提供服务。
DHCP有三种机制分配IP地址:
1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。
DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。
DHCP的优点:
- 解决客户端不会配置IP地址的问题;
- 解决客户端配置IP地址错误的问题
- 解决客户端配置IP地址冲突的问题
- 解决客户端配置IP地址工作量大的问题
DHCP的缺点:
- 不能发现其他DHCP分发的IP地址
- 不能发现客户端手动配置的IP地址
DHCP的端口:
DHCP服务使用:端口67(bootps) 68(bootpc) 。
例:查看端口
~]# vim /etc/services
DHCP协议由 bootp协议发展而来,是BOOTP的增强版本,bootps代表服务端端口, bootpc代表客户端端口。
DHCP可以说是BOOTP的增强版本,它分为两个部分:一个是服务器端,而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP环境数据。比较BOOTP, DHCP透过“租约”的概念,有效且动态的分配客户端的TCP/IP设定,而且,作为兼容考虑,DHCP也完全照顾了BOOTP Client的需求。
补充: BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管理员去为每个用户去设置静态IP地址。 BOOTP使用UDP报文传输,并使用保留端口号67(BOOTP服务器)和68(BOOTP客户端)工作。使用BOOTP协议的时候,一般包括Bootstrap Protocol Server(自举协议服务端)和Bootstrap Protocol Client(自举协议客户端)两部分。 我们熟知的DHCP协议是从BOOTP的基础上发展而来的,它们都是主机配置协议,都可以大大减少管理员的工作量。BOOTP可以看成是简单版的DHCP,是对主机的静态配置,而DHCP可以依据一些策略对主机进行动态配置。BOOTP用于无盘工作站的启动和配置,而DHCP更适用于客户端接入变化的网络,即客户端接入时间、接入地点不固定。 BOOTP有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,MCA地址与IP的对应是静态的。换而言之,BOOTP非常缺乏“动态性 ”,若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。 |
DHCP服务运行原理:
DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。
客户端 服务端 目标端口 源IP 目标IP
-------DHCPDISCOVER -------> udp 目标67 源IP:0.0.0.0 目的IP:255.255.255.255
#即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCPdiscover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应 。(同一网段内所有的DHCP服务器)
<------DHCPOFFER ----------udp 68 源IP:DHCP服务器的IP, 目的IP: 255.255.255.255
即DHCP服务器提供IP地址的阶段。在网络中接收到DHCPdiscover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCPoffer提供信息 。
位于同一网段的DHCP服务器都会接收到DHCP discover报文,每个DHCP服务器上可能会部署多个地址池,服务器通过地址池来管理可供分配的IP地址等网络参数。服务器接收到DHCP discover报文后,选择跟接收DHCP discover报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。DHCP OFFER报文里面携带了希望分配给指定MAC地址客户端的IP地址及其租约等配置参数。 |
-------DHCPREQUEST --------> udp 67 源IP:0.0.0.0 目的IP:255.255.255.255
即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCPoffer提供信息,则DHCP客户机只接受第一个收到的DHCPoffer提供信息,然后它就以广播方式回答一个DHCPrequest请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容(DHCP服务器的标识符和客户端IP地址)。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
<------DHCPACK ------------ udp 68 源IP:服务器的IP 目的IP: 255.255.255.255
即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPrequest请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址 。
注意:客户端执行DHCP DISCOVER 后,如果没有DHCP 服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个IP 地址,配置本机地址。
169.254.0.0/16是windows的自动专有IP寻址范围,也就是在无法通过DHCP获取IP地址时,由系统自动分配的IP地址段。
早先的Linux上并不会产生这条路由,现在有这条路由大概是为了和windows兼容。
[root@node63 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
在使用租期超过50%时刻处,DHCP Client会以单播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址。
在使用租期超过87.5%时刻处,DHCP Client会以广播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址,直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程。
需要说明的是:DHCP客户端可以接收到多个DHCP服务器的DHCPOFFER数据包,然后可能接受任何一个DHCPOFFER数据包,但客户端通常只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求。
正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息。
在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户 端,让客户端重新发起地址请求过程。
DHCP设备
由于DHCP是C/S模式运行的,所以使用DHCP的设备为客户端,而提供DHCP服务的为服务端。DHCP客户端可以让设备自动地从DHCP服务器获得IP地址以及其他配置参数。使用DHCP客户端可以带来如下好处:
(1)降低了配置和部署设备时间;
(2)降低了发生配置错误的可能性;
(3)可以集中化管理设备的IP地址分配。DHCP服务器指的是由
服务器控制一段IP地址范围,客户端登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
需要注意的是,DHCP也可以用在不同的子网上,这时候需要使用称为DHCP中继代理( DHCP Relay, DHCPR,也叫DHCP中继)的设备。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容。
而DHCP中继代理接收到DHICP消息后,重新生成一个DHCP消息,然后转发出去。
有了DHCP中继,可以实现DHCP的跨网运作。由于 DHCP DISCOVER是以广播方式进行的,其情形只能在同一网络之内进行,因为路由器是不会将广播传送出去的。但如果DHCP服务器架设在其他的网络上面,可以用DHCP中继来接管客户的DHCP请求,然后将此请求传递给真正的DHCP服务器,然后将服务器的回复传给客户。这里,DHCP中继主机必须自己具有路由能力,且能将双方的数据报互传对方。如果不使用中继,也可以在每一个网络中安装DHCP服务器,但这样的话,一来设备成本会增加,而且管理上面也比较分散。当然,如果在大型的网络中,这样的均衡式架构还是可取的。
在DHCP客户端看来,DHCP中继代理就像DHCP服务器;在DHCP服务器看来,DHCP中继代理就像DHCP客户端。
安装部署DHCP
安装dhcp
dhcp只需要一个安装包,通过rpm或yum安装。
[root@kylinos ~]# yum -y install dhcp
kylinos中需要安装的包:
[root@kylinos ~]# rpm -qa|grep dhcp
dhcp-4.4.2-5.ky10.x86_64
dhcp-help-4.4.2-5.ky10.noarch
查看配置文件:
[root@kylinos ~]# rpm -ql dhcp
/etc/NetworkManager
/etc/NetworkManager/dispatcher.d
/etc/NetworkManager/dispatcher.d/11-dhclient
/etc/dhcp
/etc/dhcp/dhclient.d
/etc/dhcp/dhcpd.conf #ipv4的配置文件
/etc/dhcp/dhcpd6.conf #ipv6的配置文件
/etc/openldap/schema
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/usr/bin/omshell
/usr/lib/systemd/system/dhcpd.service
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service
/usr/lib64/pm-utils/sleep.d/56dhclient
/usr/sbin/dhclient
/usr/sbin/dhclient-script
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp
/usr/share/doc/dhcp-client/dhclient6.conf.example
/usr/share/doc/dhcp-server/dhcpd6.conf.example
/usr/share/doc/dhcp/README
/usr/share/doc/dhcp/README.dhclient.d
/usr/share/doc/dhcp/RELNOTES
/usr/share/doc/dhcp/References.txt
/usr/share/doc/dhcp/dhclient.conf.example
/usr/share/doc/dhcp/dhcp-lease-list.pl
/usr/share/doc/dhcp/ldap
/usr/share/doc/dhcp/ldap/README.ldap
/usr/share/doc/dhcp/ldap/dhcp.schema
/usr/share/doc/dhcp/ldap/dhcpd-conf-to-ldap
/usr/share/licenses/dhcp
/usr/share/licenses/dhcp/LICENSE
/var/lib/dhclient
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases #ipv4的租约文件
/var/lib/dhcpd/dhcpd6.leases #ipv6的租约文件
替换配置文件
dhcp的主配置文件为/etc/dhcp/dhcpd.conf,但是这个文件默认为空的,需要自己手动创建,但dhcp软件在安装的时候都会附上/usr/share/doc/dhcp-server/dhcpd.conf.example样本文件,可以将此文件复制为/etc/dhcp/dhcpd.conf,在修改即可。
[root@kylinos ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
当DHCP 主程序包安装好后会自动生成主配置文件的范本文件
/usr/share/doc/dhcp-server/dhcpd.conf.example
而在/etc 目录下会建立一个空白的dhcpd.conf 主配置文件。
ls /etc/dhcp/dhcpd.conf
现在我们将范本配置文件复制到/etc 目录下替换掉空白dhcpd.conf 主配置文件。
[root@kylinos ~]# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.back
[root@kylinos ~]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
修改配置文件
[root@kylinos ~]# vim /etc/dhcp/dhcpd.conf # 找到对应的子网范围,修改成以下内容
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option domain-name-servers 192.168.0.1;
option domain-name "internal.example.org";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
注意:网络号必须与DHCP 服务器的网络号相同
测试dhcpd.conf的语法是否正确。
[root@kylinos ~]# dhcpd -t /etc/dhcp/dhcpd.conf
Internet Systems Consortium DHCP Server 4.4.2
Copyright 2004-2020 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
ldap_gssapi_principal is not set,GSSAPI Authentication for LDAP will not be used
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcpd/dhcpd.leases
PID file: /var/run/dhcpd.pid
Source compiled to use binary-leases
配置文件参数说明
subnet:要分发IP地址的网段
netmask:要分发IP地址的子网掩码
range:分发IP地址池(在一个subnet下支持多个range)
option domain-name-servers:dns服务器
option domain-name:指定搜索域
option routers:分发IP地址的网关,如果不想跨网络、不连接互联网,可以不配网关
option broadcast-address:分发IP的广播地址,主机位全为1
default-lease-time:默认租约期,单位为秒
max-lease-time:最大租约期,单位为秒
特别注意:每个参数要以分号(;)结束,大括号所在行除外。
注释部分可以放在任何位置,并以“#”号开头
整个配置文件分成全局(不在{}内)和局部两个部分。局部参数的优先级高于全局参数。
default-lease-time 600;
作用:定义默认IP 租约时间,以秒为单位的租约时间。
50%:续约。(续不上继续用)
87.5%:再次续约。(续不上找别人)
DHCP工作站除了在开机的时候发出 DHCPrequest 请求之外,在租约期限一半的时候也会发出 DHCPrequest ,如果此时得不到 DHCP服务器的确认的话,工作站还可以继续使用该IP;当租约期过了87.5%时,如果客户机仍然无法与当初的DHCP服务器联系上,它将与其它 DHCP服务器通信。如果网络上再没有任何DHCP协议服务器在运行时,该客户机必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开 始,再一次重复整个过程。要是您想退租,可以随时送出 DHCPRELEASE 命令解约,就算您的租约在前一秒钟才获得的。
max-lease-time 7200;
作用:定义客户端IP租约时间的最大值,当客户端超过租约时间,却尚未更新IP 时,最长可以使用该IP 的时间;
例:机器在开机获得IP地址后,然后关机了。这时,当时间过了default-lease-time 600秒后,没有机器向DHCP续约,DHCP会保留7200秒,保留此IP地址不用于分配给其它机器。 当超过7200秒后,将不再保留此IP地址给此机器。
注意:default-lease-time、max-lease-time都是以秒为单位的租约时间,该项参数可以作用在全局配置中,也可以作用在局部配置中。
log-facility local7;
#定义日志类型为 local7
租约数据库文件
租约数据库文件用于保存一系列的租约声明,其中包含客户端的主机名、MAC 地址、分配到的IP地址,以及IP地址的有效期等相关信息。这个数据库文件是可编辑的ASCII 格式文本文件。每当发生租约变化的时候,都会在文件结尾添加新的租约记录。DHCP 刚安装好后租约数据库文件dhcpd.leases 是个空文件。当DHCP 服务正常运行后就可以使用cat 命令查看租约数据库文件内容了
[root@kylinos ~]# cat /var/lib/dhcpd/dhcpd.leases
lease 192.168.0.200 {
starts 6 2021/01/30 07:30:16; #租约开始时间
ends 6 2021/01/30 07:40:16; #租约结束时间
binding state active; #租约的绑定状态(active/free)
next binding state free; #下一次绑定的状态
hardware ethernet 00:0c:29:12:ec:1e; #绑定的网卡地址
}
补充: start和end时间使用starts和ends语句记录。 Date按下面的格式指定: weekday year/month/day hour:minute:second weekday用来使人容易理解何时租约过期,它从0到6,指的是周日到周六。在输入时可以省略星期。除非是一个非常长的租约,年(year)使用4位。月从1到12,日从1到31(根据月有不同),小时从1到23,分钟从1到59,秒也是从1到59。租约时间使用(UTC)而不是本地时间,世界上几乎没有地方与UTC时间一样。在大多数unix机器上,可以使用date –u来显示UTC的当前时间。 如果租约永不结束,date就不是一个真实的时间。 binding state state; next binding state state; binding state语句声明租约的绑定状态,当DHCP服务器没有配置使用失败恢复协议时,租约的绑定状态会是激活(active)和自由(free),失败恢复协议添加了一些新的传送状态,比如(backup)状态,它指示租约可以由伴侣分配。 next binding状态指租约当前状态过期时将会转换成的下一个状态。 hardware hardware-type mac-address; hardware语句记录lease使用的网络接口的MAC地址。如果是一组16进制数,中间用冒号分隔。 |
多个网卡,如何指定提供dhcp服务的网卡
# vim /etc/sysconfig/dhcpd
DHCPDARGS=“eth0 eth1”
如果允许多个网卡可以写多个网卡名,以空格隔开。
如果不使客户机接受dhcp服务器分配的dns地址
默认情况下dhcp客户机会获得dhcp服务器分配的dns地址,自动覆盖客户机的/etc/resolv.conf的内容。但如果客户机不想使用dhcp服务器分配的dns地址,想保留自己的dns地址,可以修改网卡的配置文件将PEERDNS修改为no,如果想使用dhcp服务器分配的dns,将PEERDNS修改为yes。
客户机如果使用命令获得ip地址
在windows里面可以使用ipconfig /release先释放当前地址,在使用ipconfig /renew重新获取ip地址,在linux系统里可以使用dhclient -d eth0来获得ip地址,按ctrl+c退出,分配的ip地址就会失效。如果直接使用dhclient命令,则分配的命令会在后台持续下去,分配的ip一直可用。
服务启停,并设置开机启动
[root@kylinos ~]# systemctl enable dhcpd
[root@kylinos ~]# systemctl start dhcpd
[root@kylinos ~]# systemctl status dhcpd
IP 地址绑定【分配静态ip地址】
在DHCP 中的IP 地址绑定用于给客户端分配固定IP 地址。比如服务器需要使用固定IP 地址就可以使用IP 地址绑定,通过MAC 地址与IP 地址的对应关系为指定的物理地址计算机分配固定IP地址。
整个配置过程需要用到 host 声明和hardware、fixed-address 参数。
(1)host 主机名 {......}
作用:用于定义保留地址
(2)hardware 类型 硬件地址
作用:定义网络接口类型和硬件地址。常用类型为以太网(ethernet),地址为MAC 地址。
(3)fixed-address IP 地址
作用:定义DHCP 客户端指定的IP 地址。
[root@kylinos ~]# vim /etc/dhcp/dhcpd.conf # 找到对应的子网范围,修改成以下内容
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option domain-name-servers 192.168.0.1;
option domain-name "internal.example.org";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
host kylinos { #这一段内容,要写在subnet字段中,和subnet配合使用。
hardware ethernet 00:0C:29:12:ec:1e;
fixed-address 192.168.0.251;
}
}
应用实例:
公司有60 台计算机,IP 地址段为192.168.0.1-192.168.0.254,子网掩码是255.255.255.0,网关为192.168.0.1,192.168.0.2-192.168.0.30 网段地址给服务器配置,客户端可以使用的地址段为192.168.0.100-200,其余剩下的IP 地址为保留地址。
实验环境:
我的虚拟机使用桥接模式是否可行? 不行,因为你的局域网中有可能就有DHCP服务器,这样你就很难,让你的客户端是从你的DHCP服务器获得IP地址。
另外,也可能造成公司局域网中其它机器因为获得了你DHCP服务器上的IP地址,而上不了网。
实验环境拓扑如下:
node63.example.com :192.168.0.63 虚拟机网卡: vmnet4
node64.example.com :192.168.0.64 虚拟机网卡: vmnet4
1、修改静态IP地址
[root@node63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
2、重启服务
[root@node63 ~]# systemctl restart network
3、修改dhcp配置文件
[root@node63 ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.50 192.168.0.100;
option domain-name-servers 192.168.0.1;
option domain-name "internal.example.org";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
4、重启dhcp服务
[root@node63 ~]# systemctl restart dhcpd
5、开启客户端,确保客户端的网络与服务端在同一网络内。
然后node64改为自动获取IP地址。
6、客户端查看网络参数
[root@xue63 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:12:EC:1E
inet addr:192.168.0.99 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe12:ec1e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5084 errors:0 dropped:0 overruns:0 frame:0
TX packets:5087 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:664380 (648.8 KiB) TX bytes:521089 (508.8 KiB)
7、查看默认网关
[root@xue63 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
8、查看DNS
[root@xue63 ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search internal.example.org example.com
nameserver 192.168.0.1
9、查看租约数据库文件[在服务端上查看]
[root@node64 dhcp]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.4.2
# authoring-byte-order entry is generated, DO NOT DELETE
authoring-byte-order little-endian;
server-duid "\000\001\000\001(n\3655\000\014)\035K\177";
lease 192.168.0.50 {
starts 3 2021/06/30 13:58:51;
ends 3 2021/06/30 14:08:51;
cltt 3 2021/06/30 13:58:51;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:9d:a9:b8;
client-hostname "desktop";
}
DHCP中继
当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,VLAN能隔离广播,而DHCP协议使用广播。DHCP服务器在哪个vlan中,就只有在相同vlan内的客户机能从DHCP服务器那里获取IP地址。
解决此问题方法:
在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让其他VLAN的客户机也能从DHCP服务器那里获得IP地址。
由于在IP地址动态获取的过程中,客户端采用广播方式发送请求报文,而广播报文不能跨越网段传送,因此DHCP只适用于DHCP客户端和服务器处于同一个网段内的情况。当多个网段都需要进行动态IP地址分配时,就需要在所有网段上都设置一个DHCP服务器,这显然是不易管理和维护的。
DHCP中继可以使客户端通过它与其他网段的DHCP服务器通信,最终获取IP地址,解决了DHCP客户端不能跨网段向服务器动态获取IP地址的问题。这样,在多个不同网络上的DHCP客户端可以使用同一个DHCP服务器,即节省了成本,又便于进行集中管理和维护。路由器或三层交换机都可以充当DHCP中继设备。