多语言展示
当前在线:1414今日阅读:103今日分享:49

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

如果你是个网络管理员,只管理几台主机还好,只需手动为主机配置IP地址即可。但如果需要管理几十台甚至上百台主机呢?各种各样的问题就出现了,工作量大,效率低不说,如果配置了重复的IP,造成IP冲突 排查起来也不是那么方便。于是 DHCP 动态主机配置协议诞生了,能对网络中的主机进行集中管理和自动分配。
工具/原料
1

一台Linux主机或虚拟机(这里CentOS 6.5为例)

2

编译源码或软件源方式安装dhcp软件

方法/步骤
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

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 '即可,不过版本会比较旧

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 '来结束服务

5

服务启动后可以用 ' ps aux | grep dhcpd '查看下启动的进程,DHCP服务监听 udp 67 端口,客户端以广播的方式请求IP地址,整个局域网内,没开启DHCP服务的主机就忽视掉了请求,DHCP服务器就会响应这个请求,如果同时有多个DHCP服务器在工作肯定看哪个响应的快喽!接下来再启动台主机试试效果把,我又启动了一台XP,让其自动获取IP地址,看 是不是获取了地址池中第一个IP '10.0.0.50'呢

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也被自动获取了呢。注意都要以分号结束哦

10

现在再试试为其配置指定的IP地址,我们先把要指定主机的网卡mac地址记下来,然后给他配置10.10.10.10这个IPsubnet 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地址

11

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

注意事项
1

最好关闭iptables防火墙,或者给udp 67端口添加豁免规则

2

编译安装的可以使用killall dhcpd的方式关闭服务,当然你也可以写成服务脚本

推荐信息