使用Linux配置DHCP Option
Linux下dhcpd服务器配置
default-lease-time 86400;
maxlease-time 604800;
如果客户不继续请求DHCP地址,则86400秒后释放IP地址,否则最大允许租用的时间为604800秒。
option subnetmask 255.255.255.0;
option routers 200.1 1 7.207.1;
其中subnet×.×.×.×说明IP地址是否属于该子网;netmask×.×.×.×提供子网的一些参数;range×.×.×.× ×.×.×.×是DHCP服务器可以分配的IP地址范围;default-lease-time设置缺省的IP租用时间,常用的是86400秒(一天);maxleasetime是最大租用时间,常用的是604800(一周);option subnet-mask设置IP地址的子网掩码;option routers设置在DHCP发布IP地址的同时,把网关发布出去,这一项是用来指明网关的;option broadcast-address设置该子网的广播地址;option domain-name-servers设置DNS服务器IP地址option domain-name“”设置DNS域名。
一个DHCP配置文件的主要内容:
subnet 200.117.207.0 netmask 255.255.255.0
{
range 200.117.20ቤተ መጻሕፍቲ ባይዱ.10 200.117.207.100;
range 200.117.207.110 200.117.207.200;
允许DHCP服务器分配两段地址范围给客户,200.117.207.10~100或者200.117.207.100~200。
嵌入式Linux通过DHCP自动获取IP地址的方法
嵌入式Linux通过DHCP自动获取IP地址的方法1.确保网络硬件和软件支持:首先,确保嵌入式设备的网络硬件和软件支持DHCP功能。
大多数现代网络芯片和操作系统都支持DHCP。
2. 安装DHCP客户端软件:在嵌入式Linux系统上安装DHCP客户端软件。
通常,dhclient是最常用的DHCP客户端软件。
可以通过使用包管理器(例如apt-get或yum)来安装它。
一般会看到类似下面的配置:```iface eth0 inet staticaddress 192.168.0.10netmask 255.255.255.0gateway 192.168.0.1```将上述配置改为:```iface eth0 inet dhcp```这将使网络接口使用DHCP来获取IP地址。
4.启用DHCP客户端:启用DHCP客户端以便它在系统引导时自动获取IP地址。
在大多数Linux系统上,可以通过以下命令启动DHCP客户端:```sudo service dhclient start```或者当使用systemd的时候可以使用以下命令启动DHCP客户端:```sudo systemctl start dhclient```这将启动DHCP客户端并使其开始尝试获取IP地址。
5.检查IP地址:使用以下命令检查嵌入式设备是否成功获取了IP地址:```ifconfig eth0```使用ifconfig命令查看eth0接口的配置信息,如果IP地址字段显示为DHCP服务器分配的IP地址,则表示已成功获取IP地址。
例如:```eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55inet addr:192.168.0.100 Bcast:192.168.0.255Mask:255.255.255.0...其他信息...```上述结果中的inet addr字段显示了成功获取的IP地址。
linux dhclient工作原理
linux dhclient工作原理dhclient是一个在Linux系统上处理DHCP客户端的工具。
DHCP (动态主机配置协议)是一个用于自动分配IP地址、子网掩码、网关和DNS服务器等网络配置信息的协议。
dhclient工具可以通过向DHCP服务器发送数据包来请求和获取这些配置信息。
dhclient工作原理如下:1. dhclient启动:当系统启动时,dhclient会自动启动。
它可以通过命令行或配置文件进行配置。
默认情况下,dhclient在Linux系统上通过启动NetworkManager或systemd-networkd来进行配置。
2.查找网络接口:dhclient会检查系统中的网络接口,例如eth0、eth1或wlan0。
它会根据接口的配置文件或网络管理器来识别哪个接口需要进行DHCP配置。
3.发送DHCP Discover数据包:一旦确定了要配置的网络接口,dhclient会发送一个DHCP Discover数据包。
这个数据包会被广播到局域网上的所有DHCP服务器。
4. DHCP服务器响应:DHCP服务器收到DHCP Discover数据包后,会根据自身的配置向客户端发送DHCP Offer数据包。
这个数据包包含了可用的IP地址、子网掩码、网关和DNS服务器等网络配置信息。
5.接收DHCP Offer数据包:dhclient会接收到DHCP Offer数据包后,会将其中的网络配置信息存储在本地。
6.请求IP地址:dhclient会发送一个DHCP Request数据包,请求DHCP服务器提供的IP地址。
7.确认IP地址:DHCP服务器收到DHCP Request数据包后,会发送DHCP Ack数据包确认IP地址分配。
8.配置网络接口:dhclient收到DHCP Ack数据包后,会将其中的网络配置信息应用到相应的网络接口上。
它会设置接口的IP地址、子网掩码、网关和DNS服务器等配置。
Linux DHCP配置文件详解
Linux DHCP配置文件详解在配置DHCP服务器时,需要对dhcpd.conf配置文件文件进行修改,该文件默认放在/etc目录下。
在安装DHCP服务器完成后,该配置文件在默认情况下没有任何信息。
但是系统提供有DHCP服务配置文件的模板文件,用户可以在/usr/share/doc/dhcp-3.0.3/dhcpd.conf.sample路径下,打开模板文件进行查看。
在配置DHCP服务器配置文件时,可以先将该模板文件重命名为dhcpd.conf并DHCP的配置很简单,只要将dhcp.conf设置好即可。
不过编辑此文件时需要注意以下几点:●# 为批注符号。
●除了括号那一行外,其他每一行后面都要以“;”为结尾。
●设置的项目都有其独特的名称,形式为“<参数代码><设置内容>”,例如“default-lease-time 259200”。
●某些项目必须利用option来设置,形式为“option <参考代码><设置内容>”,例如“optiondomain-name “”;”。
DHCP的IP分配可分为动态IP和静态IP,其中需要了解的是,如果需要设置静态IP,则需要知道设置成静态IP的那台计算机的(MAC地址)。
这时,可以使用arp及ifconfig命令来查询接口的MAC地址。
此外,还需进行如下几项设置。
1.整体设置(Global)整体设置包括设置租约期限、DNS的IP地址、路由器的IP地址、动态DNS (DDNS)更新的类型等。
当静态IP及动态IP内没有规范到某些设置时,则以整体设置值为准。
最常使用的参数如下:●Default-lease-time 时间默认的租约时间,单位为秒。
●Max-lease-time 时间最大租约时间,当客户端超过租约时间但尚未更新IP地址时,最长可以使用该IP地址的时间。
●Option domain-name “域名”如果在/etc/resolv.conf文件里设置了search ,则表示当要搜索计算机名称时,DNS系统会主动帮客户端加上这个领域的名称。
外置DHCP服务器option43_option60配置方法
1外置DHCP服务器option43、option60配置方法1.1背景目前公司建设的无线项目(如汉庭酒店/学校/企业等)大部分都是在核心交换机上开启DHCP服务器的方式为AP和用户分配IP地址。
但是在即将进行的众多高校无线建设中,DHCP 服务器基本上是基于网络中心WINDOWS SERVER或者LINUX SERVER搭建,因此若要进行高校大规模AP组网,则必须在Windows、LINUX服务器上对DHCP、option43、option60配置进行验证。
1.2拓扑图核心路由交换机汇聚路由交换机(VLAN100)100.100.1.254交换机PoE在独立部署DHCP服务器场景中,一般采用在汇聚路由交换机上配置DHCP Relay的方式将AP发出的DHCP请求转发到DHCP服务器。
如果整个网络拓扑中只有核心交换机做路由,则在核心交换机上配置DHCP Relay。
1.3流程分析在这里,先简单回顾一下通过option43、option60为AP分配IP的流程:(1)AP向DHCP Server发送DHCP Discovery请求,请求中附带option60属性来标示供应商类别标识符。
(2)DHCP Server检查option60属性,判断发送请求的Client是否符合获取IP地址的条件,若符合条件则回复DHCP Offer报文来分配IP地址,否则DHCP Server忽略请求。
DHCP Server也可以关闭option60检查选项,如果关闭该选项,则无论option60是否匹配,DHCP Server都会响应Client的请求。
(3)DHCP Server回复DHCP Offer报文时附带option43属性来下发AC的IP地址或域名。
(4)DHCP Server在回复Client请求时,不附带option60属性。
从上面的流程可以看出,外置DHCP服务器需要配置的参数是:Server收到Client请求时检查option60属性,Server回复Client报文时增加option43属性。
linux udhcpc 参数
linux udhcpc 参数摘要:1.引言2.Linux UDHCP 简介3.UDHCP 配置文件4.UDHCP 配置参数详解a.全局参数b.接口参数c.客户端参数d.服务器参数5.UDHCP 命令行参数6.UDHCP 高级配置7.总结正文:Linux 是一款开源的操作系统,其中的网络配置工具UDHCP 用于自动分配IP 地址和其他网络参数。
本文将详细介绍UDHCP 的参数配置以及命令行使用方法。
## Linux UDHCP 简介UDHCP 是一个用于Linux 系统中的动态主机配置协议(DHCP) 客户端和服务器。
它可以自动分配IP 地址、子网掩码、网关等网络参数给连接到网络的设备。
UDHCP 通过与DHCP 服务器通信,获取并更新网络参数。
## UDHCP 配置文件UDHCP 配置文件位于`/etc/udhcp`目录下,包括`udhcpd.conf`(服务器配置文件)和`client-scopes.d`(客户端配置文件)。
## UDHCP 配置参数详解UDHCP 配置参数分为全局参数、接口参数、客户端参数和服务器参数。
### 全局参数全局参数主要设置UDHCP 服务器的基本属性。
- `server`: 设置UDHCP 服务器的主机名。
- `hostname`: 设置分配给客户端的主机名。
- `domainname`: 设置分配给客户端的域名。
- `filename`: 设置分配给客户端的配置文件路径。
### 接口参数接口参数用于配置UDHCP 服务器监听的网络接口。
- `interface`: 设置UDHCP 服务器监听的网络接口。
- `network`: 设置该接口所属的网络。
- `broadcast`: 设置该接口的广播地址。
- `start`: 设置分配给客户端的IP 地址起始地址。
- `limit`: 设置分配给客户端的最大IP 地址数量。
### 客户端参数客户端参数用于配置客户端的网络参数。
Linux1 DHCP多作用域设置
Linux1 DHCP多作用域设置多作用域(superscope)是由多个作用域所组合而成,它可以被用来支持multinets 的网络环境。
所谓multinets网络就是在一个实体网络内有多个逻辑的IP网络。
当一个实体网络内的计算机数量较多,以致一个network ID(标识一个网段)所提供的地址不够使用时,可以采用以下两种方式之一来解决问题。
●利用路由器将网络切割为多个实体的子网络,然后为每个子网络分配一个network ID●直接提供多个network ID给这个实体网络,让不同的计算机有不同的network ID,也就是实体上这些计算机还是在同一个网段内,但逻辑上他们却分别隶属于不同的网络,因为它们分别有不同的network ID,即multinetsRed Hat Linux5.0的DHCP服务器可通过“多作用域”将IP地址出租给multinets 内的DHCP客户端。
以图17为例,它是未采用多作用域前的情况,DHCP服务器内只有一个作用域可出租,它的IP地址范围为192.168.1.1~192.168.1.254,其中192.168.1.250~192.168.1.254被排除。
DHCP服务器图17 单作用域网络结构图当图17中甲网络内计算机数量越来越多,以致于需要用到2个network ID的IP地址时,可以在DHCP服务器内创建第2个作用域,然后将第一个作用域与第2个作用域组成一个多作用域,如图18所示。
图中DHCP客户端在向DHCP服务器租用IP地址时,DHCP服务器会从多作用域内的任一个一般作用域与内选择一个IP 地址。
图18 多作用域网络结构图提 示图4中的路由器在甲网络端的接口必须配置2个IP 地址,且其network ID 分别为192.168.1.0和192.168.2.0,以便让甲网络内两个逻辑网络(192.168.1.0和192.168.2.0)内的计算机可以相互通信。
linux dhcp server的option code参数
在Linux DHCP服务器中,option code参数用于指定DHCP选项的类型。
不同的option code 对应不同的DHCP选项,用于提供各种网络配置信息,例如IP地址、子网掩码、默认网关等。
以下是一些常见的option code参数:
option-1:DHCP客户端请求的IP地址。
option-3:DHCP客户端的硬件地址(MAC地址)。
option-6:DHCP服务器名称(或域名)。
option-9:客户端的逻辑地址(即客户端的IP地址)。
option-12:客户机的物理地址。
option-15:要分配给客户端的域名。
option-16:DNS服务器的IP地址。
option-17:WINS服务器的IP地址。
option-28:请求的IP地址的超时时间。
option-43:服务器可用的配置选项类型。
option-50:建议的IP地址租期。
这只是一部分option code参数,Linux DHCP服务器还支持其他更多的option code参数。
您可以通过查看Linux DHCP服务器的文档或使用dhcpd-pools软件包来获取更详细的option code参数列表和说明。
中标麒麟Linux系统DHCP服务配置指南
option domain-name-servers 166.112.219.150;
range dynamic-bootp 166.112.219.200 166.112.219.254;
host ambow-zuoj {
hardware ethernet 00:0B:DB:DA:08:74; fixed-address 166.112.219.151; } }
option subnet-mask
255.255.255.128;
option domain-name
"";
option domain-name-servers 166.112.219.150;
range dynamic-bootp 166.112.219.200 166.112.219.254;
DHCP客户端配置
•修改接口配置文件
–# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp
•修改后重启network服务
–# service network restart
•dhclient
option routers
166.112.219.129;
option subnet-mask option domain-name
255.255.255.128; "";
option domain-name-servers 166.112.219.150;
range dynamic-bootp 166.112.219.200 166.112.219.254;
host ambow-zuoj {
不同系统环境下DHCP option43选项配置及填写说明
Windows Server 、Linux、Huawei系统DHCP option43选项配置2016年9月一 Microsoft DHCP Server1.1 Option 43填写规则为使AP能够正常识别Option 43属性的内容,Option 43属性需要按照一定的规则来填写:比如AC的IP地址为192.168.22.1时,需要填写的值为030C3139322E3136382E32322E31。
其中,03为固定值,代表Option 43的子选项类型;十六进制数0C(“0C”等于十进制数“12”)代表AC的IP地址192.168.22.1的长度,包含小数点“.”;十六进制数31对应字符“1”的ASCII值,32对应字符“2”的ASCII值,依此类推,十六进制2E对应字符小数点“.”的ASCII值,即值 3139322E3136382E32322E31表示AC的IP地址192.168.22.1。
另外,对于涉及到多个AC,Option 43要填写多个IP地址的情形(比如AC 双链路备份组网等),IP地址之间以逗号“,”间隔,逗号“,”对应的ASCII值为2C,如主备 AC的IP地址分别为:192.168.100.2,192.168.100.3,那Option 43属性应该填写为:031B3139322E3136382E3130302E322C3139322E3136382E3130302E33 。
其中,03为固定值,代表Option 43的子选项类型;十六进制1B(“1B”等于十进制数“27”) 表示两个IP地址字符的个数,包含中间间隔的逗号“,”和小数点“.”,十六进制数31对应字符“1”的ASCII值,32对应字符“2”的ASCII 值,依此类推。
十六进制数2E对应字符小数点“.”的ASCII值,十六进制2C对应字符逗号“,”的ASCII 值,即值3139322E3136382E3130302E322C3139322E3136382E3130302E33表示AC 的IP地址192.168.100.2,192.168.100.3。
linux dhcp配置 dhcp多网段配置
inet6 addr: fe80::20c:29ff:fefd:f951/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
INTERFACES="eth1 eth2"
DHCPSERVERS="192.168.80.254"
③启动中继程序:
Service dhcrelay start
Chkconfig dhcrelay on
dhcrelay -i eth1 -i eth2 192.168.80.254
linux dhcp多网段配置(CentOS-5.4)
一、安装DHCP
方法①:
1、yum –y install dhcp
方法②:
挂载光盘:
mkdir –p /mnt/CentOS-5.4
mount /dev/cdrom /mnt/CentOS-5.4
RX packets:1309 errors:0 dropped:0 overruns:0 frame:0
TX packets:1702 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
option time-offset -18000;
range dynamic-bootp 192.168.80.50 192.168.80.60;//设置ip分配范围
default-lease-time 21600;//设置最短租期
Linux搭建dhcp中继
拓扑图:思路:1、在服务器上安装DHCP,并设置192.168.1.0与192.168.2.0网段的DHCP参数。
2、在中继服务器添加两块网卡,分别设置网卡的IP为192.168.1.1和192.168.2.2;然后安装DHCP,开启DHCP中继的路由转发功能,设置DHCP允许中继的网卡接口。
3、客户机设置IP自动获得,并测试是否成功从DHCP服务器获得IP。
使用系统:RedHat 5.0软件包:dhcp-3.0.5-3.el5.i386.rpmRedHat 5.0系统镜像文件下载地址:/file/dpm73pva步骤:1、在服务器上安装DHCP先挂在光盘:mount /dev/cdrom /media/cdrom进入安装光盘的Server目录:cd /media/cdrom/Server使用rpm –Uvh命令安装:rpm -Uvh dhcp-3.0.5-3.el5.i386.rpm2、打开配置DHCP文件,复制配置模板修改/etc/dhcpd.conf文件:vim /etc/dhcpd.confvim打开/etc/dhcpd.conf文件后,切换到末行模式,使用“r /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample”命令将dhcpd.conf.sample文件内容复制到dhcpd.conf中。
(vim末行模式中r ‘文件名’,可读取并复制指定文件内容到当前文件中)3、根据实际情况修改配置模板分别添加192.168.1.0与192.168.2.0网段的DHCP参数:subnet 192.168.1.0 netmask 255.255.255.0 {option routers 192.168.1.1;option subnet-mask 255.255.255.0;range 192.168.1.128 192.168.0.254;default-lease-time 21600;max-lease-time 43200;}subnet 192.168.2.0 netmask 255.255.255.0 {option routers 192.168.2.2;option subnet-mask 255.255.255.0;range 192.168.2.128 192.168.0.254;default-lease-time 21600;max-lease-time 43200;}启动DHCP服务:service dhcp start[root@dhcp ~]# chkconfig --level 35 dhcpd on5、为中继服务器增加2张网卡,并分别配置eth0,eth1,eth2的IP分别修改ifcfg-eth0, ifcfg-eth1, ifcfg-eth2配置文件:[root@dhcrelay]# vim /etc/sysconfig/network-scripts/ifcfg-eth0[root@dhcrelay]# vim /etc/sysconfig/network-scripts/ifcfg-eth1[root@dhcrelay]# vim /etc/sysconfig/network-scripts/ifcfg-eth2eth0文件内容:# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.2NETMASK=255.255.255.0HW ADDR=00:00:00:00:00:00GATEW AY=192.168.0.1eth1文件内容:# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth1ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.1.1NETMASK=255.255.255.0HW ADDR=11:11:11:11:11:11GATEW AY=192.168.1.1eth2文件内容:# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]DEVICE=eth2ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.2.2NETMASK=255.255.255.0HW ADDR=22:22:22:22:22:22GATEW AY=192.168.2.2*注意:“HW ADDR=”是网卡物理地址(mac地址),是系统默认的,不需要修改。
实验十 Linux下DHCP及DNS服务器的配置
实验十Linux下DHCP及DNS服务器的配置一.实验目的:●掌握在Linux系统下安装和配置DHCP服务器的方法。
●掌握主DNS服务器的配置方法;●掌握辅助域名服务器和转发域名服务器配置;●实现区域委派。
二.实验内容:●安装DHCP;●配置DHCP,为本子网内的客户机提供DHCP服务;●配置DHCP中继代理。
●安装和启动BIND●安装和配置一个DNS服务器●配置辅助域名服务器和转发域名服务器●区域委派三.具体实验:任务一配置DHCP:实验内容:配置DHCP服务器,为子网A内的客户机提供DHCP服务。
具体参数如下:●IP地址段:192.168.xx.101-192.168.xx.200(如192.168.131.101-192.168.131.200)●子网掩码:255.255.255.0●网关地址:192.168.xx.254(如192.168.131.254)●域名服务器:192.168.131.2●子网所属域的名称:●默认租约有效期:1天●最大租约有效期:3天实验步骤:1.安装DHCP:rpm –ivh dhcp-2.0pl5-8.i386.rpm (实验室环境已安装,可省略此步)2.配置服务器:●为服务器自身设置静态IP地址。
编辑/etc/sysconfig/network-scripts目录下脚本文件ifcfg-eth0,内容形式如下:DEVICE=eth0IPADDR=192.168.xx.10NETMASK=255.255.255.0ONBOOT =yesBOOTPROTO=none●编辑/etc/sysconfig/network文件,内容如下:NETWORKING=yesHOSTNAME=GATEWAY=192.168.131.2GATEWAYDEV=eth0●启动TCP/IP网络:#service network restart●为广播地址设置主机名称为dhcp。
在/etc/hosts文件中加入如下一行:255.255.255.255 dhcp●把广播地址加入路由表:#route add –host dhcp dev eth0 ●cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample/etc/dhcpd.conf编辑/etc/dhcpd.conf文件,内容如下:subnet 192.168.xx.0 netmask 255.255.255.0default-lease-time 86400;max-lease-time 259200;option routers 192.168.xx.2;option subnet-mask 255.255.255.0;option domain-name “”;option domain-name-servers 192.168.131.2;{range 192.168.xx.101 192.168.xx.200;}●建立租约数据库文件:#touch /var/lib/dhcp/dhcpd.leases●为指定的网络接口启动DHCP服务 # echo “DHCPDARGS=eth0” >>/etc/sysconfig/dhcpd●启动dhcp服务器:#service dhcpd start●检测dhcp服务器是否启动正常:# netstat –utl3.配置客户端:●登录到局域网中的一台Linux客户机,检测客户机上是否安装有DHCP客户端软件dhcpcd,如果没有则安装该软件包。
Linux_12.DHCP服务器
三.启动:
service dhcpd start
设置开机自动启动
chkconfig --list dhcpd 查看现在的开机启动设置
chkconfig dhcpd on 将开机启动设置为开启
四.测试ห้องสมุดไป่ตู้
客户机设置为自动获取IP地址
释放IP ipconfig /release
重新获取 ipconfig /renew
host file-server { 保留
fixed-address 192.168.1.64; 保留IP地址
hardware ethernet 00:04:61:4C:AF:C5; 保留对象物理地址(在windows中用-隔开,在linux中:隔开)
}
}
保存退出
DHCP标准实验
一.安装:
mount /dev/cdrom /media/cdrom
rpm -ivh /media/cdrom/Service/dhcp-*
rpm -ivh /media/cdrom/Service/dhcp-devel-*
二.配置:
vim /etc/dhcpd.conf
ddns-update-style interim; 声明子网地址以及子网掩码
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.63 192.168.1.68; 地址池
default-lease-time 691200; 租借周期
min-lease-time 691200; 最小周期
max-lease-time 691202; 最大周期
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用Linux配置DHCP Option
DHCP是动态主机配置协议.这个协议用于向计算机自动提供IP地址,子网掩码和路由信息。
网络管理员通常会分配某个范围的IP地址来分发给局域网上的客户机。
当设备接入这个局域网时,它们会向 DHCP 服务器请求一个 IP 地址。
然后DHCP服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有IP 地址为止。
已经分配的IP地址必须定时地延长借用期。
这个延期的过程称作leasing,确保了当客户机设备在正常地释放IP地址之前突然从网络断开时被分配的地址可以归还给服务器。
本文以Redhat Linux 9.0为例,介绍如何建立一个完整和安全的DHCP服务器。
一、建立DHCP服务器配置文件
可以使用Redhat Linux 9.0自身携带rpm包安装。
安装结束后, DHCP 端口监督程序 dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。
下面手工建立/etc/dhcpd.conf文件。
/etc /dhcpd.conf通常包括三部分:parameters、declarations 、option。
1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。
主要内容见表1
3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容包括见表3:
注意:如果客户端使用的是视窗操作系统,不要选择"host-name"选项,即不要为其指定主机名称。
下面是一个笔者使用的DHCP配置文件,这是一个C类网络,共126个IP 地址可以分配的例子。
读者可以复制后使用,注意红色部分是必须要修改的。
二、建立客户租约文件
运行DHCP服务器还需要一个名为 dhcpd.leases 的文件,保持所有已经分发出去的 IP 地址。
在Redhat Linux 发行版本中,该文件位于 /var/lib/dhcp/ 目录中。
如果您通过 RPM 安装 ISC DHCP,那么该目录应该已经存在。
dhcpd.leases的文件格式为:
一个典型的文件内容如下:
注意lease 开始租约时间和lease 结束租约时间是格林威治标准时间(GMT),不是本地时间。
第一次运行DHCP服务器时dhcpd.leases是一个空文件,也不用手工建立。
如果不是通过 RPM 安装 ISC DHCP,或者 dhcpd 已经安装,那么您应该试着确定 dhcpd 将其 lease 文件写到何处,并确保该文件存在。
也可以手工建立一个空文件:
三、启动和检查DHCP服务器
使用命令启动DHCP服务器:
使用ps命令检查dhcpd进程:
使用检查dhcpd运行的端口:
四、配置DHCP客户端
通常网管员使用选择手工配置 DHCP 客户,需要修改
/etc/sysconfig/network 文件来启用联网;并修改
/etc/sysconfig/network-scripts 目录中每个网络设备的配置文件。
在该目录中,每个设备都有一个叫做 ifcfg-eth?的配置文件,eth?是网络设备的名称。
如eth0等。
如果你想在引导时启动联网,NETWORKING 变量必须被设为 yes。
除了此处之外/etc/sysconfig/network 文件应该包含以下行:
五、DHCP配置常见错误排除
通常配置DHCP 服务器很容易,不过,在这里有一些技巧可以帮助您避免出现问题。
对服务器而言,要确保网卡正常工作,并具备广播功能。
对客户机而言,还要确保客户机的网卡正常工作。
最后,要考虑网络的拓扑,并考虑客户机向DHCP 服务器发出的广播消息是否会受到阻碍。
另外如果dhcpd进程没有启动,那么可以浏览 syslog 消息文件来确定是哪里出了问题。
这个消息文件通常是/var/log/messages。
典型故障:
1.DHCP服务器配置完成,没有语法错误。
但是网络中的客户机却没办法取得IP地址。
通常是Linux DHCP服务器沒有办法接收來自255.255.255.255 的 DHCP 客户机的Request 封包造成的。
一般是Linux DHCP服务器的网卡没有设置具有MULTICAST功能。
为了让dhcpd(dhcp程序的守护进程)能够正常的和DHCP客户机沟通,dhcpd必须传送封包到255.255.255.255这个IP地址,但是有些Linux 系统里255.255.255.255这个IP地址被用来做为监听区域子网域(local subnet)广播的 IP地址,所以需要在路由表(routing table)里加入
255.255.255.255以激活MULTICAST功能;
使用命令:
如果报告错误消息:255.255.255.255:Unkown host
那么请先修改/etc/hosts加入一行:
255.255.255.255 dhcp
2. DHCP客户端程序和DHCP服务器不兼容
由于Linux有许多发现版本,不同版本使用DHCP客户端程序和DHCP服务器也不相同。
Linux提供了四种DHCP客户端程序:pump, dhclient, dhcpxd, 和dhcpcd。
了解不同Linux发行版本的服务器端和客户端程序对于常见错误排除是必要的。
笔者曾经遇到过使用SuSE Linux 9.1 DHCP服务器和使用Mandrake Linux 9.0客户机不兼容的情况。
此时就必须更换客户端程序。
方法是先停止客户机的网络服务,卸载原程序,安装和服务器端兼容程序。
附表:主要Linux发行版使用的DHCP客户端。
六、DHCP服务器的安全
1. 在指定网络接口启动DHCP服务器
如果你的Linux系统连接了不止一个网络界面,但是你只想让 DHCP 服务器启动其中之一,你可以配置 DHCP 服务器只在那个设备上启动。
在
/etc/sysconfig/dhcpd 中,把界面的名称添加到 DHCPDARGS 的列表中:
这样对于带有两个网卡的防火墙机器,更加安全:一个网卡可以被配置成DHCP 客户来从互联网上检索 IP 地址;另一个网卡可以被用作防火墙之后的内部网络的 DHCP 服务器。
仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接它的守护进程。
2. 让DHCP服务器在监牢中运行
所谓"监牢"就是指通过chroot机制来更改某个软件运行时所能看到的根目录,即将某软件运行限制在指定目录中,保证该软件只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全。
这样即使出现被破坏或被侵入,所受的损失也较小。
将软件chroot化的一个问题是该软件运行时需要的所有程序、配置文件和库文件都必须事先安装到chroot目录中,通常称这个目录为chroot jail (chroot"监牢")。
如果要在"监牢"中运行dhcpd,而事实上根本看不到文件系统中那个真正的目录。
因此需要事先创建目录,并将 dhcpd复制到其中。
同时dhcpd需要几个库文件,可以使用ldd(library Dependency Display缩写)命令,ldd作用是显示一个可执行程序必须使用的共享库。
这意味着还需要在"监牢"中创建lib目录,并将库文件复制到其中。
手工完成这一工作是非常麻烦的,此时可以用jail软件包来帮助简化chroot"监牢"建立的过程。
(1)Jail软件的编译和安装
Jail官方网站是:/ ,最新版本:1.9a。
(2)用jail创建监牢
jail软件包提供了几个Perl脚本作为其核心命令,包括mkjailenv、addjailuser和addjailsw。
mkjailenv:创建chroot"监牢"目录,并且从真实文件系统中拷贝基本的软件环境。
addjailsw:从真实文件系统中拷贝二进制可执行文件及其相关的其它
文件(包括库文件、辅助性文件和设备文件)到该"监牢"中。
addjailuser:创建新的chroot"监牢"用户。
首先停止目前dhcpd服务,然后建立chroot目录:
下面的例子展示为"监牢"添加dhcpd程序的过程:
不用在意那些警告信息,因为jail会调用ldd检查dhcpd用到的库文件。
而几乎所有基于共享库的二进制可执行文件都需要上述的几个库文件。
接下来将dhcpd的相关文件拷贝到"监牢"中:
重新启动dhcpd:
使用ps命令检查dhcpd进程:
注意此时进程名称已经改变,使用检查dhcpd运行的端口:
端口号没有改变。
现在dhcpd已经成功运行在"监牢"中。
到此为止一个这样,一个完整和安全的 DHCP服务器就完成了。