DHCP服务

DHCP概述

DHCP:Dynamic Host Configuration Protocol 动态主机配置协议

  是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

特点: C/S 模式

  自动分配IP地址,方便管理

  DHCP不会同时租借相同的IP地址给两台主机;

  DHCP管理员可以约束特定的计算机使用特定的IP地址;

  可以为每个DHCP作用域设置很多选项;

  客户机在不同子网间移动时不需要重新设置IP地址。每次都自动获取IP地址就可以了。

DHCP的缺点:

  当网络上存在多服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;

  DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP协议转发。

端口:

  DHCP服务使用:端口67(bootps) 68(bootpc) 。

例:查看

  # vim /etc/services

  DHCP协议由 bootp协议发展而来,是BOOTP的增强版本,bootps代表服务端端口, bootpc代表客户端端口

  bootp协议:引导程序协议(BOOTP)。它可以让无盘工作站从一个中心服务器上获得IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每个用户去设置静态IP地址。

DHCP服务运行原理:(重要)

DHCP Client发现阶段:

  即DHCP客户端寻找DHCP服务端的过程,对应于客户端发送DHCP Discovery,因为DHCP Server对应于DHCP客户端是未知的,所以DHCP 客户端发出的DHCP Discovery报文是广播包,源地址为0.0.0.0目的地址为255.255.255.255。网络上的所有支持TCP/IP的主机都会收到该DHCP Discovery报文,但是只有DHCP Server会响应该报文。

注意:客户端执行DHCP DISCOVER 后,如果没有DHCP 服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个IP 地址配置本机地址。

  169.254.0.0/16是windows的自动专有IP寻址范围,也就是在无法通过DHCP获取IP地址时,由系统自动分配的IP地址段。 

  

DHCP Server 提供阶段:

  DHCP Server提供阶段,即为DHCP Server响应DHCP Discovery所发的DHCP Offer阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCPdiscover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCPoffer提供信息

DHCP Client 确认阶段:

  即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCPoffer提供信息,则DHCP客户机只接受第一个收到的DHCPoffer提供信息,然后它就以广播方式回答一个DHCPrequest请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址

 

DHCP Server确认阶段:

   即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPrequest请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址

DHCP Client重新登录网络:

  当DHCP Client重新登录后,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

DHCP Client更新租约:

  DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将回收该IP地址,所以如果DHCP Client如果想继续使用该IP地址,则必须更新租约。更新的方式就是,当当前租约期限过了一半后,DHCP Client都会发送DHCP Renew报文来续约租期。

部署DHCP服务

实验环境:

我的虚拟机使用桥接模式是否可行? 不行,因为你的局域网中有可能就有DHCP服务器,这样你就很难,让你的客户端是从你的DHCP服务器获得IP地址。

另外,也可能造成公司局域网中其它机器因为获得了你DHCP服务器上的IP地址,而上不了网。可以选择仅主机模式或者自定义模式。

我使用了两台仅主机模式的虚拟机

服务器端定义静态IP(xshell可连接)

客户端设置成DHCP自动获取(重启网卡会失败,等待配置完成DHCP服务器端后再重启网卡!)

关掉仅主机模式虚拟机自带的DHCP

服务端操作

第一步 安装DHCP

[root@ken ~]# yum install dhcp -y

  

第二步 查看配置文件

[root@ken ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example     #这个文件是模板
#   see dhcpd.conf(5) man page

第三步 导入样本文件

[root@ken ~]# cat /usr/share/doc/dhcp*/dhcpd.conf.example >> /etc/dhcp/dhcpd.conf 

第四步 编辑配置文件

[root@ken ~]# cat /etc/dhcp/dhcpd.conf
subnet 192.168.182.0 netmask 255.255.255.0 {       #指定网段,需要和掩码保持一致
  range 192.168.181.10 192.168.182.20;                     #指定IP池    
  option domain-name-servers ns1.internal.example.org;  #指定DNS地址
  option domain-name "internal.example.org";         #指定域       
  option routers 192.168.182.1;                           #指定网关
 default-lease-time 600; #指定默认租约时间 max-lease-time 7200; #指定最大租约时间

红字必须留下,其他的可以删除

第五步 重启 DHCP服务

[root@ken ~]# systemctl restart dhcpd

 

客户端操作

第六步 修改客户端网络配置为dhcp

第七步 重启客户端网络

[root@ken ~]# systemctl restart network

第八步 查看获取到的IP

原文地址:https://www.cnblogs.com/tomsongqi/p/10741191.html