如何在linux服务器上配置DHCP服务

如何在linux服务器上配置DHCP服务,第1张

1安装dhcp软件包

#rpm –ivh dhcp-301-12_ELi386rpm

2配置文件dhcpdconf

由于dhcpdconf默认没有包括在软件包中,所以要最近创建

#cp /usr/share/doc/dhcp-302/dhcpdconfsample /etc/dhcpdconf

3编辑dhcpdconf

#vi /etc/dhcpdconf

配置文件的基本格式

Subnet 19216810 netmask 2552552550 { range 1921681100 1921681200}

声明了网络地址是19216810子网掩码是2552552550的子网中,ip地址从1921681100~1921681200之间的地址用于DHCP客户端进行动态地址分配)

在dhcpdconf配置文件中可以包括声明、参数和选项3种基本格式

Subnet是常用的声明,声明中的设置(大括号中的内容)在整个声明范围中有效;

Subnet关键字后面设置子网的网络地址,netmask关键字后面设置子网掩码

参数由设置项和设置值组成,根据参数所在位置的不同,参数的位置可作用于全局或指定的声明中,参数是以“;”结束的,如:

Default-lease-time 21600;(默认释放时间)

max-lease-time 43200;(最大释放时间)

选项总是由option关键字引导,后面跟具体的选项和选项的设置值,选项根据所在的位置不同可作用于全局或某个声明中,选项也是以“;”结束的,如:

Option routers 19216811 (网关)

Opyion subnet-mask 2552552550 (子网掩码)

使用host声明设置主机属性

host server01{

hardware Ethernet 0:c0:c3:22:46:81;

fixed-address 192168111;

option subnet-mask 2552552550

option routers 19216811;

}

上面的配置实例中使用host声明了名为server01的主机,其MAC地址为0:c0:c3:22:46:81,为主机分配使用的ip地址为192168111,同时为该主机设置的子网掩码是2552552550,网关地址是19216811

多网络接口时需要配置的文件

# vi /etc/sysconfig/dhcpd

DHCPDARGS=eth0

表示dhcp将只在eth0网络接口上提供DHCP服务。

4dhcpd服务的启动与停止

Dhcpd服务的启动脚本位于/etc/initd/dhcpd

启动dhcpd服务

#service dhcpd start

停止dhcpd服务

#service dhcpd stop

修改启动状态

#chkconfig –level 35 dhcpd on

工具/原料

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

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

方法/步骤

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

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

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

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

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

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

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

首先我们先解压源码包

# tar xf dhcp-431targz

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

# cd dhcp-431

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

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

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

# make && make install

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

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

# cp server/dhcpdconfexample /etc/dhcpdconf

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

# touch /var/db/dhcpdleases

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

subnet 10000 netmask 255000

{

range 100050 1000100;

}

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

# /usr/local/dhcp/sbin/dhcpd

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

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

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

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

接下来看下dhcpd的配置文件 " /etc/dhcpdconf "

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

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

声明:

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

