当前位置: 代码迷 >> 综合 >> LINUX DHCP 服务配置详解
  详细解决方案

LINUX DHCP 服务配置详解

热度:15   发布时间:2023-12-13 17:22:28.0

安装软件包

         yum install -y dhcp
         yum install -y dhcp-common
         yum install -y dhcp-lib

dhcp包包含的主要文件

       rpm -ql dhcp    #查看dhcp包安装了哪些文件和程序

       /etc/dhcpd.conf                                                                 #主配置文件
      /etc/rc.d/init.d/dhcpd                                                           #服务启动脚本
      /etc/rc.d/init.d/dhcrelay                                                       #继dhcp服务启动脚本
      /etc/sysconfig/dhcpd                                                           #次要配置文件
      /etc/sysconfig/dhcrelay
      /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example                #示例文件
      /ust/lib/systemd/system/dhcpd.services                            # 服务启动脚本 systemctl start dhcpd
      /var/lib/dhcpd/dhcpd.leases                                               #租约信息存放的文件

客户机和服务器配置文件

           /var/lib/dhclient/dhclient.leases          #客户端租约文件

           /var/lib/dhcpd/dhcpd.leases               #服务器端的租约文件在

          /etc/dhcp/dhcpd.conf                            #dhcp配置文件

服务端口对应配置文件

         cat   /etc/services                                              #linux下基本服务的端口,协议,描述等信息。

            http            80/tcp          www www-http    # WorldWideWeb HTTP      httpd服务

           bootps          67/tcp                          # BOOTP server   这就是dhcp服务端口
           bootps          67/udp                        ##是dhcp服务

 

常用命令

        systemctl start dhcp

       systemctl stop dhcpd

配置dhcp服务器

     配置文件都放在/etc/dhcp目录下,主配置文件为dhcpd.conf

  •      编写dhcpd.conf  (可以复制dhcpd.conf.example模板文件来修改,也可以直接编辑dhcpd.conf)
##  1、拷贝示例文件覆盖原来的空文件。通过rpm -ql dhcp查看自己模板配置文件(不一定和我一样的版本)    
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf     ## 2、预先处理,去掉 注释和空行,保留 生效语句,和可选语句。 
sed -ri '/(^#[[:space:]]+|^#$|^$)/{d}'  /etc/dhcp/dhcpd.conf

    删除没用的那些行,保留内容如下:

主配置文件样板:#ddns-update-style none;
#authoritative;
log-facility local7;subnet 10.1.1.0  netmask 255.255.255.0 {range 10.1.1.100  10.1.1.200;                                 ##地址池 option domain-name-servers  202.96.128.166;                   ##DNS服务器地址option domain-name "class.com";                               ##域名option routers 10.1.1.1;                                      ##默认路由option broadcast-address 10.1.1.255;                          ##广播地址default-lease-time 300;                                       ##默认租约时间 max-lease-time 7200;                                          ##最大租约时间 
}

注意:dhcp服务器必须要有一张网卡在10.1.1.0/24网络,并且它只会给这张网卡所在网络(广播域)主机分配ip。

 

  • 一个dhcp服务器给多局域网提供服务

          

      1、先将两张网卡接入两个不同网络,并设置静态ip

      2、修改配置文件/etc/dhcp/dhcpd.conf  如下:

#ddns-update-style none;
#authoritative;
log-facility local7;subnet 10.1.1.0  netmask 255.255.255.0 {range 10.1.1.100  10.1.1.200;                                 ##地址池 option domain-name-servers  202.96.128.166;                   ##DNS服务器地址option domain-name "class.com";                               ##域名option routers 10.1.1.1;                                      ##默认路由option broadcast-address 10.1.1.255;                          ##广播地址default-lease-time 300;                                       ##默认租约时间 max-lease-time 7200;                                          ##最大租约时间 
}subnet 192.168.100.0  netmask 255.255.255.0 {range 192.168.100.3  192.168.100.100;                         ##地址池 option domain-name-servers  202.96.128.166;                   ##DNS服务器地址option domain-name "class.com";                               ##域名option routers 192.168.100.1;                                 ##默认路由option broadcast-address 192.168.100.255;                     ##广播地址default-lease-time 300;                                       ##默认租约时间 max-lease-time 7200;                                          ##最大租约时间 
}

   小结:系统在收到dhcp请求时,会看是哪张网卡收到的请求,根据该网卡的ip地址选择对应配置文件里的地址池给对应网络主机分配地址。

