科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道DHCP服务器的设置和使用

DHCP服务器的设置和使用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

下面我们来介绍一下DHCP服务器的设置和使用。当设置了dhcpd.conf之后,就能启动dhcpd守护进程了,由于计算机会有多个网络界面,需要指定dhcpd 服务器的网络界面,以便回应相应界面上的DHCP请求。这个设置文件主要用于重新定义一些参数,比较容易理解,更改也比较容易。

2010年8月27日

关键字: DHCP 网络

  • 评论
  • 分享微博
  • 分享邮件

下面我们来介绍一下DHCP服务器的设置和使用。希望能够对大家有所帮助。

DHCP是我们常用的网络协议。在交换机和路由器中,我们也能常遇到相关的设置。下面我们来介绍一下DHCP服务器的设置和使用。希望能够对大家有所帮助。

设置和使用DHCP

在FreeBSD的Packages Collection中,有两个不同的DHCP客户机和服务器软件,一 个为ISC-DHCP,另一个为WIDE-DHCP,两个软件都包括了DHCP客户软件和服务器软件,其中ISC-DHCP 更为常用一些,这里就以ISC-DHCP为例介绍在FreeBSD上安装和设置DHCP。

为了支持DHCP,首先要确认系统内核支持伪设备bpfilter,如果没有,就需要重新编译内核。伪设备bpfilter 是一个允许应用程序接收网络的原始数据包的界面,这样应用程序就能接收目的地址非本机IP地址的数据包 了。DHCP使用bpfilter的原因是在DHCP设置好计算机的TCP/IP之前,由于计算机本身没有定义IP地 址,而TCP/IP堆栈本身不会接收不具备本机IP地址的数据包。要接收DHCP服务器发送回客户的数据包,就需要绕 过TCP/IP堆栈,而必须使用伪设备bpfilter。

pseudo-device bpfilter 4

定制内核之后,还要保证/dev/目录下具有对应bpfilter的设备文件。

# cd /dev

# sh MAKEDEV bpf0 bpf1 bpf2 bpf3

从Packages Collecion中安装DHCP软件,这将DHCP软件中的dhcpd,dhclient和dhcprelay 安装到/usr/local/sbin目录下。

$ ls /usr/local/sbin/dhc*

/usr/local/sbin/dhclient

/usr/local/sbin/dhcpd

/usr/local/sbin/dhcrelay

设置服务器

为了设置DHCP服务器dhcpd,首先就要设置其配置文件/etc/dhcpd.conf。这个配置文件 语法简单,比较容易理解。

server-identifier 192.168.3.1;

subnet 192.168.3.0 netmask 255.255.255.0 {

range 192.168.3.10 192.168.3.20;

default-lease-time 600;

max-lease-time 7200;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.3.255;

option routers 192.168.3.1;

option domain-name-servers 192.168.3.1;

option domain-name "exampleorg.org.cn";

}

host a1 {

hardware ethernet 00:90:27:4e:92:09;

fixed-address 192.168.3.32;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.3.255;

option routers 192.168.3.1;

option domain-name-servers 192.168.3.1;

option domain-name "exampleorg.org.cn";

}

基本的dhcpd.conf首先使用server-identifier定义了本服务器的IP地址,这对于有 多个IP地址的服务器系统十分重要,一般不必设置这个参数,dhcpd能自动侦测。然后定义要分配IP地址的客户机组 ,每组拥有一个可用的IP地址范围。有两种客户机组的划分方式,一种为指定子网段来区分,一种为指定主机来区分。

这个例子中的第一组定义了一个子网192.168.3.0/24,这个子网段内,可供DHCP服务器分配的I P地址范围为192.168.3.10到192.168.3.20,这个地址范围也可以不是连续的,不连续的地址可以 使用多个range设置参数来设置。此外,还设置了这一组内分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用缺省值,而不必改动。后面的option参数设置DHCP的附加功能 ,例如设置DHCP客户的网络掩码、广播地址、DNS服务器、域名等等。事实上这些option设置选项也可以被用作 全局选项设置,即放置在server-identifier之后,对所有的客户机组起作用。

例子的第二组是针对某个特定主机a1进行的设置,这个主机被限定为以太网地址为hardware ethernet 参数值的计算机,将给这个计算机分配一个固定地址。这种分配方式实际等价于固定地址分配方式,唯一的好处就是能 够对IP地址进行集中管理,不必每个计算机分别设置了。这里同样也可以使用option参数,设置TCP/IP的参数 。

dhcpd.conf中还能有更多的组,包括对非本网段的子网上的客户机指定的组。

当设置了dhcpd.conf之后,就能启动dhcpd守护进程了,由于计算机会有多个网络界面,需要指定dhcpd 服务器的网络界面,以便回应相应界面上的DHCP请求。

# /usr/local/sbin/dhcpd fxp0