shared-network 名称 {

参数

声明

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

subnet 网段 netmask 子网掩码 {

参数

声明

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

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

host 主机名 {

参数

声明

} 定义保留地址

group {

参数

声明

} 为一组参数提供声明

参数:

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声明中

选项: 前面需加option

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

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

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

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

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

routers 地址 指定默认网关IP

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

比如我们为10000网段提供服务,DNS服务器为8888,网关为1000254,子网掩码为255000,默认租约时间6小时

subnet 10000 netmask 255000

{

range 100050 1000100;

option subnet-mask 255000;

option routers 1000254;

option domain-name-servers 8888;

default-lease-time 21600;

}

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

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

subnet 10000 netmask 255000

{

range 100050 1000100;

option subnet-mask 255000;

option routers 1000254;

option domain-name-servers 8888;

server-name mydhcp;

default-lease-time 21600;

host winXP {

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

fixed-address 10101010;

}

}

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

11

演示用的是Windows主机,如果是Linux主机需要修改网卡的配置文件,设置"BOOTPROTO=dhcp",然后可以通过 dhclient eth0 来给eth0这块网卡获取IP地址。

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

     编写dhcpdconf  (可以复制dhcpdconfexample模板文件来修改,也可以直接编辑dhcpdconf)

## 1、拷贝示例文件覆盖原来的空文件。通过rpm -ql dhcp查看自己模板配置文件(不一定和我一样的版本)

cp /usr/share/doc/dhcp-425/dhcpdconfexample /etc/dhcp/dhcpdconf

## 2、预先处理,去掉 注释和空行,保留 生效语句,和可选语句。

sed -ri '/(^#[[:space:]]+|^#$|^$)/{d}' /etc/dhcp/dhcpdconf

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

主配置文件样板:

#ddns-update-style none;

#authoritative;

log-facility local7;

subnet 10110 netmask 2552552550 {

range 1011100 1011200; ##地址池

option domain-name-servers 20296128166; ##DNS服务器地址

option domain-name "classcom"; ##域名

option routers 10111; ##默认路由

option broadcast-address 1011255; ##广播地址

default-lease-time 300; ##默认租约时间

max-lease-time 7200; ##最大租约时间

}

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

安装DHCP包

[root@miner-k ~]# yum -y install dhcp

[root@miner-k ~]# rpm -ql dhcpx86_64

/etc/dhcp

/etc/dhcp/dhcpdconf # DHCP的配置文件

/etc/dhcp/dhcpd6conf

/usr/sbin/dhcpd # DHCP的服务器端的主进程

/usr/sbin/dhcrelay # DHCP的中继服务器的进程

/var/lib/dhcpd/dhcpdleases #DHCP的租约记录

修改配置文件

option domain-name "iscorg"; # 指定/etc/resolvconf 中search后的参数

option domain-name-servers 114114115115, 114114114114; # DNS服务器的地址

subnet 102542390 netmask 255255255224 {

option routers 2042542391; #指定网关

range 1025423910 1025423920; # 指定DHCP的地址池,Linux分配IP地址是由大到小的分配,windows中分配是由小到大分配

option routers rtr-239-0-1exampleorg, rtr-239-0-2exampleorg;

}

# 通过MAC地址指定IP对应的主机

host fantasia {

hardware ethernet 08:00:07:26:c0:a5; #网卡的mac地址

fixed-address 1025423930; # 指定不在Range范围内的地址

DHCP 对应端口

服务器端 UDP 67

客户端 UDP 68

实例部署DHCP服务器

修改配置文件

[root@miner-k ~]# vim /etc/dhcp/dhcpdconf

subnet 1921681000 netmask 2552552550 {

range 192168100200 192168100210;

option domain-name-servers 114114114114,114114115115;

option domain-name "minerexampleorg";

option routers 1921681001;

default-lease-time 600;

max-lease-time 7200;

}

启动DHCP服务器

[root@miner-k ~]# service dhcpd restart

Starting dhcpd: [ OK ]

检查DHCP的监听端口

[root@miner-k ~]# netstat -anlp | grep 67

udp 0 0 0000:67 0000: 4841/dhcpd

dhcp服务器,就一个配置文件,就是/etc/dhcpdconf。它是有模板的,你可以i根据模板进行修改就可以了。

搭建dhcp服务器过程很简单,安装软件、配置主配置文件,重启服务,验证是否生效。

配置文件的配置主要有全局配置、网段声明,还有主机声明(为某一台主机配置保留地址),主机声明是可选的

这个是我做实验的配置文件截下来的

//全局设置

ddns-update-stye  none;         //动态更新类型

ignore client-updates;         //不允许客户端更新,也不要改,而且必须存在

default-lease-time  28800;      //默认租期,8个小时

max-lease-time    86400          //最大租期,24个小时

option  domain-name "qqcom" //默认搜索域

option domain-name-server19216810254,202106020  //DNS服务器地址,有多个DNS时要用逗号分开

//局部配置

//subnet网段声明(配置一个作用域,可覆盖全局设置参数)

 subnet 192168100 netmask 2552552550{

    range 1921681050 19216810100;

   range 19216810120 19216810200;

    option subnet-mask  2552552550;

    option routers    19216810254;

  }

//host主机声明(为某一台主机配置保留地址,在局部声明内,不可以在全局声明)

host printer{

  hardware  ethernet 00:50:56:C0:00:01;

  fixed-address   192168108; 

  } 

然后重启服务。

如果重启失败,就是配置出错,可用dhcpd命令排错,它会输出你在哪行出错了

#dhcpd

建议你去网上去找更详细的配置文件详解~~懂得每个参数配置的含义

祝你好运~~

1 当你配置好DHCP服务器之后,客户端唯一要做的就是在配置IP地址时,选择自动获得IP就是了。WINDOWS是“自动获得IP地址”,LINUX的配置是“BOOTPROTO=dhcp”(其他物理连通性前提必须是好的)

2 主机通讯需要IP地址,当一个客户端的网卡处于激活状态,并且IP配置为自动获得时,那么客户端会自动向网络中的DHCP服务器发起请求,如果网络中有DHCP服务器存在并可用,那么服务器就会从它的IP地址池(地址范围中)选择空闲的IP地址和其他信息,比如租约时间等,一并发送给这个需要IP地址的客户单。这个过程就像我们租房子一样,房东是不会知道谁要租房子,但是你要生活,你就要去找,你找到房东,房东给你看房子,告诉你价格,时间,你们达成协议了,你就租到了,到期了,继续交钱,继续租用。你可以百度一下DHCP服务器的工作原理。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在linux服务器上配置DHCP服务

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情