设为首页 收藏本站
查看: 1000|回复: 0

[经验分享] CentOS 7.3 搭建DHCP服务器

[复制链接]

尚未签到

发表于 2018-4-20 09:02:58 | 显示全部楼层 |阅读模式
  一、DHCP服务简介
1. DHCP服务简介
  DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,DHCP 协议主要是用来自动为局域网中的客户机分配 TCP/IP 信息的网络协议,并完成每台客户机的 TCP/IP 协议配置。当我们将局域网中客户机IP地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户机自动分配IP地址,使得客户机能够使用这个IP地址。
  DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。所有的IP网络参数(包括IP地址、网关和DNS服务器地址等)都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配的IP网络参数。
  2. 使用DHCP的优点

  •   减少管理员的工作量;
  •   避免IP冲突;
  •   减少收入错误的可能;
  •   能方便地更改网络的IP网段;
  •   移动计算机后不用重新配置网络信息;
  •   提高IP地址的利用率。
  3. DHCP的工作过程
DSC0000.jpg


  •   第1步:(请求DHCP服务器)
  •   客户端在局域网广播发送 DHCP discovery包,寻找DHCP服务器,即向255.255.255.255发送特定的广播信息,每一台安装了TCP/IP协议的主机都会有这个广播地址,但只有DHCP服务器才会做出回应。

  •   第2步:(提供IP地址)
  •   服务器收到DHCP discovery包后,向客户机发送一个包含分配的IP地址和其它设置的 DHCP offer 包,目的告诉客户机,我能为你提供IP地址。

  •   第3步:(选择IP地址)
  •   客户机收到DHCP offer提供信息包后,(如果客户机在一段时间内没有接收到DHCP服务器发出dhcp offer包,则会重新发送dhcp discover。如果广播区域内不止一台dhcp服务器,则由客户机决定使用哪个)客户机选择第一个接收到的提供信息包,以广播的方式再发送一个DHCP request请求信息包,客户机向服务器请求IP地址。

  •   第4步:(IP地址提供确认)
  •   服务端收到客户机回应的DHCP request 请求信息包之后,便向客户机发送一个DHCP ack 确认信息包,告诉客户机可以使用它提供的IP地址。

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

  •   第6步:(更新租约)
  •   DHCP服务器向客户机出租的IP地址都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果客户机要延长其IP租约,必须更新其IP租约。客户机启动时和IP租约期限过一半时,客户机都会自动向DHCP服务器发送更新其IP租约的信息。
  4. DHCP客户机自动更新IP租约
  客户机租约期限已过去50%,自动尝试更新租约;当期限过去87.5% 时,发出广播再次更新租约;若租约已经到期(100%),客户机必须立即停止使用当前的IP地址。然后客户机开始新的DHCP租约过程,尝试租用新的IP地址。
  二、系统环境

  系统平台: CentOS 7.3
  DHCP Server: 192.168.8.88
  更改主机名,写/etc/hosts记录

  #  vim /etc/hosts
  192.168.8.88   DHCP         --最后添加DHCP服务器IP地址和主机名/别名
  关闭防火墙
#  systemctl  stop  firewalld              --临时关闭防火墙   #  systemctl  disable  firewalld          --永久关闭防火墙
  关闭selinux
  临时关闭:
#  setenforce 0
  永久关闭:
#  vim  /etc/selinux/config  SELINUX=disabled                 --将enforcing改为disabled
  #  reboot                                    --重启系统永久生效
  三、CentOS下的DHCP服务
  准备两台机器,一台作为DHCP服务器,一台作为客户机,如下图:
DSC0001.jpg

  1. 在服务器上安装DHCP软件包
#  yum  -y  install  dhcp*         --安装dhcp软件包  如果已经安装过了,则显示“无须任何处理”
DSC0002.jpg

  安装好后,配置文件目录:/etc/dhcp/dhcpd.conf
  分给客户端IP的记录文件:/var/lib/dhcpd/dhcpd.leases
  2. 配置DHCP
  把系统默认的样例复制到/etc/dhcp/dhcpd.conf文件里
  #  cp  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf
  cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y           --输y覆盖原文件