在调试阶段,可以使用-d参数,这样dhcpd就不会进入后台运行,而一直保留在前台,并显示各个与客户计算 机通信的过程。当一切都调试完毕之后,就能去除-d参数,并将执行命令放入rc.local启动脚本中,以便系统能够 自动执行。

此后,dhcpd正常运行的时候,会将每一次客户请求及其回应的IP地址分配的记录,都记录在/var/run/dhcpd.leases 文件中。为了使dhcpd能正常进行日志记录,应该在启动dhcpd之前使用touch 命令,生成一个新的日志文件。以后就可以查看这个日志文件的内容,以得到当前DHCP服务器的状态和客户机IP地址分 配的情况。以下是一个日志文件的部分内容。

lease 192.168.3.11 {

starts 3 1998/11/26 05:46:28;

ends 4 1998/11/27 05:46:28;

hardware ethernet 0:80:c2:12:fd:d;

uid 1:0:80:c2:12:fd:d;

}

touch命令的优点是在存在相关的文件时,不删除或更改文件内容,只更新其访问时间设置,只有在文 件不存在时才生成新文件。

然后就能设置网络中的客户计算机使用DHCP协议,获取合法的IP地址了。通常Windows计算机的TCP/IP设置 中能直接设置支持DHCP协议,如果为Unix(包括FreeBSD)设置DHCP客户软件,就需要dhclient的支持。

编辑推荐

TCP/IP协议专题

TCP/IP(传输入控制地议/网际协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与..

设置客户软件

ISC-DHCP中同样也提供了一个客户程序dhclient,用于FreeBSD系统从DHCP服务器上动态获取一个IP地 址。这个程序同样也要求内核支持bpfilter伪设备。

dhclient使用的配置文件为/etc/dhclient.conf,然而最一般的情况下可以不使用它,软件本身的缺省 配置就满足一般情况下请求IP地址的需要了。缺省设置下dhclient在获得了IP地址之后,会自动执行/etc/dhclient-script 这个脚本程序,以针对刚获取的动态IP地址进行必要的设置。很多依赖于IP地址的网络服务,就可以在这个脚 本中启动,或者针对重新分配的动态IP地址对已有的网络服务进行修正。虽然使用者也许不希望使用这个脚本 设置网络,但如果不存在这个脚本程序,或者这个程序不可执行,那么dhclient就不能正常执行。

因此对于最一般的客户机,一般只连接到一个网络上,仅具备一个网络界面,可以使用一个空的dhclient.conf 和空的declient-script文件,就能完成设置IP地址和其他TCP/IP参数的任务了。

# touch /etc/dhclient.conf

# touch /etc/dhclient-script

# chmod +x /etc/dhclient-script

# /usr/local/sbin/dhclient fxp0

Listening on BPF/fxp0/00:90:27:4e:92:09/unattached

Sending on BPF/fxp0/00:90:27:4e:92:09/unattached

Sending on Socket/fallback/fallback-net

DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 22

DHCPOFFER from 192.168.3.1

DHCPREQUEST on fxp0 to 255.255.255.255 port 67

DHCPACK from 192.168.3.1

bound to 192.168.3.32 -- renewal in 3600 seconds.

在更复杂的情况下,就要指定更多的内容,例如当系统有多个网卡时,要指定dhclient应该从哪个子网中获 得IP地址设置,就需要使用设置文件dhclient.conf。一般除非有多个局域网网络界面,都应该使用空设置文件, 避免产生配置错误。以下为一个简单的dhclient.conf的例子,可以用于多网络界面的情况:

# Defaults

timeout 60;

reboot 10;

retry 60;

select-timeout 5;

initial-interval 2;

script "/etc/dhclient-script";

interface "fxp0" {

request subnet-mask, broadcast-address, routers, domain-name-servers,

domain-name, host-name;

require domain-name-servers;

}

这个设置文件主要用于重新定义一些参数,比较容易理解,更改也比较容易。

成功的手工执行dhclient之后,就可以考虑将其和系统启动文件相结合了。因为很多网络服务是依赖于网络 配置的,应该在启动这些网络服务之前使用DHCP配置好TCP/IP。使用dhclient-script启动服务的 想法虽然也能解决问题,然而这就不能使用系统的启动rc文件中的相关设置启动网络服务,而在这个dhclient-script 中重新启动,因此比较麻烦。更简便的做法是仅仅在dhclient-script中设置hostname, 而让系统启动文件完成其他网络服务的启动。这样就要求将dhclient与系统rc文件结合起来。

#hostname="my.domain.name"

network_interfaces="fxp0 lo0"

# List of network interfaces (lo0 is loopback).

ifconfig_lo0="inet 127.0.0.1"

# default loopback device configuration.

#ifconfig_fxp0="inet 192.168.3.12 netmask 255.255.255.0"

defaultrouter="NO"

# Set to default gateway (or NO).

这样就需要更改rc.conf文件,更改一些设置语句。首先要注释hostname设置,而在dhclient.script中进行设置,也不必设置defaultrouter,它通过DHCP协议自动设置。同时要保证netwo

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章