LinuxDHCP服务器


2007年05月15日 03:04 来源:ChinaUnix博客 作者:codfei 编辑:周荣茂

    Linux DHCP服务器

    1概述

     在TCP/IP的网络中,任何计算机在存取、使用网络资源之前,都必须正确的配置自身计算机的网络参数,如:IP地址、子网掩码、默认网关等等网络通信必不可少的参数和策略。对于一个大型网络而言,网络的管理和维护对于网络管理员来说是一个繁重而且艰巨的任务,首先,当络结构发生改变,一台甚至多台计算机需要重新设置网络,这样无形的网络管理员增加了很大的工作量。其次,IP地址等资源的严重匮乏,导致必须科学的、高效的分配、使用面临枯竭的IP网络地址资源,因此需要一种机制来让TCP/IP的配置和管理从客户端移动到网络管理端,实现IP地址由网络管理员集中管理,并且可以科学的分配IP地址资源。

     DHCP服务是Dynamic Host Configuration Protocol动态主机配置协议的缩写。该协议由IETF(Internet网络工程师任务小组)开发设计,其目的是为了减轻TCP/IP规划的管理和维护的负担,解决IP地址资源的匮乏问题。运行DHCP的服务器把TCP/IP网络配置集中来管理,动态的分配和处理客户端的IP地址等相关资源的配置,用DHCP租约等相关技术,提供了自动在TCP/Ip网络上安全的、高效的分配和租用IP地址资源的机制。从而实现IP地址的集中的管理。,基本上不需要网络管理员人为的干预。DHCP协议本身也被设计成BOOTP自举协议的扩展,支持需要网络配置信息的无盘工作站,对需要固定IP地址的系统也提供了很好的支持。

     2DHCP服务器的安装和配置

    2.1获得DHCP服务器软件

    在Linux中,几乎所有的DHCP服务器软件都采用paul Vixie/ISC DHCPD,来实现DHCP服务器的功能。目前大多数的Linux发行的版本中都包含了这个软件,在安装光盘中,以PRM安装包的模式发布的,用现面命令安装:

    #rpm –ivh dhcpd-x.x.x.rpm

    2.2增加主机的路由

    为了使DHCP服务器能够正确地为客户计算机提供动态分配IP地址的服务。DHCPD服务器守护进程必须可以将IP包送到255.255.255.255这个IP地址上,因此服务器一定要建立一个到该主机的路由。使用下面命令添加路由:

    #route add –host 255.255.255.255 dev eth0

    注意:有几个网络接口提供DHCPD服务,那么也要在每一个网络接口增加该路由。

    

    2.3修改配置文件

    DHCPD默认的配置文件为/etc/dhcpd.conf。这是一个文本文件,在DHCPD中有一个语法分析器,可以对这个文件进行语法分析,获得配置参数。在这个配置文件中。格式是递规下降的,关键字大小写敏感,可以有注释,注释是以#开头的,到行的结束。这里给出了一个简单的dhcpd.conf文件的例子,该配置文件配置的DHCP服务器是将172.16.0.0/22这个网段分配动态IP地址的。内容如下:

    #examples

    #默认租约时间

    default-lease-time 86400;

    #最大租约时间

    max-leases-time 129600;

    #子网掩码选项

    option subnet-mask 255.255.252.0;

    #广播地址

    option broadcast-adress 172.16.3.255

    #路由器地址

    option routers 172.16.0.1;

    #DNS服务器地址

    option domain-name-servers 192.168.102.66;

    #域名

    option domain-name “doit.com.cn”;

    #子网掩码声明

    subnet 172.16.0.0 netmask 255.255.252.0{

    #范围

    range 172.16.0.10 172.16.3.254;

    }

    该配置文件将允许DHCP服务器将172.16.0.10~172.16.3.254的IP地址分配给DHCP客户端使用。

     如果DHCP客户在申请租约时不请求一个特定的租约失效的时间,则以default-lease-time 86400为租约时间,如果请求一个特定的租约失效的时间,则以max-lease-time 129600为租约时间。

    服务器将下面的参数发给DHCP客户端:

    子网掩码:255.255.252.0

    广播地址:172.16.3.255

    网络地址:172.16.0.0

    默认网关:172.16.0.1

    DNS服务器:192.168.102.66

    如果要为一台单独的计算机分配固定的IP地址,可以在/etc/dhcpd.conf文件中加上一条:

    host doit{

    #doit计算机网卡的硬件地址。

    Hardware Ethernet 00:50:DA:72:01:47;

    #固定的IP地址

    fixed-adress 172.16.0.7;

    }

    

    2.4dhcpd.leases文件

     dhcpd.leases文件是DHCP客户计算机租约的数据库文件,默认是在/var/lib/dhcpd/目录下。文件内容包含租约声明,每一次租约被获取、更新、释放,它的值都会被记录到文件末尾。在DHCPD服务器第一次安装后,并不会产生这个文件,所以要手动创建该文件。方法为:

    #touch /var/lib/dhcpd/dhcpd.leases

    该文件格式为:

    lease ip-address { statements...}

    每一个记录都包含一个动态分配给客户计算机的IP地址。在大括号中,包含了一些租约的信息。具体租约信息因客户端的DHCP请求而稍有差别。

    

    2.5运行DHCPD守护进程

    启动DHCPD服务的方法为:

    #/etc/init.d/dhcpd start

    停止DHCPD服务的方法为:

    #/etc/init.d/dhcpd stop

    重新启动DHCPD服务的方法为:

    #/etc/init.d/dhcpd restart

    当一台终端计算机动态获得IP地址后,在/var/lib/dhcpd/dhcpd.leases文件中建立一条类似下面的记录。记录内容为:

    lease 172.16.0.21{

    starts 1 2003/04/23 17:25:32;

    ends 1 2003/4/25 14:32:01;

    hardware Ethernet 00:50:DA:76:00:2A;

    uid 00:50:DA:72:01:47;

    client-hostname “test”;

    在这里需要注意的是dhcpd.leases文件的时间记录采用了GMT时间,而不是本地区的时间。要看本地区的时间,执行现面的命令:

    #date –u

     3DHCP高级配置

     3.1dhcpd.conf结构说明

    在上面,我们介绍过,dhcpd.conf是一个递规的下降的配置文件。有些和C语言类似,由参数、声明两个大的部分组成。参数类型语句主要告诉DHCPD守护进程网络的参数,如租约时间,子网掩码、网关、DNS域名服务器等。而声明则是描述网络是如何构成的拓扑结构。用来标识网络上客户端计算机、要提供IP地址资源,提供一个参数族组给一组声明。

     描述网络拓扑结构声明语句分为:shared-network和subnet声明,如果要给一个子网内的客户计算机动态分配IP地址,那么在subnet声明中必须要有range声明,用来说明地址范围。如果要给一个客户计算机一个静态的指定的IP地址,那么,这样的计算机要用host声明。对于每一个要提供服务的与DHCP服务器连接的子网,都要有一个subnet声明,即使是一个不提供IP地址动态分配服务的子网。

    介绍一个典型的例子加以说明:

    #example

    #全局参数

    shared-network 共享网络名称 {

    subnet 172.16.0.0 netmask 255.255.252.0 {

    #子网定义参数

    #range 172.16.0.0;

    }

    group {

    host test.doit.com.cn {

    主机参数:IP地址、Mac地址等。

    }

    }

    13.3.2语法详解

    DHCP的语法参数很多,在这里,我们介绍最常用的最重要的语句。

    1、 声明类语句

    l shared-network name {

    [参数]

    [声明]

    }

    shared-network用于告诉DHCP服务器哪些IP子网属于一个物理网络。任何一个在共享物理网络的子网都必须声明在shared-network语句中。属于这个子网中的客户计算机启动的时候,将获得在shared-network语句中指定的参数,除非这些参数被subnet和host参数覆盖。用shared-network是一种暂时的办法,例如:企业中用一个B类网络129.7,企业内部的部门甲被划在子网129.7.3.0/24中,这里的网络号码为8个bit,主机号也为8位。但是如果部门甲很快的增长,超过了254台主机,而物理网络来不及增加子网,就要在这个物理网络中运行两个8bit子网掩码的子网。而这两个子网还同时在一个物理网络中,shared-network可以做如下声明。

    shared-network net1 {

    subnet 129.7.3.0 netmask 255.255.255.0 {

    range 129.7.3.10 129.7.3.254;

    }

    ##############################################

    subnet 129.7.4.0 netmask 255.255.255.0 {

    range 129.7.4.10 129.7.4.254;

    }

    这里的net1是网络共享名称。

    l subnet语句

    subnet subnet-number netmask {

    [参数]

    [声明]

    }

    subnet语句用于提供足够的信息来阐明一个IP地址是否属于该子网的IP地址可以动态的分配给用户,这些IP地址必须在range声明里指定。Subnet number可以是IP地址或能被解析到这个子网的域名。Netmask是子网的掩码。

    l subnet语句

    range [dynamic-bootp] low-address [high-adress]

    对于任何一个有动态分配的IP地址的subnet语句中,至少有一个range语句。用来标识要分配的IP地址的范围。

    l host语句

    l host hostname {

    [参数]

    [声明]

    }

    host语句的作用是给一个特定客户计算机分配指定的IP地址。

    l group语句

    group {

    [参数]

    [声明]

    }

    用于给一组声明提供参数。

    l allow和deny语句

    allow和deny语句用来控制DHCPD对客户计算机的请求。

    l unknown-clients关键字

    allow unknown-clients;

    deny unknown-clients;

    allow unknown-clients;允许DHCPD可以动态的分配IP给位置的客户计算机。而deny unknown-clients;则是不允许。默认为allow unknown-clients。

    l bootp关键字

    allow bootp;

    deny bootp;

    指明DHCPD是否响应BOOTP的查询,默认是允许的。

    2、 参数类语句

    l default-lease-time语句

    语法:

    default-lease-time time;

    指定默认的租约时间,单位为秒。如果客户计算机在请求一个租约但是没有租约失效时间,租约时间就是默认的租约时间。

    l max-lease-time语句

    语法:

    max-lease-time time;

    最大租约时间。如果客户计算机在请求租约时间时发出租约失效的请求,则用最大的租约时间。

    l hardware语句

    语法:

    hardware hardware-type hardware-adress;

    指明物理硬件接口类型和硬件地址,一般为以太网卡。硬件地址由6个8位的组构成,每组之间用“:”分割。例如:00:A0:D2:1A:BE:0E

    l server-name语句

    语法:

    server-name “name”;

    告诉客户计算机服务器的名字。

    l fixed-address语句

    语法:

    fixed-adress address [,address……];

    指定一个或者多个IP地址给固定的客户计算机,语句只能出现在host声明中。

    3、 选项类参数

    这类参数以option开头,后面跟一个选项名称,选项名称后面是选项数据,选项很多,这里列出一些常用的选项。

    l Option routers ip-adress [,ip-address];

    指明在客户计算机子网内的路由器地址,可以为一个,也可以为多个。

    l Option time-servers ip-address[,ip-address…….];

    指明时间服务器的IP地址。

    l Opton domain-name-servers ip-address [,ip-address…….]

    指明DNS域名服务器的IP地址。

    l Option host-name string;

    给客户计算机指定主机名称。

    l Option domain-name string;

    指明服务器和客户计算机所在的域。

    l Option interface-mtu 1500;

    指明网络界面的MTU,这里的MTU是整数。

    l Option broadcast-address ip-address;

    指定子网的广播地址。

    

    小节

     以上讲述的是DHCPD服务器的常用配置,实际的应用还要考虑到IP地址分配和策略的问题。为了保证网络的稳定性、健壮性,建议采用2台DHCP服务器偕同工作,实现DHCP服务器的冗余。但是要注意的是,在DHCP协议等相关技术中,没有多台DHCP服务器协同工作的机制,所以多台DHCP服务器的IP地址资源必须作出合理的调整,不能有交叉的和重复的IP地址。

    

    

    

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15921/showart_301755.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本
### 回答1: Linux DHCP服务器配置步骤如下: 1. 安装DHCP服务器软件:在Linux系统中,可以使用dnsmasq、dhcpd等软件来实现DHCP服务器功能。可以使用以下命令安装dhcpd软件: sudo apt-get install isc-dhcp-server 2. 配置DHCP服务器:打开/etc/dhcp/dhcpd.conf文件,进行配置。可以设置DHCP服务器的IP地址池、租约时间、DNS服务器等参数。例如: subnet 192.168.1. netmask 255.255.255. { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 600; max-lease-time 720; } 3. 启动DHCP服务器:使用以下命令启动DHCP服务器: sudo systemctl start isc-dhcp-server 4. 验证DHCP服务器:可以使用dhcping命令来验证DHCP服务器是否正常工作。例如: dhcping -c 192.168.1.1 如果DHCP服务器正常工作,将会返回DHCPACK消息。 以上就是Linux DHCP服务器配置的基本步骤。 ### 回答2: Linux的DHCP服务器(Dynamic Host Configuration Protocol)配置非常简单和灵活,是让您的计算机网络更加便捷和高效的必要组件之一。该协议允许你管理你的网络中所有的IP地址池以及向客户端分配它们的IP地址,其中包括子网口令和其他重要的网络协议信息。接下来,我们将在本文中讨论两种最常见的DHCP服务器:ISC DHCP和dnsmasq,并告诉你该如何为它们配备IP地址池,租约和其他重要设置。 1. ISC DHCP配置 ISC DHCP(Server)是一款由Internet System Consortium(ISC)开发最广泛使用的DHCP服务器软件。 首先,在Ubuntu /Debian Linux服务器上安装ISC DHCP服务。要安装,请在您的控制台中键入以下命令: sudo apt install isc-dhcp-server 接下来,首先备份ISC DHCP管理器的配置文件,以便您以后可以恢复备份: sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak 使用您喜欢的文本编辑器打开此新配置文件并进行必要的更改: sudo nano /etc/dhcp/dhcpd.conf 你将看到以下内容: # Sample configuration file for ISC dhcpd for Debian # # Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as # configuration file instead of this file. # 默认情况下可能会有一些系统注释在这里,但是您需要使用您的配置添加以下内容,在这种情况下,我们使用以下内容添加IP地址段、子网掩码和租约时间: subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.100 192.168.4.200; option routers 192.168.4.1; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 600; max-lease-time 7200; next-server 192.168.4.2; filename “pxelinux.0”; } 重启DHCP服务器服务,以便更改生效: sudo systemctl restart isc-dhcp-server 2. dnsmasq配置 dnsmasq是另一种可用的DHCP服务器软件,它是免费、开源和非常快速。 它同时构建了DNS服务器和DHCP服务器,并提供TFTP、PXE、IPv6 Router Advertisement、DNS caching等功能。 首先,在Ubuntu / Debian Linux服务器上安装dnsmasq DHCP服务。要安装,请在您的控制台中键入以下命令: sudo apt install dnsmasq 接下来,我们可以使用下面的命令打开dnsmasq.conf文件: sudo nano /etc/dnsmasq.conf 在新的配置文件中,可以直接添加项。 dhcp-range=192.168.100.8,192.168.100.255,12h 这个表单中,dhcp-range选项定义了第一个IP为“192.168.100.8”,最后一个IP为“192.168.100.255”,租期为“12小时”。 如果您需要使用其他选项增强dnsmasq的功能,详情请在官网浏览。 重启dnsmasq服务以确保更改生效。 sudo systemctl restart dnsmasq 需要注意的是,dnsmasq仅充当DHCP服务器而不是做为系统守护程序运行。 总之,你可以根据自己的熟练程度和网络使用策略选择备受欢迎的ISC DHCP和dnsmasq DHCP服务器软件之一,以获得更好的网络控制。以上关于配置DHCP服务器的指南列出了一些主要的步骤,你可以按照这些步骤轻松地设置一个充满活力的IP地址池,为你的网络设备提供稳定和快捷的互联网访问。 ### 回答3: Linux DHCP服务器配置指的是将一台运行Linux操作系统的服务器设置为DHCP服务器,以便为网络中的设备动态分配IP地址、子网掩码、网关等参数。以下是详细的Linux DHCP服务器配置流程: 1.安装DHCP服务器软件:在Linux系统中安装DHCP服务器软件,如ISC DHCP Server,可以使用命令sudo apt-get install isc-dhcp-server来安装。 2.配置DHCP服务器:编辑/etc/dhcp/dhcpd.conf文件来配置DHCP服务器,并在其中指定DHCP分配地址的范围、子网掩码、网关等参数,例如: subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; } 3.指定DHCP服务器监听的网络接口:默认情况下,DHCP服务器会在所有可用的网络接口上监听。可以使用命令sudo nano /etc/default/isc-dhcp-server来编辑默认配置文件,指定DHCP服务器监听的网络接口。 4.启动DHCP服务器:使用命令sudo systemctl start isc-dhcp-server来启动DHCP服务器,使用sudo systemctl status isc-dhcp-server来检查其状态。 5.修改网络接口配置文件:在Linux系统中,还需要修改网络接口配置文件,以便在系统启动时将其配置为DHCP客户端,例如: auto eth0 iface eth0 inet dhcp 以上就是Linux DHCP服务器配置的基本流程,可以根据实际情况做出适当的调整。配置完成后,网络中的设备可以向DHCP服务器请求分配IP地址等参数,从而实现网络连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值