DSC0003.jpg
  #  vim  /etc/dhcp/dhcpd.conf                           --修改配置文件
  7   option domain-name "example.org";                 --DNS域名
  8   option domain-name-servers ns1.example.org, ns2.example.org;     --DNS的域服务器
  9
  10   default-lease-time 600;             --默认的租约时间,秒为单位
  11   max-lease-time 7200;                --最大的租约时间,秒为单位
  14   #ddns-update-style none;         --表示要不要把IP地址的更新情况告诉DNS服务器,默认是关闭的
  22   log-facility local7;                       --定义日志服务,可以在日志配置文件中查看具体日志位置,默认是:/var/log/boog.log,但是在/var/log/messages里面也会记录dhcp日志
  47   subnet 192.168.8.0 netmask 255.255.255.0 {      --分配的网段及子网掩码,代表只在192.168.8.x这个C类网段里生效,子网掩码设为255.255.255.0
  48   range 192.168.8.30 192.168.8.60;                        --代表给客户机分配可用的IP范围,起始到结束,尽量不要包含DHCP服务器的IP地址
  49   option domain-name-servers 192.168.8.88;       --配置要分配给客户端的DNS地址,这里我们设为DHCP服务器的IP地址
  50   option domain-name "internal.example.org";    --DNS的域名
   51   option routers 192.168.8.88;                               --配置分配给客户机的路由网关,这里我们设为DHCP服务器的IP地址
   52   option broadcast-address 192.168.8.255;           --给客户机指定广播地址,配置192.168.8.x这个网段的广播地址
   53   default-lease-time 600;                                       --指定租约时间,秒为单位
   54   max-lease-time 7200;                                         --指定最大租约时间,秒为单位
   55   }
   75   host fantasia {                                                     --将MAC地址和IP绑定,host后面的名字随意,如:fantasia
   76   hardware ethernet 08:00:07:26:c0:a5;                --MAC地址
   77   fixed-address fantasia.fugue.com;                      --IP地址
   78   }
   85   class "foo" {                                                         --定义多个子网,class后面写组名
   86   match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
   87   }
   88
   89   shared-network 224-29 {                                    --定义多个子网,要从大往小写
   90       subnet 10.17.224.0 netmask 255.255.255.0 {
   91           option routers rtr-224.example.org;
   92       }
   93       subnet 10.0.29.0 netmask 255.255.255.0 {
   94           option routers rtr-29.example.org;
   95       }
   96       pool {
   97           allow members of "foo";
   98           range 10.17.224.10 10.17.224.250;
   99       }
  100       pool {
  101           deny members of "foo";
  102           range 10.0.29.10 10.0.29.230;
  103       }
  104   }
修改红色标注位置就可以了,修改完成之后,保存退出。


  3、启动DHCP服务
  #  systemctl  restart  dhcpd.service        --重启DHCP服务
  #  systemctl  enable  dhcpd.service        --设置为开机自启动
  #  netstat  -anlp  |  grep  dhcpd             --查看dhcp服务端口为67
DSC0004.jpg


  4、来到客户机验证
  把客户端机的网卡配置成dhcp,再重启网络服务
  #  vim  /etc/sysconfig/network-scripts/ifcfg-ens33
  BOOTPROTO=dhcp                                 --网卡指定方式改为dhcp
  #  systemctl  restart  network.service          --重启网卡
DSC0005.jpg

  打开日志文件查看分配的IP地址
  服务器:
#  tail  -f  /var/log/messages           --在服务器上监听日志
  客户机:
  打开两个终端窗口:一个查看日志,一个重启网络。
  查看日志
#  tail  -f  /var/log/messages
  重启网络
#  systemctl  restart  NetworkManager    --重启这个服务,每次重启网络服务时,系统都会重新去DHCP服务器上获取IP地址
  查看IP

#  ifconfig                         --查看IP
DSC0006.jpg

  查看网关

#  route  -n  |  grep  UG    --查看网关
DSC0007.jpg

查看路由

#  cat  /etc/resolv.conf     --查看路由
DSC0008.jpg



  5、如果要把客户机分配的IP给固定的话,可以在服务器做如下配置
  #  vim  /etc/dhcp/dhcpd.conf                       --分给客户机IP的记录文件
  在文件的最下面加上下面一段代码即可
  75 host Client {                                             --host后面接的是客户机主机名称,可以自定义,建议为主机名
  76   hardware ethernet 00:0c:29:82:6f:db;    --代表客户机的物理MAC地址
  77   fixed-address 192.168.8.40;                   --代表如果有遇到物理MAC地址为上面一行的,则分配这行的IP给它

  78 }
#  systemctl  restart  dhcpd.service               --重启DHCP服务
测试,重复第4步
  

  6、客户机获取IP
  先清除客户机IP地址缓存
  #  systemctl  restart  NetworkManager         --重启这个服务,每次重启网络服务时,系统都会重新去DHCP服务器上获取IP地址
#  ifconfig                                                       --查看IP,应该为设定的IP,即192.168.8.40
DSC0009.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449422-1-1.html 上篇帖子: CentOS 7 安装强制使用GPT分区 下篇帖子: CentOS下用yum命令安装jdk
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表