DHCP服务器的编译安装与配置

2025-09-24 20:23:37

1、首先我们先了解下 DHCP,DHCP采用客户端/服务器的工作模式,由客户端向服务器发出获取IP地址的请求,服务器接收到请求后会把网络配置信息发送给客户端,实现IP地址的动态分配。DHCP提供三种地址分配策略:

1:手工分配          在服务器上指定为哪些主机分配固定的IP,也就是说这些主机永远获取的都是给它们设置好的IP。

2:自动分配          地址分配给客户机后,这个地址就永远给了客户机。这样客户机不在线也不会回收IP,会造成浪费,不同于手工分配。

3:动态分配          也是用的最多的策略了,它将IP地址分配出去后会有个租约,等租约时间到了,就会回收IP,如果主机还在线,在租约时间快到时,会向DHCP服务器发送续约请求,以便继续使用。

2、以上手工分配适合于打印机、其他提供web服务、ftp服务的主机等,因为它们需要一个固定的IP地址。动态分配能有效解决IP地址不够用的问题,租约到期后被回收的IP地址会重新给新请求的客户端使用。

DHCP的安装可以通过从软件源直接安装或自己编译安装。编译安装的话下载地址在:https://www.isc.org/downloads/

这里选择编译安装DHCP,下图为DHCP源码包的官方下载页面,我们选择最新版dhcp-4.3.1.tar.gz

DHCP服务器的编译安装与配置

3、首先我们先解压源码包

# tar  xf  dhcp-4.3.1.tar.gz

指定安装目录和配置文件目录

# cd  dhcp-4.3.1

# ./configure  --prefix=/usr/local/dhcp  --sysconfdir=/etc

配置过程非常快,等配置完了可以echo $?确定下是否成功

接着就可以编译安装了,请耐心等待编译完成

# make  &&  make  install

如果采用软件源安装的话直接 " yum  install  dhcp "即可,不过版本会比较旧

DHCP服务器的编译安装与配置

4、接着将配置文件复制过去,在安装目录的 server 目录中

# cp  server/dhcpd.conf.example  /etc/dhcpd.conf 

生产地址池文件,用于记录已经分配出去的IP地址

# touch  /var/db/dhcpd.leases

接着修改配置文件,在最后添加提供服务的网段

subnet 10.0.0.0 netmask 255.0.0.0

{

    range 10.0.0.50 10.0.0.100;

}

我这里为10.0.0.0网段提供服务,range定义了地址池,记得修改成适合你们的,然后就可以试着启动服务了。

#  /usr/local/dhcp/sbin/dhcpd 

如果是以软件源方式安装的dhcp软件,直接 service dhcpd start 

我们可以用" killall  dhcpd "来结束服务

DHCP服务器的编译安装与配置

DHCP服务器的编译安装与配置

5、服务启动后可以用 " ps aux | grep dhcpd "查看下启动的进程,DHCP服务监听 udp 67 端口,客户端以广播的方式请求IP地址,整个局域网内,没开启DHCP服务的主机就忽视掉了请求,DHCP服务器就会响应这个请求,如果同时有多个DHCP服务器在工作肯定看哪个响应的快喽!

接下来再启动台主机试试效果把,我又启动了一台XP,让其自动获取IP地址,看 是不是获取了地址池中第一个IP "10.0.0.50"呢

DHCP服务器的编译安装与配置

6、接下来看下dhcpd的配置文件 " /etc/dhcpd.conf "

dhcpd.conf中由声明、注释、参数、选项四大类语句构成

注释就是"#"开头的注释信息。声明定义网络布局,刚才的subnet就属于声明。参数是定义dhcpd服务的各种网络参数,如租约的时间、主机名等。选项是以option作为开始,为客户机指定主机名、广播地址、子网掩码等

声明:

          include "filename"         将指定的文件内容添加到配置文件中

          shared-network 名称 {

                         【参数】

                         【声明】

          }                                     指定共享相同网络的子网

          subnet 网段 netmask 子网掩码 {

                         【参数】

                         【声明】

          }                                     定义哪些IP分配给客户,一般与range结合使用

          range   起始地址  终止地址;    定义IP范围,终止地址可以没有

          host 主机名 {

                         【参数】

                         【声明】

          }                                   定义保留地址

          group {

                         【参数】

                         【声明】

         }                                    为一组参数提供声明

7、参数:

          ddns-hostname 名称          指定使用的主机名,不设置默认当前主机名

          ddns-domainname  名称           指定域名

          ddns-update-style  参数    指定DNS的更新模式 { ad-hoc | interim | none }

          default-lease-time 时间     默认租约时间(单位秒)

          max-lease-time 时间          最大租约时间

          server-name 名称               告诉客户端服务器的名称

          hardware 接口类型 硬件地址       指定客户机硬件接口类型和mac地址

          fixed-address IP地址 【,IP地址】        为客户端提供一个或多个IP地址,该参数只能出现在host声明中

8、选项:  前面需加option

          broadcast-address  广播地址            指定客户端广播地址

          domain-name 域名                           指定客户端域名

          domain-name-servers  地址             指定客户端的DNS服务器

          host-name 主机名                             指定客户端主机名

          ntp-server 地址                                 指定时间服务器地址

          routers 地址                                      指定默认网关IP

          subnet-mask  子网掩码                     指定客户端子网掩码 

9、比如我们为10.0.0.0网段提供服务,DNS服务器为8.8.8.8,网关为10.0.0.254,子网掩码为255.0.0.0,默认租约时间6小时.

subnet 10.0.0.0 netmask 255.0.0.0

{

        range   10.0.0.50 10.0.0.100;

        option subnet-mask    255.0.0.0;

        option routers        10.0.0.254;

        option domain-name-servers    8.8.8.8;

        default-lease-time  21600;

}

看看是不是网关和DNS也被自动获取了呢。注意都要以分号结束哦

DHCP服务器的编译安装与配置

10、现在再试试为其配置指定的IP地址,我们先把要指定主机的网卡mac地址记下来,然后给他配置10.10.10.10这个IP

subnet 10.0.0.0 netmask 255.0.0.0

{

        range   10.0.0.50 10.0.0.100;

        option subnet-mask    255.0.0.0;

        option routers        10.0.0.254;

        option domain-name-servers    8.8.8.8;

        server-name     mydhcp;

        default-lease-time  21600;

        host winXP {

                hardware ethernet 00:0C:29:6E:4B:A1;

                fixed-address  10.10.10.10;

        }

}

这回使用了 ipconfig -all 显示的更详细了,这里连服务器的地址也列出来了,也可以使用这个参数查看网卡的mac地址

DHCP服务器的编译安装与配置

11、演示用的是Windows主机,如果是Linux主机需要修改网卡的配置文件,设置"BOOTPROTO=dhcp",然后可以通过 dhclient eth0 来给eth0这块网卡获取IP地址。其他的参数大家有兴趣的话可以自己试验试验,这里就不多做演示了。好了 就到这里吧!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