zoukankan      html  css  js  c++  java
  • 2-3-配置DHCP服务器实现动态地址分配

    学习一个服务的过程:
     
    1、  此服务的概述:名字,功能,特点,端口号
    2、  安装
    3、  配置文件的位置
    4、  服务启动关闭脚本,查看端口
    5、  此服务的使用方法
    6、  修改配置文件,实战举例
    7、  排错(从下到上,从内到外)
     
    本节所讲内容:
    •        DHCP服务器工作原理
    •        使用DHCP为局域网中的机器分配IP地址
    •        使用DHCP为服务器分配固定IP地址
     
    实验环境:
    服务端:xuegod63.cn   IP:192.168.1.63
    客户端:xuegod64.cn   IP:192.168.1.64
     
    DHCP服务概述:(重点掌握DHCP的工作原理)
    名称:DHCP  - Dynamic Host Configuration Protocol  动态主机配置协议
    功能:DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:
    1、 给内部网络或网络服务供应商自动分配IP地址,主机名,DNS服务器,域名
    2、 配合其它服务,实现集成化管理功能。如:无人执守安装服务器
     
    特点:C/S 模式
    自动分配IP地址,方便管理
    DHCP不会同时租借相同的IP地址给两台主机;
    DHCP管理员可以约束特定的计算机使用特定的IP地址;
    可以为每个DHCP作用域设置很多选项;
    客户机在不同子网间移动时不需要重新设置IP地址。每次都自动获取IP地址就可以了。
     
    DHCP的缺点:
    当网络上存在多服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;
    DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP协议转发。(中继)
     
    端口:
    DHCP服务使用:端口67(bootps) 68(bootpc) 。
    例:查看
    # vim /etc/services
     
    file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
    DHCP协议由bootp协议发展而来,是BOOTP增强版本,bootps代表服务端端口, bootpc代表客户端端口
     
    bootp协议:引导程序协议(BOOTP)。它可以让无盘工作站从一个中心服务器上获得IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每个用户去设置静态IP地址。
     
    BOOTP有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,MCA地址与IP的对应是静态的。换而言之,BOOTP非常缺乏“动态性 ”,若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。
    DHCP可以说是BOOTP的增强版本,它分为两个部分:一个是服务器端,而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP环境数据。 DHCP透过“租约和回收”的概念,有效管理动态分配客户端的TCP/IP设定. 而且,作为兼容考虑,DHCP也完全照顾了BOOTP Client的需求。
     
    一般linux系统都已安装了客户端 (开发工具包)
    1. [root@xuegod63 ~]# rpm –qa | grep dhc
    2. dhclient-4.1.1-38.P1.el6.x86_64
    3. dhcp-common-4.1.1-38.P1.el6.x86_64
      
    DHCP服务运行原理:
    file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
    DHCP客户端向服务端请求过程
                       客户端C                                                                    服务器端S
                                                                                                                 目标端口      源IP               目标IP
                -------DHCPDISCOVER------->                       udp 目标67  源IP0.0.0.0 目的IP:255.255.255.255
    #即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCPdiscover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应
     
                   <------DHCPOFFER ----------      udp  68  源IP是DHCP服务器的IP, 目的IP: 255.255.255.255
    即DHCP服务器提供IP地址的阶段。在网络中接收到DHCPdiscover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCPoffer提供信息
     
                   -------DHCPREQUEST -------->                                udp    67 源IP0.0.0.0                    目的IP:255.255.255.255
    即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCPoffer提供信息,则DHCP客户机只接受第一个收到的DHCPoffer提供信息,然后它就以广播方式回答一个DHCPrequest请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址
     
                   <------DHCPACK ------------                         udp   68 源IP是服务器的IP 目的IP: 255.255.255.255
    即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPrequest请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地
     
    注意:客户端执行DHCP 广播后,如果没有DHCP服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个IP 地址配置本机地址。
    169.254.0.0/16是windows的自动专有IP寻址范围,也就是在无法通过DHCP获取IP地址时,由系统自动分配的IP地址段。 

    早先的Linux上并不会产生这条路由,现在有这条路由是为了和windows兼容。
     
    1. [root@xuegod63 ~]# route -n
    2. Kernel IP routing table
    3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    4. 192.168.1.0     0.0.0.0         255.255.255.0   U    0      0        0 eth0
    5. 169.254.0.0     0.0.0.0         255.255.0.0     U    1002   0        0 eth0
    6. 0.0.0.0         192.168.1.1     0.0.0.0         UG   0      0        0 eth0
     
    安装DHCP
    dhclient-4.1.1-38.P1.el6.x86_64.rpm                   #客户端
    dhcp-common-4.1.1-38.P1.el6.x86_64.rpm        #包括DHCP客户端和服务端共同需要的一些文件
    dhcp-4.1.1-38.P1.el6.x86_64.rpm                          #DHCP服务端
     
    [root@xuegod63 ~]# yum-y install dhcp
     
    配置文件位置:
    当DHCP 主程序包安装好后会自动生成主配置文件的范本文件
    /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
    而在/etc 目录下会建立一个空白的dhcpd.conf 主配置文件。
    ls /etc/dhcp/dhcpd.conf
    现在我们将范本配置文件复制到/etc 目录下替换掉空白dhcpd.conf 主配置文件。
    [root@xuegod63 ~]# cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf
     
    服务启动关闭脚本,查看端口
    [root@xuegod63 ~]#service dhcpd start
    正在启动 dhcpd:                                           [失败]
    #这是因为默认配置文件中分配的都是10.17.224.0 网段的IP地址。而我的配置IP地址是192.168.1.0. 必须在一个网段中。
     
    启动方法:
    方法1:
    #service dhcpd restart  /start/stop/status  
     
    方法2:
    [root@xuegod63 ~]# /etc/init.d/dhcpd  start
     
    保证开机启动:
    chkconfig dhcpd on   #配置的服务要保证开机启动
    chkconfig --list dhcpd  #查看服务当前启动级别
    chkconfig --level 3 dhcpd off   #运行级别3关闭自动加载dhcpd 服务
    chkconfig --level 3 dhcpd      #运行级别3自动加载dhcpd 服务
     
     
    修改配置文件,实战举例
    说明:
    dhcp 范本配置文件内容包含了部分参数、声明以及选项的用法,其中注释部分可以放在任何位
    置,并以“#”号开头,当一行内容结束时,以“;”号结束,大括号所在行除外
     
    可以看出整个配置文件分成全局和局部两个部分。但是并不容易看出哪些属于参数,哪些属于声明和选项。
    概念与协议:
    作用域:可以分配IP的范围 subnet (子网)
    地址池:可以分配给客户端的IP,range包括的IP
    保留地址:指定某个客户端使用一个特定IP,通过host配置的
    租约(时间):客户端可以使用这个IP地址的时间
     
    配置文件:/etc/dhcp/dhcpd.conf
    部分配置解释
     
    # option definitions common to allsupported networks...    #定义全局配置,通用于所有支持的网络选项.
    option domain-name"example.org";    #为客户端指定所属的域
    option domain-name-serversns1.example.org, ns2.example.org;  #为客户端指定DNS服务器地址
     
    default-lease-time 600;     #租约时间(秒)
    lease:租赁,租约
    作用:定义默认IP 租约时间,以秒为单位的租约时间。
    互动:如果设置的比较短,是否会出现租约时间到了以后会重新去获取ip地址,造成用户断网?
    50%:续约。(续不上继续用)
    87.5%:再次续约。(续不上找别人)
    DHCP工作站除了在开机的时候发出 DHCPrequest 请求之外,在租约期限一半的时候也会发出 DHCPrequest,如果此时得不到 DHCP服务器的确认的话,工作站还可以继续使用该IP;当租约期过了87.5%时,如果客户机仍然无法与当初的DHCP服务器联系上,它将与其它 DHCP服务器通信。如果网络上再没有任何DHCP协议服务器在运行时,该客户机必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开 始,再一次重复整个过程。要是您想退租,可以随时送出DHCPRELEASE 命令解约,就算您的租约在前一秒钟才获得的。
     
    max-lease-time number 7200;  #租约时间的最大值
    作用:定义客户端IP租约时间的最大值,当客户端超过租约时间,却尚未更新IP 时,最长可以使用该IP 的时间;
    例:
    比如,机器在开机获得IP地址后,然后关机了。这时,当时间过了default-lease-time 600秒后,没有机器向DHCP续约,DHCP会保留7200秒,保留此IP地址不用于分配给其它机器。当超过7200秒后,将不再保留此IP地址给此机器。
    注意:上面参数值都是以秒为单位的租约时间,该项参数可以作用在全局配置中,也可以作用在局部配置中。
     
    log-facility local7;   #定义日志类型为  local7 
     
    3.3 常用声明介绍
    声明一般用来指定IP 作用域、定义为客户端分配的IP 地址池等等
    声明格式如下:
    subnet 网络号 netmask 子网掩码 {
    选项或参数
    }
     
    file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
     
    注意:网络号必须与DHCP服务器的网络号相同
    下面介绍以下每个选项的含意:
    (1)range 起始IP地址  结束IP地址
    作用:指定动态IP 地址范围
    注意:可以在subnet(子网) 声明中指定多个range,但多个range 所定义IP范围不能重复 
     
    常用选项介绍
    选项通常用来配置DHCP 客户端的可选参数,比如定义客户端的DNS 地址、默认网关等等。选项
    内容都是以option 关键字开始。
    常见选项使用如下:
     
    (2)option routers  ip地址   #为客户端指定默认网关
    如:option routers  10.5.5.1;
     
    (3)option domain-name-servers  ip地址  #为客户端指定DNS 服务器地址
     
    注意:(1)、(2)、(3)选项可以用在全局配置中,也可以用在局部配置中。
     
     
    3.5 租约数据库文件
    租约数据库文件用于保存一系列的租约声明,其中包含客户端的主机名、MAC 地址、分配到的IP地址,以及IP地址的有效期等相关信息。这个数据库文件是可编辑的ASCII 格式文本文件。每
    当发生租约变化的时候,都会在文件结尾添加新的租约记录。
    DHCP 刚安装好后租约数据库文件dhcpd.leases 是个空文件
    1. [root@xuegod63 ~]# ls  /var/lib/dhcpd/dhcpd.leases
    当DHCP 服务正常运行后就可以使用cat 命令查看租约数据库文件内容了
     
    实例:
    应用案例
    公司有60 台计算机,IP地址段为192.168.0.1-192.168.0.254,子网掩码是255.255.255.0,网关为192.168.0.1,192.168.0.2-192.168.0.30 网段地址给服务器配置,客户端可以使用的地址段为192.168.0.100-200,其余剩下的IP 地址为保留地址。
    操作步骤:
    定制全局配置和局部配置,局部配置需要把192.168.0.0/24 网段声明出来,然后在该声明中指定一个IP 地址池,范围为192.168.0.100-192.168.0.200,分配给客户端使用,最后重新启动dhcpd 服务让配置生效。
     
     
    实验环境:
    互动:我的虚拟机使用桥接模式是否可行? 不行,因为你的局域网中有可能就有DHCP服务器,这样你就很难,让你的客户端是从你的DHCP服务器获得IP地址。另外,也可能造成公司局域网中其它机器因为获得了你DHCP服务器上的IP地址,而上不了网。
     
    file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
    将xuegod63和xuegod64的网卡模式改为:
     
    file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
    编辑删除整篇配置内容
    dgg   删除到文件首
    dG   删除到文件末
     
    修改配置文件
    1. subnet 192.168.0.0 netmask 255.255.255.0 {
    2. range 192.168.0.100 192.168.0.200;
    3. option domain-name-servers 192.168.0.1;
    4. option domain-name "xuegod63.cn";
    5. option routers 192.168.0.1;
    6. option broadcast-address 192.168.0.255;
    7. default-lease-time 600;
    8. max-lease-time 7200;
    9. }
     
    确保IP地址为192.168.0.0网段
    1. [root@xuegod63 ~]# ifconfig
    2. eth0     Link encap:Ethernet  HWaddr00:0C:29:E0:19:A9  
    3.          inet addr:192.168.0.63 Bcast:192.168.0.255 Mask:255.255.255.0
     
    启动服务
    1. [root@xuegod63 ~]# service dhcpd restart
    2. 正在启动 dhcpd:                                           [确定]
    3. 验证:
    4. 登录到xuegod64主机
    5. 开启ip的自动获取
    6. 重启网络通过dhcp服务端分配地址信息
    查看分配的IP
    1. [root@xuegod64 ~]# ifconfig
    2. eth0     Link encap:Ethernet  HWaddr 00:0C:29:0F:90:4F  
    3.          inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
     
    查看默认网关
    1. [root@xuegod64 ~]# route -n
    2. Kernel IP routing table
    3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    4. 192.168.0.0     0.0.0.0         255.255.255.0   U    0      0        0 eth0
    5. 169.254.0.0     0.0.0.0         255.255.0.0     U    1002   0        0 eth0
    6. 0.0.0.0         192.168.0.1     0.0.0.0         UG   0      0        0 eth0
     
    查看DNS
    1. [root@xuegod64 ~]# cat/etc/resolv.conf
    2. ; generated by/sbin/dhclient-script
    3. search xuegod63.cn cn
    4. nameserver 192.168.0.1
     
    查看租约数据库文件
    1. [root@xuegod63 ~]# cat/var/lib/dhcpd/dhcpd.leases
    2. # The format of this file isdocumented in the dhcpd.leases(5) manual page.
    3. # This lease file was writtenby isc-dhcp-4.1.1-P1
    4. server-duid"00010001362100340014)34031251";
    5. lease 192.168.0.100 {
    6.   starts 5 2016/03/25 14:11:54;
    7.   ends 5 2016/03/25 14:21:54;
    8.   cltt 5 2016/03/25 14:11:54;
    9.   binding state active;
    10.   next binding state free;
    11.   hardware ethernet 00:0c:29:0f:90:4f;
    12. }
     
    例2:IP地址绑定
    在DHCP 中的IP 地址绑定用于给客户端分配固定IP 地址。比如服务器需要使用固定IP 地址就可以使用IP 地址绑定,通过MAC 地址与IP 地址的对应关系为指定的物理地址计算机分配固定IP地址。
    整个配置过程需要用到 host 声明和hardware、fixed-address 参数。
    (1)host 主机名 {......}
    作用:用于定义保留地址
    (2)hardware 类型 硬件地址
    作用:定义网络接口类型和硬件地址。常用类型为以太网(ethernet),地址为MAC 地址。
    (3)fixed-address IP 地址
    作用:定义DHCP 客户端指定的IP 地址。
    1. subnet 192.168.0.0 netmask255.255.255.0 {
    2.   range 192.168.0.100 192.168.0.200;
    3.   option domain-name-servers 192.168.0.1;
    4.   option domain-name "xuegod63.cn";
    5.   option routers 192.168.0.1;
    6.   option broadcast-address 192.168.0.255;
    7.   default-lease-time 600;
    8.   max-lease-time 7200;
    9.   host xuegod64 {    #xuegod64可自定义,这一段内容要写在subnet字段中和subnet配合使用
    10.         hardware ethernet 00:0C:29:0F:90:4F;
    11.         fixed-address 192.168.0.254;
    12.   }
    13. }
     
    验证:
    xuegod63重启dhcp服务
    1. [root@xuegod63 ~]# servicedhcpd restart
    2. 关闭 dhcpd:                                              [确定]
    3. 正在启动 dhcpd:                                           [确定]
    4. xuegod64重启network服务
    5. service network restart
     
    注意:划分子网时,如果选择直接配置多作用域实现动态IP分配的任务,则必须要为DHCP 服务
    器添加多块网卡,并配置多个IP 地址,否则DHCP 服务器只能分配与其现有网卡IP 地址对应网
    段的作用域。
     
    Linux下ntpdate时间同步
    Ntp服务安装
    yum –y install ntp
     
    时间同步方法
    方法一:
    同步命令               
    # ntpdate ntp 域名或ip          例:# ntpdate192.168.1.10
     
    http://www.pool.ntp.org是NTP的官方网站,在这上面我们可以找到离我们国家的NTP Server cn.pool.ntp.org.它有3个服务器地址:
    服务器一:        1.cn.pool.ntp.org
    服务器二:        2.asia.pool.ntp.org
    服务器三:        3.asia.pool.ntp.org
    (直接用域名有时有问题,可以先Ping出他们的IP,然后用IP地址同步)
     
    自动运行同步时间脚本设定
    # crontab –e  (如果没有安装crond 安装yum –y installvixie-cron)
    添加脚本例子如下:
    */20 * * * *       /usr/sbin/ntpdate 1.cn.pool.ntp.org           #每20分钟执行一次
    30 5 * * *          /usr/sbin/ntpdate ntp1.aliyun.com          #每天早晨5点半执行
    ※ 前面五个*号代表五个数字,数字的取值范围和含义如下:
    分钟(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6)//0代表星期天
    设定完毕后,可使用#crontab –l 查看上面的设定。


    方法二:
    使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。
    要注意的是,ntpd 有一个自我保护设置: 如果本机与上源时间相差太大, ntpd 不运行. 所以新设置的时间服务器一定要先ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务 运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.


    扩展知识:
    1、让NTP服务同步硬件时间
    最后提及一点,ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd 文件。
    在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。
    如下:
    1. [root@xuegod63~]# vim/etc/sysconfig/ntpd      #允许BIOS与系统时间同步
    2. # Drop root to id 'ntp:ntp' bydefault.
    3. SYNC_HWCLOCK=yes
    4. OPTIONS="-u ntp:ntp -p/var/run/ntpd.pid -g"
    手工同步系统时间到硬件时间
    hwclock –r      #查看BIOS时间命令
    hwclock -w   #将当前系统时间写入BIOS中。
     
    如何修改时间:
    1. [root@xuegod63 ~]# date -s "2017-5-1021:13"
  • 相关阅读:
    微信小程序开发之tab导航栏
    微信小程序开发之日期组件
    微信小程序运行机制
    iis部署错误:HTTP 错误 500.21
    web API请求与参数获取
    C#API接口调试工具
    微信小程序之自定义组件与使用
    微信小程序开发之拼接json数组字符串
    IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证
    IdentityServer4 中文文档 -10- (快速入门)使用密码保护API
  • 原文地址:https://www.cnblogs.com/zhanghe9527/p/6839222.html
Copyright © 2011-2022 走看看