mac绑定ip (嵌套一段就好)

#ddns-update-style none;
#authoritative;
log-facility local7;subnet 10.1.1.0  netmask 255.255.255.0 {range 10.1.1.100  10.1.1.200;                                 ##地址池 option domain-name-servers  202.96.128.166;                   ##DNS服务器地址option domain-name "class.com";                               ##域名option routers 10.1.1.1;                                      ##默认路由option broadcast-address 10.1.1.255;                          ##广播地址default-lease-time 300;                                       ##默认租约时间 max-lease-time 7200;                                          ##最大租约时间 host serverftp {            ## 备注名称,可以自行定义。hardware ethernet 12:34:56:78:AB:CD;  ##静态绑定mac和ipfixed-address 10.1.1.5;}
}

dhcp配置文件中下面配置作用:客户机通过dhcp获得dns域名和IP地址,并且将dns--ip 保存到/etc/resolv.conf中!
             option domain-name-servers  202.96.128.166;                   ##DNS服务器地址
             option domain-name "class.com";                                ##域名


客户机/etc/resolv.conf配置文件

            ; generated by /usr/sbin/dhclient-script      ##脚本加载客户端租约文件/var/lib/dhclient/dhclient.leases
           search localdomain     ##dhcp分配的dns域名
          nameserver 192.168.109.2     ##dhcp分配的dns服务器的ip

 

 默认租约时间 与 最大租约时间
      注意:这里的时间都是utc时间,比如我们是15:00获取的ip 配置文件里显示的是07:00,比北京时间少8小时 

      客户机续约过程如下:
                假如:默认使用 10 小时租约期 ,10小时内续约,可以继续使用该IP地址。
                           1、在线:第5小时找一次dhcp自动续约
                           2、(1请求失败)8.5小时的时候,再尝试
                           3、(2请求失败)找别的dhcp服务器
                           4、(3请求失败)继续使用原先的IP地址,直到过期。根据默认租约期限

                ####服务器的 /var/lib/dhcpd/dhcpd.lease 信息文件。
                             

                              starts 起始时间点:
                              ends 结束(过期时间点):
                              相隔时间= default-lease-time 的设置。
                              (从这个时间间隔中可以推测出下一次该IP地址的续约时间。)


                   #### 客户端的 /var/lib/dhclient/dhcpd-eth0.lease 信息文件。
                              
                       得到的资源信息:
                       renew:下一次去找dhcpd服务器续约的时间点。 = 租约时间的50%
                       rebind:renew失败后,重试的时间点。              =租约时间的 85% 左右
                       expire:过期的时间点
                        每次续约成功,就会更新一次 /var/lib/dhclient/dhcpd-eth0.lease 租约文件。

               最大租约期限
                         max-lease-time 43200; 最大租约时间(秒)12小时
                         说明:最大和默认租约时间,机制一样,在客户端没有特殊的租约时间请求的时候,都会
                              统一的指 派默认租约时间(多数情况)。 如果客户端请求了自定义的租约时间,服务器将会启用最大租约时
                              间作为限制,客户端自己请求的租约时间不能大于该值。max time
                       

自定义 日志输出路径和级别

   
        update /etc/rsyslog.conf file
       # Save boot messages also to boot.log
                 local7.* /var/log/boot.log ##默认与 boot.log 放在一起,
                local2.* /var/log/dhcpd.log ## 自定义独立存放。

             #define KERN_EMERG "<0>" /* system is unusable */
            #define KERN_ALERT "<1>" /* action must be taken immediately */
            #define KERN_CRIT "<2>" /* critical conditions */
            #define KERN_ERR "<3>" /* error conditions */
            #define KERN_WARNING "<4>" /* warning conditions */
            #define KERN_NOTICE "<5>" /* normal but significant condition */
            #define KERN_INFO "<6>" /* informational */
            #define KERN_DEBUG "<7>" /* debug-level messages */