DHCP----动态主机配置协议

DHCP

文章目录

DHCP

一、DHCP介绍

二、DHCP应用场景

三、DHCP工作原理

3.1)报文类型-----共八种--常用6种

3.2)工作方式

3.3)工作原理解析

3.4)计算机获得IP的时间点

3.5)租约更新阶段

四、DHCP服务器部署

4.1)配置IP

4.2)启动DHCP服务

4.3)配置DHCP待分配的IP地址池塘

4.4)将池塘与接口进行联动,目的是告诉路由器,该池塘的信息应该属于哪个接口所连接的广播域

4.5)扩展配置---可选

4.6)补

五、补充

5.4)如何发放计算机名称


一、DHCP介绍

作用:用来为终端分配IP地址,并且对IP地址进行集中化管理的协议

应用层协议:
传输层使用UDP协议进行数据封装,端口号67/68,其中68代表客户端;67代表服务端。即是C/S架构

在LAN(局域网)中我们常会遇到以下的情况:

1)不知道如何配置IP地址及相关信息的员工,无法上网;

2)IP地址配置冲突,无法上网;

3)来访用户因不熟悉公司网络情况无法上网;

以上这些情况都是日常最常见也是最无脑的工作,公司网络管理员需要不停的去帮忙去解决这些问题,以此来保障公司网络的正常使用及员工的正常用网需求。而这些工作对于网络管理员来说实在是太低级、太无脑、太繁琐了,会消耗网络管理员的大量工作时间,也会影响公司员工的工作效能。那么如何通过其他的方法让计算机就能直接解决了上述问题,从而解放网络管理员呢?DHCP就是一个不二的选择。

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通常被应用在局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。由于DHCP是一个UDP协议,所以运行起来更加高效。

DHCP协议采用客户端/服务器模型(C/S模型),服务端可以为客户端提供IP、掩码、网关、主机名、DNS等信息。客户端只需将IP获得方式设置为自动获取即可。

二、DHCP应用场景

更多运用于开放式--任何人都能接连的

与半开放式网络--需要验证码中。

封闭式网络运用较少--只有规定的一部分人才可以使用

1)公司局域网环境

2)家庭局域网环境

3)公共场合的wifi环境

4)宽带环境网络

三、DHCP工作原理

3.1)报文类型-----共八种--常用6种
  • discover报文-----发现报文,用来发现网络中的DHCP服务器
  • offer报文--------由服务器进行回复,当收到discover报文后,并且服务器本地存在可用IP地址,则回复信息
  • request报文------正式向服务器请求IP地址
  • ack报文----------服务器同意使用该IP地址
  • decline报文------当客户端检测到IP地址冲突时,发送给服务器,用以告知服务器,IP不可用
  • nak报文----服务器拒绝客户端使用该IP地址----一般看不到
  • release报文-----客户端主动释放IP地址。
  • IP地址租期----当PC申请下来IP地址后,会存在租期时间。能够合理使用该IP地址的时间

    租期时间---24小时
    当租期时间到达12小时,客户端就需要向服务器发起续租申请。
    当第一次续租得到回复后,则客户端将租期时间刷新为24小时;若没有回复,则等待租期时间仅剩下3小时。
此时发送第二次续租申请,此时使用discover报文广播发送申请。

3.2)工作方式

IP获得需要通过发广播来实现客户端和服务器的通信,所以DHCP只能工作在局域网。

3.3)工作原理解析

1、Client:向网络中发送广播,通过自己的UDP协议的68号端口向网络中发送DHCP Discover包,用来寻找网络中的DHCP Server.类似于你在你的公司大喊一声:"谁是公司老板"一样的道理。

2、Server:局域网中的所有DHCP服务器都能收到该Client发送的广播包,然后DHCP Server会检查自己的IP池中(也叫做作用域)是否还有可用IP可以分发。如果有的话,会直接将这个IP地址从池中拿出来,避免在发给别的客户端,并且通过自己的UDP协议的67号端口给Client发一个响应包DHCP Offer,同样通信是采用广播的方式,明确告诉其可以提供哪个IP给Client使用。类似于公司的几个老板都在公司喊了一声:“我是X老板,我有时间在哪个办公室接待你”。

