❶ 电脑里的DHCP是什么
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
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服务器简介及配置图文教程
【 干货】速度收藏! DHCP服务器 简介及 配置 图文 教程
想必熟悉局域网的小伙伴,对于DHCP服务器一定不陌生,在一个计算机比较多的网络中,如果网络管理员要亲自为某个部门,甚至整个企业的上百台机器逐一手工分配IP地址,那么这个效率是非常低的,其实可以通过DHCP服务器来实现这个工作。本篇文章就为大家介绍了DHCP服务器的概念、原理以及配置,快来看看吧!
一、什么是 DHCP服务器 ? DHCP服务器 简介
1、简介
DHCP,(全称Dynamic Host Configuration Protocol),即动态主机配置协议。DHCP主要在局域网使用,对IP地址进行集中管理和分配,使网络环境中的主机动态获得IP地址、网关地址、DNS服务器地址等信息,并提升IP地址使用率。
2、原理
DHCP是一种基于客户/服务器模式的服务协议,工作原理其实很简单,是在安装有DHCP服务器的网络中,客户端启动时自动与DHCP服务器通信,要求服务器提供自动分配IP地址的服务,而安装了DHCP服务器软件的服务器响应这个要求,并向客户端发送出合法的IP地址。所谓DHCP服务器,也就是提供DHCP服务的服务器,它是通过IP地址租约的方式为DHCP客户端提供服务的。
DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约。为了从DHCP服务器获得一个IP地址,在标准情况下DHCP客户端和DHCP服务器之间会进行四次通讯。DHCP协议通讯使用端口UDP 67(服务器端)和UDP 68(客户端)进行通讯,UDP68端口用于客户端请求,UDP67用于服务器响应,并且大部分DHCP协议通讯使用广播进行。
(1) DHCP DISCOVER
当DHCP客户端处于以下三种情况之一时,触发DHCP DISCOVER广播消息:
1)当TCP/IP协议作为DHCP客户端(自动获取IP地址)进行初始化(DHCP客户端启动、启用网络适配器或者连接到网络时);
2)DHCP客户端请求某个IP地址被DHCP服务器拒绝,通常发生在已获得租约的DHCP客户端连接到不同的网络中;
3)DHCP客户端释放已有租约并请求新的租约。
此时,DHCP客户端发起DHCP DISCOVER广播消息,向所有DHCP服务器获取IP地址租约。此时由于DHCP客户端没有IP地址,因此在数据包中,使用0.0.0.0作为源IP地址,然后广播地址255.255.255.255作为目的地址。在此请求数据包中同样会包含客户端的MAC地址,以便DHCP服务器进行区分。
如果没有DHCP服务器答复DHCP客户端的请求,DHCP客户端在等待1秒后会再次发送DHCP DISCOVER广播消息。除了第一个DHCP DISCOVER广播消息外,DHCP客户端还会发出三个DHCP DISCOVER广播消息,等待时延分别为9秒、13秒和16秒加上一个长度为0~1000毫秒之间的随机时延。如果仍然无法联系DHCP服务器,则认为自动获取IP地址失败,默认情况下将随机使用APIPA(自动专有IP地址,169.254.0.0/16)中定义的未被其他客户使用的IP地址,子网掩码为255.255.0.0,但是不会配置默认网关和其他TCP/IP选项,因此只能和同子网的使用APIPA地址的客户端进行通讯。
(2) DHCP OFFER
所有接收到DHCP客户端发送的DHCP DISCOVER广播消息的DHCP服务器会检查自己的配置,如果具有有效的DHCP作用域和富余的IP地址,则DHCP服务器发起DHCP OFFER广播消息来应答发起DHCP DISCOVER广播的DHCP客户端,此消息包含以下内容:
客户端MAC地址;
DHCP服务器提供的客户端IP地址;
DHCP服务器的IP地址;
DHCP服务器提供的客户端子网掩码;
其他作用域选项,例如DNS服务器、网关、WINS服务器等;
租约期限等。
因此DHCP客户端没有IP地址,所以DHCP服务器同样使用广播进行通讯:源IP地址为DHCP服务器的IP地址,而目的IP地址为255.255.255.255。同时,DHCP服务器为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。如果有多个DHCP服务器给予此DHCP客户端回复DHCP OFFER消息,则DHCP客户端接受它接收到的第一个DHCP OFFER消息中的IP地址。
(3) DHCP REQUEST
当DHCP客户端接受DHCP服务器的租约时,它将发起DHCP REQUEST广播消息,告诉所有DHCP服务器自己已经做出选择,接受了某个DHCP服务器的租约。
在此DHCP REQUEST广播消息中包含了DHCP客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等,所有其他的DHCP服务器将收回它们为此DHCP客户端所保留的IP地址租约,以给其他DHCP客户端使用。
此时由于没有得到DHCP服务器最后确认,DHCP客户端仍然不能使用租约中提供的IP地址,所以在数据包中仍然使用0.0.0.0作为源IP地址,广播地址255.255.255.255作为目的地址。
( 4 ) DHCP ACK
提供的租约被接受的DHCP服务器在接收到DHCP客户端发起的DHCP REQUEST广播消息后,会发送DHCP ACK广播消息进行最后的确认,在这个消息中同样包含了租约期限及其他TCP/IP选项信息。
如果DHCP客户端的操作系统为Windows版本,当DHCP客户端接收到DHCP ACK广播消息后,会向网络发出三个针对此IP地址的ARP解析请求以执行冲突检测,确认网络上没有其他主机使用DHCP服务器提供的IP地址,从而避免IP地址冲突。如果发现该IP已经被其他主机所使用(有其他主机应答此ARP解析请求),则DHCP客户端则会广播发送(因为它仍然没有有效的IP地址)DHCP DECLINE消息给DHCP服务器拒绝此IP地址租约,然后重新发起DHCP DISCOVER进程。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。
如果没有其他主机使用此IP地址,则DHCP客户端的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。至于其他TCP/IP选项,如DNS服务器和WINS服务器等,本地手动配置将覆盖从DHCP服务器获得的值。
二、 DHCP SERVER (RELAY)配置方式
1、相关配置文件
端口号:ipv4 udp 67(源端口:接收客户端请求的)、 udp 68(目的端口:向客户端发送请求成功或失败的回应)、ipv6 udp 546、udp 547
服务名:dhcpd、dhcrelay
主配置文件:/etc/dhcp/dhcpd.conf
模板文件:/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
中继配置文件:/etc/sysconfig/dhcrelay
执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
服务脚本:/etc/init.d/dhcpd、/etc/init.d/dhcrelay
执行参数配置:/etc/sysconfig/dhcpd
查看租约文件:/var/lib/dhcpd/dhcpd.lease
很多网络服务的排错日志:/var/log/messages
2、配置步骤
(1)操作前的准备
防火墙临时关闭:iptables –F
防火墙永久关闭:/etc/init.d/iptables stop
查看防火墙状态:iptables -L
selinux临时关闭:setenforce 0
selinux永久关闭:sed –i“7s/enforcing/disabled/g”/etc/selinux/config
(2)客户端配置
1、关闭防火墙和selinux
2、自己在虚拟网络编辑器创建一个局域网的网卡,并设置好网段,取消虚拟网络编辑器的DHCP自动分配功能
3、进入客户机设置IP地址为自动获取(就是让DHCP选项生效),然后用service network restart 重启客户机网卡,到这里客户端就设置完成。
(3)服务端配置
1、进入服务机设置IP地址、网关和虚拟网络编辑器那个网卡的网段一致,然后重启网卡;
2、配置yum源,挂载光盘,然后用yum -y install dhcp安装dhcp软件;
3、进入dhcp配置文件/etc/dhcp/dhcpd.conf发现里面是空的,然后把dhcp模板文件中的内容导入dhcp 配置文件;
4、将配置文件的前几个subnet声明注释掉,修改最后一个subnet的声明;
5、修改完成后保存退出,用service dhcpd configtest测试文件是否有错误;
6、然后用service dhcpd start 重启dhcp服务;
7、重启客户机网卡,看能不能获取到服务机地址池的IP地址;
8、为某台主机设置IP地址保留,把要保留IP的MAC地址和要保留的IP地址写入dhcpd.conf的配置文件即可,然后设置客户机为自动获取IP;
9、用ifdown eth0停止服务机网卡,再用ifup eth0开启网卡,然后用service dhcpd start 重启dhcp服务,看客户机能不能获取到指定IP。
3、中继代理配置
interface f0/0
ip helper-address 1.1.1.1
ip dhcp relay information trust
update arp开启定期ARP询问
interfaca g0/0/2
arp authorized禁止动态更新ARP
arp timeout 60 60s无应答则删除ARP条目
ip dhcp snooping vlan 20 vlan20开启snooping
interface f0/0定义信任端口
ip dhcp snooping trust交换机连接DHCP服务器端口设为trusted
dhcp snooping bind-table static ip-address ip-address mac-address mac-address interface g0/0#配置IP与MAC静态绑定表
interface vlan 1
ip add dhcp-alloc #立即发送DHCP-discover报文,1-10s内随机发送,如果没有收到DHCP服务器的回应报文继续发送,直到回应为止
dhcp selsect global all #全局分配地址
dhcp server group dhcp-relay
dhcp-server 10.1.1.1组里有多个dhcp服务器
interface vlan 2
dhcp select relay
dhcp relay server-select dhcp-relay
display dhcp server ip-in-use all #查看地址池可用地址信息
reset dhcp server ip-in-use all #重置正在使用的IP地址
address-check enable dhcp #中继的安全特性
ip dhcp relay information trust-all合法的DHCP服务路由,为了形成一个绑定表
no ip dhcp conflict logging关闭DHCP冲突日志
display ip interface br
❸ dhcp服务器软件包的名称
一、dhcp简述
dhcp:应用层协议
Dynamic Host Configuration Prototocl 动态主机配置协议
作用:动态的分配tcp/ip参数
DHCP是Dynamic Host Configuration Protocol的英文缩写,中文名称是:动态主机配置协议,主要作用就是给计算机分配IP地址,运行DHCP服务的网络设备就叫做DHCP服务器。PS∶普通的计算机、服务器、路由器等都可以运行DHCP服务。
二、dhcp服务的实现
使用的软件:dhcp
安装dhcp软件的命令:yum install dhcp -y
配置文件:/etc/dhcp/dhcpd.conf
服务名称:dhcpd
使用的端口:67,基于udp协议
❹ 如何搭建DHCP及DHCP中继服务器
1.安装DHCP服务器软件包
先检查RPM命令检查系统中是否已经安装DHCP软件包,如果没有安装,则挂载RHEL5系统光盘,并安装其中的dhcp- 3.0.5.el5.i386.rpm软件包即可
查看dhcp软件包安装的主要文件
使用vi打开dhcp服务器的主配置文件/etc/dhcpd.conf,但是该文件中默认并不包含任何有效配置,需要手动建立。
为各客户机动态分配的ip地址,默认租约时间为21600秒,最大租约时间为43200秒,对应于三个物理网段,用于动态分配的ip地址范围:192.168.1.10~192.168.1.100、192.168.2.10~192.168.2.100、192.168.3.10~192.168.3.100
启动dhcpd服务。
打开命令参数配置文件/etc/sysconfig/dhcpd,设置dhcpd服务仅面向eth0、eth1、eth2网卡提供动态地址分配服务。
配置dhcp中继服务器。
在RHEL5系统中,安装dhcp软件包,安装完之后,就已经包含了dhcp中继相关的程序和脚本等文件。配置dhcp中继服务器时,只需修改配置文件/etc/sysconfig/dhcrelay服务即可,作为路由器使用时,还需要开启服务器的路由转发功能。
编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward配置项的值修改为1,并执行sysctl -p命令使之生效。
打开dhcp中继服务器的配置文件,设置允许dhcp中继数据的接口及dhcp服务器的ip地址。
启动dhcrelay中继服务程序。
验证dhcp结果。
修改测试客户机的虚拟网卡连接方式,分别使用不同的网卡进行测试。确保能够通过dhcp方式获取正确的网络地址配置(两种方法)。
1. 如果测试客户机使用Linux系统,则进行dhclient eth0命令获取地址,或者修改eth0网卡的配置文件,设置BOOTPROTO=dhcp,然后重启network服务。
2. 如果测试客户机使用windows系统,则打开cmd命令窗口,执行ipconfig/release命令释放租约,执行ipconfig/renew命令重新获取地址。
❺ dhcp server 那个软件怎么用
dhcp服务器是分配ip的.dns是域名解析的.可以是同一地址.
注意.不是dna服务器.是dns服务器.
❻ 怎么在linux安装dhcp
一.首先了解DHCP的概念
DHCP是实现主机IP地址DNS等动态配置的网络协议.
DNCP可以在多种操作系统中实现,包括最常用的LINUX系统和WINDOWS系统
DHCP网络服务的结构中具有服务器和客户机两个角色
DHCP服务器用于为网络中所有的DHCP客户机提供网络配置信息,在同一网络中,
DHCP服务器通常是唯一存在在.
网络中的任何主机都可以配置成为DHCP客户机,向DHCP服务器发出配置请求并按照服务器返回的信息进行网络配置
二.DHCP服务器能够提供的网络配置信息
1.网络接口的IP地址和子网掩码.
2.网络接口的IP地址对应的网络地址和广播地址
3.默认网关地址
4.DNS服务器地址
三.DHCP服务器的配置
1.安装DHCP服务器软件(在RHEL4系统的安装光盘中包括RPM格式的DHCP服务器软件包,包文件的名称是dhcp-3.0.1-12_EL.i386.rpm),在RHEL4的第4安装光盘中,在同一张安装盘中还包括与DHCP相关的其它软件包
# cd /media/cdrom/rehat/rpms/
#ks -l dhcp*
dhcp-3.0.1-12_EL.i386,rpm在REL4中没有被默认安装,需要手动安装
#rpm -qa | grep dhcp
#rpm -ivh dhcp-3.0.1-12_EL.i386.rpm
2.其中/usr/sbin/dhcpd 是DHCP服务器的执行文件,/etc/rc.d/init.d/dhcpd是DHCP服务器的启动脚本,虽然文件名都是DHCPD,但是文件位于不同的目录,功能也不一样.
DHCPD.CONF配置文件以及建立配置文件和配置文件的格式
#ls /etc/dhcp*
#vi /etc/dhcpd.conf
如:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
}
3.全局设置
全局设置是DHCPD.CONF配置文件中不包括在任何声明中的配置项(参数或选项),
作用于整个配置文件.当声明中没有相应的配置项时将使用全局配置项的设置,当声明
中有相应的设置项时将使用本声明中设置,而不采用全局设置项的值.
DHCP.CONF配置文件中常用的全局设置如下:
1) ddns-update-style参数用来设置DHCP服务器与DNS服务器的动态信息更新模式.
2) 默认租约时间使用default-lease-time参数设置,参数值的单位是秒.
3) 最大租约时间使用max-lease-time参数设置,参数值的单位是秒.
4) 主机所在域的名称使用domain-name先项进行设置,设置的域名将与主机名称一起组成
主机全名
5)DNS服务器地址使用domain-name-servers选项进行设置,设置的值为DHCP客户端需要使用的DNS服务器的IP地址.
6)使用subnet声明设置子网属性
subnet 是DHCP.CONF文件中最常用的声明,用于在子网中设置动态分配的地址的网络属性,subnet声明中可包括其他的参数.就不再说了.
4.DHCP服务器的启动与停止及重起\和DHCP服务的状态
#service dhcpd start
#service dhcpd stop
#service dhcpd restart
#service dhcpd status
三.DHCP配置实例
如
默认租约时间为21600S
最大租约时间为43200S
局域网内所有主机动的域名为abc.com
客户机使用的DNS服务器的IP地址是192.168.1.1
声明在子网192.168.1.0/24中用于动态分配的IP地址范围是192.168.1.100~~~192.168.1.200所分配的子网掩码是255.255.255.0默认网关是192.168.1.1
在子网192.168.1.0/24中有名为server01的服务器主机,需要的固定分配IP地址是192.168.1.1,
#vi /etc/dhcpd.conf
ddns-update-style interim;
default-lease-time 21600;
max-lease-time 43200;
option domaion-name "abc.com;
option domain-name-servers 192.168.1.1;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
host server01 {
hardware ethernet bo:co:c3:22:46:81;
fixed-address 192.168.1.11;
}
}
❼ 谁帮忙推荐一个免费的DHCP服务软件啊小巧好用的,就几台电脑
这东西还要软件,软件就是服务器自带的组件,如果你觉得搞服务器很麻烦的话,去买一个小的soho路由器,就几十块钱,只要你点几下鼠标马上搞定。
用不着那么麻烦,免费的软件? 你想想会稳定吗?
❽ 用易语言怎么编写DHCP服务器软件
自己写俩软件 一个建个服务器组件 一个是客户端组件
客户端连接上服务器以后 发送数据 最前面加个标识符 比如前面加个Y是用户名 M是密码
然后服务器收到数据以后 判断以下收到的数据取文本最前面标识符是什么 然后相应自己写出到一个TXT文件里保存
以此类推 以这种发送封包然后服务器判断封包标识符来保存这些数据
服务器最后再加上 判断客户端登录的帐号 然后发送数据 也是用封包传送 等级 物品 金钱之类的东西 客户端登录成功以后 通过服务器来获取这些信息
如果你觉得麻烦的话直接保存到他本地的文件里 写配置项然后加密 保存到C盘他一般找不到的地方 然后每次打开的时候读取本地保存的配置项就可以了
❾ CA证书与DHCP服务
1、创建私有CA并进行证书申请。
1 :创建 CA 私钥
$ openssl genrsa -des3 -out ca.key 4096
2 :生成 CA 的自签名证书,其实 CA 证书就是一个自签名证书
$ openssl req -new -x509 -days 365 -key ca.key -outca.crt
3 :生成需要颁发证书的私钥
$ openssl genrsa -des3 -out server.key 4096
4 :生成要颁发证书的证书签名请求
Ps:证书签名请求当中的 Common Name 必须区别于 CA 的证书里面的 Common
Name
$ openssl req -new -key server.key -out server.csr
5 :创建一个ext文件,内容如下
keyUsage = nonRepudiation, digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName
[ SubjectAlternativeName ]
DNS.1=abc.com
DNS.2=*.abc.com
6 :用 2 创建的 CA 证书给 4 生成的 签名请求 进行签名
$ openssl x509 -req -days 365 -extfile http.ext -inserver.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
7 :最终会得到一下几个文件
ca.crt: 这个是ca证书,客户端信任该证书意味着会信任该证书颁发出去的所有证书
ca.key: ca证书的密钥
server.key: 服务器密钥,需要配置的
server.csr: 证书签名请求,通常是交给CA机构,这里我们就自己解决了
server.crt: 服务器证书,需要配置的
2、总结ssh常用参数、用法
ssh命令是ssh客户端,允许实现对远程系统经验证地加密安全访问。ssh客户端配置文件是:/etc/ssh/ssh_config
ssh
命令配合的常见选项:
-p port
:远程服务器监听的端口
ssh 192.168.1.8 -p 2222
-b
指定连接的源IP
ssh 192.168.1.8 -p 2222 -b 192.168.1.88
-v
调试模式
ssh 192.168.1.8 -p 2222 -v
-C
压缩方式
-X
支持x11转发支持将远程linux主机上的图形工具在当前设备使用
-t
强制伪tty分配,如:ssh -t remoteserver1 ssh -t remoteserver2 ssh
remoteserver3
-o option
如:-oStrictHostKeyChecking=no
-i
指定私钥文件路径,实现基于key验证,默认使用文件:~/.ssh/id_dsa,
~/.ssh/id_ecdsa,/.ssh/id_ed25519
,/.ssh/id_rsa等
3、总结sshd服务常用参数。服务器端的配置文件: /etc/ssh/sshd_config
常用参数:
Port #
端口号
ListenAddress ipLoginGraceTime 2m #
宽限期
PermitRootLogin yes #
默认ubuntu不允许root远程ssh登录
StrictModes yes #
检查.ssh/文件的所有者,权限等
MaxAuthTries 6
MaxSessions 10 #
同一个连接最大会话
PubkeyAuthentication yes #
基于key验证
PermitEmptyPasswords no #
空密码连接
PasswordAuthentication yes #
基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #
单位:秒
ClientAliveCountMax 3 #
默认3
UseDNS yes #
提高速度可改为no
GSSAPIAuthentication yes #
提高速度可改为no
MaxStartups #
未认证连接最大值,默认值10
Banner /path/file
以下可以限制可登录用户的办法:
AllowUsers user1 user2 user3
DenyUsers
AllowGroups
ssh
服务的最佳实践建议使用非默认端口禁止使用protocol version 1
限制可登录用户设定空闲会话超时时长利用防火墙设置ssh访问策略仅监听特定的IP地址基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom| head -c 12|
xargs
使用基于密钥的认证禁止使用空密码禁止root用户直接登录限制ssh的访问频度和并发在线数经常分析日志
4、搭建dhcp服务,实现ip地址申请分发
一、配置DHCP服务器
1、安装DHCP服务器软件
[root@centos01 ~]# mount /dev/cdrom /mnt/<!--挂载操作系统光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*<!--删除系统自动yum源-->
[root@centos01 ~]# yum -y install dhcp<!--安装DHCP服务 -->
2、建立主配置文件dhcpd.conf
[root@centos01 ~]# vim /etc/dhcp/dhcpd.conf<!--编辑主配置文件-->
:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example<!--读取默认配置文件-->
ddns-update-style none;<!--禁用DNS动态更新-->
option domain-name "benet.com";<!--指定默认搜索域-->
option domain-name-servers 202.106.0.10, 202.106.0.20;
<!--指定DNS服务器地址-->
default-lease-time 600;<!--默认租约时间-->
max-lease-time 7200;<!--最大租约时间-->
1)/etc/dhcp/dhcpd.conf文件的配置构成
在主配置文件dhcpd.conf中,可以使用声明、参数、选项这三种类型的配置,各自的作用和表现形式如下所述:
声明:用来描述dhcpd服务器中对网络布局的划分,是网络设置的逻辑范围。常见的声明是subnet、host,其中subnet声明用来约束一个网段。host声明用来约束一台特定主机。
参数:由配置关键字和对应的值组成,总是以“;”(分号)结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。
选项:由“option”引导,后面跟具体的配置关键字和对应的值,也是以“;”结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS服务器地址等)。
2)确定dhcpd服务的全局配置
为了使配置文件的结构更加清晰、全局配置通常会放在配置文件dhcod.conf的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下所述:
ddns-update-style:动态DNS更新模式。用来设置与DHCP服务相关联的DNS数据动态更新模式。在实际的DHCP应用中很少用到该参数。将值设为“none”即可。
default-lease-time:默认租约时间。单位为秒,表示客户端可以从DHCP服务器租用某个IP地址的默认时间。
max-lease-time:最大租约时间。单位为秒,表示允许DHCP客户端请求的最大租约时间,当客户端未请求明确的租约时间时,服务器将采用默认租约时间。
option domain-name:默认搜索区域。未客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf配置文件中,如“search benet.com”。
option domain-name-servers:DNS服务器地址。为客户端指定解析域名时使用的DNS服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf配置文件中,如“nameserver 202.106.0.20”。需要设置多个DNS服务器地址时,以逗号进行分隔。
3)确定subnet网段声明
一台DHCP服务器可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。例如,若要DHCP服务器为192.168.100.0/24网段提供服务,用于自动分配的IP地址范围为192.168.100。100~192.168.100.200,为客户机指定默认网关地址为192.168.100.254,则ke可以修改dhcpd.conf配置文件,参考以下内容调整subnet网段声明:
[root@centos01 ~]# vim /etc/dhcp/dhcpd.conf<!--编辑主配置文件-->
subnet 192.168.100.0 netmask 255.255.255.0 {<!--声明网段地址-->
range 192.168.100.100 192.168.100.200;<!--设置地址池,可以有多个-->
option routers 192.168.100.254;<!--指定默认网关地址-->
}
4)确定host主机声明
host声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地址(保留地址),这些主机的共同特点是要求每次获取的IP地址相同,以确保服务的稳定性。
host声明通过host关键字指定需要使用保留地址的客户机名称,并使用“hardware ethernet”参数指定该主机的MAC地址,使用“fixed-address”参数指定保留给该主机的IP地址。例如,若要为打印机prtsvr(MAC地址为00:0C:29:0D:BA:6B)分配固定的IP地址192.168.100.101,可以修改dhcpd.conf配置文件,参考以下内容在网段声明内添加host主机声明。
C:\Users\Administrator>getmac
物理地址 传输名称
=================== =======================================================
00-0C-29-0D-BA-6B \Device\Tcpip_{92E3F48B-40F0-4A0D-9604-6386AAAE3233}<!--客户端获取MAC地址-->
[root@centos01 ~]# vim /etc/dhcp/dhcpd.conf
host win7 {
hardware ethernet 00:0C:29:0D:BA:6B;<!--客户机的MAC地址-->
fixed-address 192.168.100.101;<!--分配给客户机的IP地址-->
}
3、启动dhcpd服务
在启动dhcpd服务之前,应确认提供DHCP服务器的网络接口具有静态指定的固定IP地址,并且至少有一个网络接口的IP地址与DHCP服务器中的一个subnet网段相对应,否则将无法正常启动dhcpd服务。例如,DHCP服务器的IP地址为192.168.100.10,用于为网段192。168.100.0/24内的其他客户机提供自动分配地址服务。
安装dhcp软件包以后,对应的系统服务脚本位于/usr/lib/systemd/system/dhcpd.service,可以使用systemd服务进行控制。例如,执行以下操作可以启动dhcpd服务,并检查UDP的67端口是否在监听,以确认DHCP服务器是否正常。
[root@centos01 ~]# systemctl start dhcpd<!--启动dhcp服务-->
[root@centos01 ~]# systemctl enable dhcpd<!--设置服务开机自动启动-->
[root@centos01 ~]# netstat -anptu | grep 67<!--监听DHCP服务端口号-->
udp 0 0 0.0.0.0:67 0.0.0.0:* 2102/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 1064/dnsmasq
注意:需要关闭、重启dhcpd服务时,只要将上述操作命令中的“start”改为“stop”或“restart”即可。
二、使用DHCP客户端
1、windows客户端
ipconfig /renew<!--可以为主机重新获取新的IP地址-->
ipconfig /release<!--释放IP地址-->
tracert IP地址<!--可以测试从当前主机到目的主机经过的网络节点-->
route print<!--查看路由表-->
2、Linux客户端
在Linux客户机中可以设置使用DHCP的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加“BOOTPROTO=dhcp”配置行,并重新加载配置文件或者重新启动network服务即可。例如,执行以下操作可修改网卡配置文件,并重新加载配置以通过DHCP方式自动获取地址:
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=ens32
DEVICE=ens32
ONBOOT=yes
[root@centos02 ~]# ifdown ens32 ; ifup ens32
[root@centos02 ~]# systemctl restart network
在Linux客户机中,还可以使用dhclient工具来测试DHCP服务器。若直接执行“dhclient”命令,则dhclient将尝试为除回环接口lo以外的所有网络接口通过DHCP方式申请新的地址,然后自动转入后台继续运行。当然,测试时可以指定一个具体的网络接口,并结合“-d”选项使其在前台运行,测试完毕后按Ctrl+C组合键终止。例如,执行“dhclient -d ens32”命令后,可以为网卡ens32自动获取新的IP地址,并显示获取过程。
[root@centos02 ~]# dhclient -d ens32
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/ens32/00:0c:29:97:5c:9f
Sending on LPF/ens32/00:0c:29:97:5c:9f
Sending on Socket/fallback
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 4 (xid=0x5364e17f)
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 6 (xid=0x5364e17f)
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 14 (xid=0x5364e17f)<!--DHCP发现-->
DHCPREQUEST on ens32 to 255.255.255.255 port 67 (xid=0x5364e17f)<!--DHCP请求-->
DHCPOFFER from 192.168.100.10<!--DHCP提供-->
DHCPACK from 192.168.100.10 (xid=0x5364e17f)<!--DHCP确认-->
bound to 192.168.100.102 -- renewal in 229 seconds.
............<!--按Ctrl+C组合键终止-->
客户端需要通过dhclient命令释放获取的IP租约时,可以结合“-r”选项。例如,执行以下的“dhclient -r ens32”将会释放之前为网卡ens32获取的IP租约。此时再通过执行“ifconfig ens32”命令就看不到分配的IP地址了。
[root@centos02 ~]# dhclient -r ens32