DHCP简介及简单实践

一、引言

DHCP全称Dynamic Host Configure Protocol,动态主机配置协议,用于向网络中的计算机分配IP地址及一些TCP/IP配置信息。DHCP提供了安全,可靠且简单的TCP/IP网络设置,避免了TCP/IP网络地址的冲突,同时大大降低了工作负担。

二、DHCP工作流程

DHCP采用C/S架构,即Server/Client,它的简要工作流程如下

1、client:dhcp discover

客户端向局域网内广播dhcp discover报文,查找dhcp服务器

2、server:dhcp offer

服务器端接受到请求报文后会向客户端发送dhcp offer包,先根据客户端的MAC地址来查找决定是为此客户端分配新的IP地址还是续租已经分配给客户的IP,并向客户端发送带有租约的dhcp offer包

3、client:dhcp request

由于局域网内可能有不止一台dhcp服务器,客户端依然使用广播的形式来告知各dhcp服务器它选择的dhcp服务器,没有被选中的dhcp服务器会收回ip租约

4、server:dhcp ack

被选中的服务器会回送dhcp ack包,并告知客户端租约的期限,同时开始租约计时

默认情况下,客户端会在租约快到期前向dhcp服务器提交续租申请,注意,有3个重要的时间点

50%:
    租赁时间达到50%时来续租,向dhcp服务器发出dhcp request请求,如果dhcp服务没有拒绝,则回应dhcp ack信息。当dhcp客户端收到该应答信息后,就重新开始新的租用周期
75%:
    如果在租约时间的50%还没有联系到dhcp服务器,在租约期的75%的时候会再次联系dhcp服务器
87.5%:
    如果期间dhcp server没有回应,等到租约期的87.5%时,主机会再一次发送一次请求,这时也会尝试发送新的dhcp请求

简要流程图如下:

blob.png

三、DHCP安装配置

DHCP安装比较简单

[root@node2~]# yum install dhcp
[root@node2~]# cp /usr/share/doc/dhcp-version_number/dhcpd.conf.example /etc/dhcp/dhcpd.conf  #复制模版

修改模版,如下:

option domain-name "lurker.com";
option domain-name-servers 172.16.0.1;
 
default-lease-time 43200;
max-lease-time 86400;
 
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.33 172.18.100.35;
}

在客户端用dhclient命令动态获取ip资源

blob.png

注意:首次启动dhcp服务器时,如果没有dhcpd.leases文件就会失败,如果没有该文件,可使用命令touch /var/lib/dhcpd/dhcpd.leases生成该文件。如果同一服务器还作为dns服务器运行bind,那么就不需要执行这一步操作,因为named服务会自动检查该文件

例1、最小的DHCP服务

#server(172.16.47.101)端配置
option domain-name "lurker.com";
option domain-name-servers 172.16.0.1;
 
default-lease-time 43200;
max-lease-time 86400;
 
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.40 172.18.100.50;
}

重启服务:systemctl restart dhcpd;在客户端获取ip地址:dhclient -d

blob.png

注意:因为该客户端已经从服务器获取过ip,所以运行dhclient -d后,它会向原dhcp服务器请求续租,所以会先有2个DHCPREQUEST,但是原来的dhcp服务器的地址池已经发生变化,里面没有了它使用的这个ip,所以它就只能再重新DHCPDISCOVER

例2、指定路由

#server(172.16.47.101)端配置
option domain-name "lurker.com";
option domain-name-servers 172.16.0.1;
option routers 172.16.100.100;
 
default-lease-time 43200;
max-lease-time 86400;
 
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.40 172.18.100.50;
}

重启服务:systemctl restart dhcpd;在客户端重新获取ip地址:dhclient -d

route -n查看路由,如果没有生效,请重启网络服务

blob.png

注意:可以在全局和subnet中同时指定路由和domainserver,但是subnet中设定的优先级更高

例3、在subnet中指定domainserver

#server(172.16.47.101)端配置
option domain-name "lurker.com";
option domain-name-servers 172.16.0.1;
option routers 172.16.100.100;
 
default-lease-time 43200;
max-lease-time 86400;
 
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.40 172.18.100.50;
option domain-name-servers 172.16.100.60;
}

重启服务:systemctl restart dhcpd;在客户端重新获取ip地址:dhclient -d

blob.png

例4、不希望dhcp服务更改/etc/resolve.conf文件

在client端修改/etc/sysconfig/network-scripts/ifcfg-eno16777736里的PEERDNS=no

blob.png

例5、固定分配IP给指定主机

#server(172.16.47.101)端配置
option domain-name "lurker.com";
option domain-name-servers 172.16.0.1;
option routers 172.16.100.100;
 
default-lease-time 43200;
max-lease-time 86400;
 
log-facility local7;
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.40 172.18.100.50;
}
 
host lurker{
hardware ethernet 00:0c:29:d9:db:32;
fixed-address 172.16.100.33;
}

重启服务:systemctl restart dhcpd;在客户端重新获取ip地址:dhclient -d

blob.png

注意:绑定的IP不能和IP地址池里的IP重复

原创文章,作者:Lurker,如若转载,请注明出处:http://www.178linux.com/66216

(0)
LurkerLurker
上一篇 2017-01-09 22:23
下一篇 2017-01-10 01:12

相关推荐

  • N22+张zhangzhang+第6周博客作业

    请详细总结vim编辑器的使用并完成以下练习题   vim编辑器是vi编辑器的增强版,是全屏文本编辑器,用于完成文本的输出、删除、查找、替换、块操作等众多功能。一般分三种模式:编辑模式、输入模式、末行模式。 vim各种按键的功能 编辑模式: 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以…

    Linux干货 2016-09-20
  • LAMP 编译安装基于2.4

    一 安装前准备 说明:     操作系统:CentOS 6.7 64位     MySQL数据库版本:mariadb-5.5.48-linux-x86_64.tar.gz     Apache 版本:httpd-2.4.12.tar.bz2…

    Linux干货 2016-11-21
  • zabbix之报警功能的实现

    一、注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的 申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号。 就可以看到用户数了,接下来的就要使用的用户的微信ID号了。点击用户查看用户的微信ID号。在浏览器查看用户的微信ID号。就是那个红色的ID了。 h…

    Linux干货 2017-03-27
  • 运维工具

      运维工具:Operations 通过工具,实现自动化运维 运维工作: BootStraping:当拿到硬件或软件才主机以后,安装操作系统 Bare Metal:pxe, cobbler(pxe的二次开发版) Virtaul Machine:image files(给予模板匹配安装) Configurati…

    Linux干货 2016-11-01
  • N24_huamao 学习计划

       每天会安排好时间按顺序看视频进行学习,由于基础比较差我会先进行笔记然后再做博客记录。需要操作的知识点会跟着视频和自己的理解去做,最后达到马哥所说的“技能”所需的要求。运维的知识点很广很多也很复杂。当然想学好后边的就要先打好基础从linux系统开始学习把重要的命令记牢应用灵活才可以。这第一步自己一定要迈好。

    Linux干货 2016-10-26
  • GRUB管理

    对于运维人员来说,想要熟练掌握linux,那么久要对linux的启动流程有一个详细的了解,而今天我们就一起来学习一下linux启动中最重要的一个阶段——GRUB引导阶段。 Linux启动流程 grup: GRand Unified Bootloader  由上图可知,grub属于系统启动过程中一个必须的阶段。而这个阶段又分为了三个小的阶段,分别是s…

    2017-09-02