3、Client:Client会收到局域网中的所有DHCP服务器发给自己的DHCP Offer包,默认选一个最优的DHCP Server进行IP获取(在这里就是第一个发送给他DHCP Offer的服务器算作最优)。然后继续向网络中通过UDP的68号端口发广播DHCP Resquest,明确指定DHCP Server IP地址和需要租用的IP地址,告诉它要从他这里获得IP信息。自然其他DHCP Server也能收到广播,确认不从自己这里拿IP信息后,会将上步从IP池中拿出来的IP在释放到池中,以便别人使用。类似于你在公司大喊一声:“李老板,我找你接待”,那么其他老板刚才计划接待你的时间就会被释放出来,用于接待别的客户。

4、Server:被确认的DHCP Server就会通过其UDP协议的67号端口发送DHCP ACK确认包,采用广播将IP、掩码、网关、DNS等信息还有IP租约一起发送给DHCP Client,Client确认IP可用后,根据IP租约开始计算使用时间。类似于李老板把你请进他的办公室,开始和你聊天,并计算聊天时间为30分钟,开始倒计时。

3.4)计算机获得IP的时间点

a、计算机开机

b、网卡接通网络

c、重启网卡服务

3.5)租约更新阶段

a、租约完成1/2

b、租约完成7/8

c、租约到期

四、DHCP服务器部署

4.1)配置IP
[DHCP Server]interface GigabitEthernet 0/0/0
[DHCP Server-GigabitEthernet0/0/0]ip address 192.168.1.100 24
[DHCP Server]interface GigabitEthernet 0/0/1
[DHCP Server-GigabitEthernet0/0/1]ip address 192.168.2.100 24
4.2)启动DHCP服务
[DHCP Server]dhcp enable   ----启动DHCP服务
4.3)配置DHCP待分配的IP地址池塘
[DHCP Server]ip pool wangyu ----创建一个叫做wangyu的IP地址池塘
[DHCP Server-ip-pool-wangyu]network 192.168.1.0 mask 24 ---给池塘中添加IP地址信息,
将192.168.1.0/24整个网段的IP地址都添加到池塘中。
[DHCP Server-ip-pool-wangyu]gateway-list 192.168.1.100 ---设置该池塘中所有IP的网关地
址
[DHCP Server-ip-pool-wangyu]dns-list 8.8.8.8 ----设置该池塘中所有IP的拥有者DNS服务器
的IP地址
4.4)将池塘与接口进行联动,目的是告诉路由器,该池塘的信息应该属于哪个接口所连接的广播域
[DHCP Server]interface GigabitEthernet 0/0/0
[DHCP Server-GigabitEthernet0/0/0]dhcp select global   ----将DHCP服务在该接口激活
4.5)扩展配置---可选
[DHCP Server-ip-pool-wangyu]excluded-ip-address 192.168.1.254 192.168.1.254 ---
在192.168.1.0/24这个地址池中,将192.168.1.254地址排除,后续服务器在分配IP地址时,将不会分配
192.168.1.254这个地址信息。------------起始IP、截止IP
4.6)其他
[DHCP Server-ip-pool-wangyu]lease day 0 hour 0 minute 1 ---修改租期时间
[DHCP Server]display ip pool name ? ---查看具体某个地址池塘内容
  STRING<1-64> Pool name

五、补充

5.1) 如果客户端获得不到 IP会怎么办


当客户端获得不到IP地址,会得到一个169.254开头的临时IP,此IP不能和其他网段通信,但是Client会继续向网络中发DHCP广播,继续坚持不懈申请IP。

5.2)DHCP会面临单机故障,如何解决

两台设备互相分发对方网段一段IP,将作用域采用8/2原则,彼此互相冗余,当一台服务器出现问题,不至于整个网段故障。

5.3)抓包验证方法
[root@zutuanxue dhcp]# tcpdump -nn -vvv -s 1500 -i ens33 host 192.168.11.16 and udp port 67 or udp port 68
5.4)如何发放计算机名称

发放计算机名称只能在保留中完成,要求Client的计算机名配置文件中将对应字段删除。

option domain-name-servers 4.2.2.2, 4.2.2.1;

default-lease-time 28800;
max-lease-time 43200;
authoritative;
log-facility local7;

subnet 192.168.11.0 netmask 255.255.255.0 {
  range 192.168.11.153 192.168.11.252;
  option domain-name-servers 202.106.0.20, 114.114.114.114;
  option routers 192.168.11.254;
  option broadcast-address 192.168.11.255;
  default-lease-time 7200;
  max-lease-time 10800;
}

host print {
  #指定计算机名称
  option host-name "test.hello.com";
  hardware ethernet 00:0c:29:af:f1:84;
  fixed-address 192.168.11.252;
}

注意:请把/etc/hostname 中的计算机名称清除
      /etc/sysconfig/network中的hostname字段清除

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值