当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > linux下的DHCP服务器的配置

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 linux下的DHCP服务器的配置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 35 ::
收藏到网摘: n/a


linux现在主要的应用在服务器上。而作为服务器,Web,dhcp,和dns又是互联网上最主要的服务,这一讲,我和朋友们讨论dhcp的应用。

(注意:配置网络服务器,如果你在现有的网络环境中选择安装或者使用VM的桥接网络的时候,有可能会对你当前的网络环境造成影响,请在配置之前咨询你的网络管理人员。)

首先介绍下什么是dhcp协议

dhcp(dynamichostconfigurationprotocol)就是动态主机分配协议,它用于给某个网络段上的主机进行动态分配IP地址和相关网络环境的配置工作,比如我们使用adsl拨号就是用的dhcp协议。

一、dhcp的常用的概念。

1、作用域:

作用域是一个网络中可分配IP地址的连续。

2、超级作用域

超级作用域是一组作用域的集合。是由一个物理子网中包含的多个IP子网组成的。我们可以理解为作用域是一个用户,而超级作用域就是这个用户的组。

3、排除范围

排除范围是用来定义某IP或者某一组的IP不用于分配给dhcp客户机

4、地址池

定义了dhcp作用域和排除范围后,剩下的可用地址构成了一个地址池。池中的地址可以分配给用户使用

5、租约

就是dhcp服务器指定的时间长度,在此长度内客户机可以使用分配给它的地址,如果租约到期,客户机必须更新ip租约。

6、保留地址

用户可以使用保留地址,保留地址提供了一个将动态地址和其MAC地址相关联的手段。用于保证此网卡长期使用某个IP地址。

7.选项类型。

这是DCHP为工作站提供的其它参数,比如网关的IP地址,dns服务器等。

这里仅仅介绍了dhcp最基础的一些概念,因为在此主要介绍linux下是如何配置这些服务的。所以如果朋友们想了解更多有关dhcp或者后面介绍的几个服务的知识(linux下和win下的dhcp的概念是一样的)可以参阅网络或者书籍。

二、Dhcp的设置

首先安装dhcp服务。如果你在首次安装时没有选择dhcp组件,你可以在你发行版的安装光盘和rpm的添加删除包中找到相关软件,进行安装,或者可以在第二张光盘的/RedHat/RPMS/下找到dhcp-3.0p11-23.i386.rpm的二进制rpm发行包进行安装,安装后效果相同。
 

然后更新的时候按提示插入安装盘
 

再给提示朋友们一次,在linux中,所有的程序配置都由文本文件进行控制。所以我们要设置dhcp服务器,就可以通过修改配置文件来达到目的。

所以我们先看下它的典型的配置文件

dhcp的配置文件是/etc/dhcpd.conf,不过默认的情况下这个文件不存在,你需要使用它的模板建一个配置文件。模板的位置在/usr/share/doc/dhcp-3.0p11/dhcpd.conf.sample

如果你找不到你的配置文件可以使用我们学过的查找命令,locatefilename进行寻找,如图:
 

查找到此文件后,我们先来看下模板的配置情况。

为了方便,我把这个配置文件用cat命令给导入到了一个文本文件中,然后弄到win下来了。模板配置文件内容如下:

和所有的配置文件类似的,它用#代表注释。现在看看每行都说了什么
ddns-update-styleinterim;
#配置使用过渡性DHCP-DNS互动更新模式。
ignoreclient-updates;
#忽略客户端更新
subnet192.168.0.0netmask255.255.255.0{
#设置子网声明
#---defaultgateway
optionrouters192.168.0.1;
#设置缺省网关为192.168.0.1

optionsubnet-mask255.255.255.0;
#设置客户端的子网掩码
optionnis-domain"domain.org";
#为客户设置NIS域
optiondomain-name"domain.org";
#为客户设置域名
optiondomain-name-servers192.168.1.1;
#为客户设置域名服务器
optiontime-offset-18000;#EasternStandardTime
#设置偏移时间。
#optionntp-servers192.168.1.1;
设置NTP服务器。
#optionnetbios-name-servers192.168.1.1;
设置wins服务器
#---Selectspoint-to-pointnode(defaultishybrid).Don'tchangethisunless
#--youunderstandNetbiosverywell
#optionnetbios-node-type2;
#设置netbios节点类型我不清楚这个netbios节点是什么东西。*_*!,不懂最好不设。嘿嘿。

rangedynamic-bootp192.168.0.128192.168.0.255;
#设置动态的地址池。
default-lease-time21600;
#设置缺省的地址租期。

max-lease-time43200;
#设置客户端最长的地址租期

#wewantthenameservertoappearatafixedaddress
//设置主机声明
hostns{
next-servermarvin.redhat.com;
//设置由于定义服务器从引导文件中装入的主机名,用于无盘站。
hardwareethernet12:34:56:78:AB:CD;
指定dhcp客户的mac地址
fixed-address207.175.42.254;
给指定的mac地址分配ip
}
}

看完了这个配置文件,朋友们如果有一定的英文基础。是不是觉得其实很好懂,其实不要被linux的配置文件吓倒,配置linux远比windows简单和容易理解,这些配置文件给了你一个模板,你照模板进行填写就可以,类似于给了你一张计划书,上面有你要做的事情,你可以选择做或者不做,具体情况根据你的环境填填空就可以了。不象windows会给你一个向导,至于向导干了什么你根本不知道。出了问题,你也不知道改找谁。但是linux则不同,出了问题,你把你的配置单cat出来,然后贴到网上,讲出你的要求,别人很容易知道你到底干了些什么。

后面我们举个例子来做这个配置。

先看下一个图,非常常见的网络环境。(俺改的以前的一个设计方案,因为讲这里是讲dhcp,就不把vlan考虑进来了,朋友们要是有兴趣,可以在社区http://www.easysafe.net/发帖专门讲这方面的问题。)
 

我们有一个10.0.0.0的网络,叫做easysafe.net

有一个DHCP,有一套企业应用系统,

dns的服务器地址10.0.0.12

系统的数据库服务器地址为10.0.0.10

应用服务器地址为10.0.0.11

有一个网管监控区,放的网管工作站,其IP分别是,10.0.0.30,机器名字叫webmaster

然后有个防火墙做NAT,内部IP是10.0.0.1,外部IP是202.117.0.43(随便编个.HOHO)

你是这个企业的网管,由于你的机器比较多了,工作人员经常找你配IP地址。所以你让老总给你了台淘汰的机器,上面装上linux,配成DHCP服务器,来给他们分配IP地址。

那么,现在我们要怎么做呢。

首先,我们先要考虑一下这个环境。
10.0.0.10
10.0.0.11,
10.0.0.1

为避免网络问题,以上地址应该是保留的静态地址,也就是说你应该有一个排除范围。这个范围可大可小,在现在的情况下,为了避免以后的问题,可以把排除范围设置大点。比如我们设置为从10.0.0.1~10.0.0.20,为系统使用的。

10.0.0.30是你自己用的,不过你不想让别人用这个ip,也不想每次重新装了系统后重新修改,因此,你决定把你的IP给绑定到MAC上。

其他的人可以随意使用10.0.0.21~10.0.0.254之间的一个地址。

好了,现在调出我们的DHCP配置单模板,看如何配置。

ddns-update-styleinterim;
ignoreclient-updates;

#subnet192.168.1.0netmask255.255.255.0{
#声明变了,我们的总的网络是10.0.0.0/24
subnet10.0.0.0netmask255.255.255.0{
#朋友在修改配置的时候,原有配置我们可以使用#注释掉。
#---defaultgateway
#optionrouters192.168.0.1;
#路由变了,是10.0.0.1
optionrouters10.0.0.1;
optionsubnet-mask255.255.255.0;
optionbroadcast-address10.0.0.255;
#添加一个广播地址

#这句不用改,因为我们的子网还是个三类地址的子网
#optionnis-domain"domain.org";
#nis不用
#optionnis-domain"easysafe.net";
#optiondomain-name"domain.org";
optiondomain-name"easysafe.net";
#optiondomain-name-servers192.168.1.1;
optiondomain-name-server10.0.0.12
optiontime-offset-18000;#EasternStandardTime
#这个时间偏移,根据本地情况来设置。
#optionntp-servers192.168.1.1;
#optionnetbios-name-servers192.168.1.1;
#---Selectspoint-to-pointnode(defaultishybrid).Don'tchangethisunless
#--youunderstandNetbiosverywell
#optionnetbios-node-type2;
#上面的可以不修改,因为我这里没有ntp和wins服务器
#rangedynamic-bootp192.168.0.128192.168.0.255;
#这里开始设置你的动态ip地址池了
#rangedynamic-bootp10.0.0.2110.0.0.254
default-lease-time21600;
max-lease-time43200;
#缺省的更新ip时间和最大更新时间不修改默认的就可以。
#wewantthenameservertoappearatafixedaddress
#――――――――――――――――――――――
#以上为模板中有的配置,现在加一些模板没有的配置
#――――――――――――――――――――――

subnet10.0.0.0.0netmask255.255.255.0{

range10.0.0.2110.0.0.254;
}
#这里要注意了,在这里我们配置了我们的地址池!!从10.0.0.21到10.0.0.254

#hostns{
#next-servermarvin.redhat.com;
#hardwareethernet12:34:56:78:AB:CD;
#fixed-address207.175.42.254;
#}
#上面的是为特定用户来设置地址的。咱们来看看网管的机器该怎么配置,为了你以后
#配置的方便,这里加个group声明一下,以便如果哪个人看上了某个地址,你把他固、
#定上就可以。
group{
hostwebmaster{
optionhost-name“webmaster.easysafe.net”;
#你的主机名。可以就设置为webmaster
hardwareethernet00:cd:a9:70:e3:f3;
#你的MAC地址,在linux下直接用ifconfig就可以看到。如果你要看win
#的mac地址可以用ipconfig当然这个MAC地址是我编的,呵呵。
fixed-address10.0.0.30

}
}
}

朋友们可以看到,在这里我们改的配置文件的地方并不是很多:)总共加了也没有10条语句,但是dhcp的配置文件已经做好了。

然后我们把这个文件复制回etc目录下存储为dhcpd.conf,然后你可以用vi看一下
 

不过别高兴的太早,linux怎么知道这是你要启动dhcp服务,并且使用这个配置文件呢?

现在就看我们后面要完成哪些工作了。

首先,要运行dhcp,我们需要一个客户租约数据库文件这个文件在/var/lib/dhcpd.leases,默认的这个库是空的,不需要配置,不过管理员可以通过这个来察看dhcp的运行情况。‘

一般来说,这个文件的格式是

leaseaddress{statement}

根据以上要求创建/var/lib/dhcp/dhcpd.lease文件。

完成了以上的配置,后面就是要启动dhcp了,和以前说的smb服务一样,也是通过service命令来执行
servicedhcpdstart
 

启动服务失败,系统提示第10和第27行出错。

原来一个是把domain-name-servers输错成了domain-name-server

另一个则是添加了两个range

费了半天力,到底把dhcp启动起来了。郁闷,又改了好几遍。
 

然后可以用pstree来察看此服务是否启动

pstree|grepdhcpd
如图所示,服务有了
 

如果希望以后每次服务器启动都把dhcp启动的话可以用ntsysV来选择你的dhcp服务器。

如图:
 

还剩下一点小问题,就是客户机的配置。

客户机win下的不多说了如图:默认就是这样的。
 

在linux下面,你可以手动配置你的dhcp。

察看你的网络配置文件,如果你没有设置为自动启动联网,则要修改你的网络配置文件。
vi/etc/sysconfig/network
添加
NETWORKING=yes
(让引导的时候启动联网)
或者使用

@echo“NETWORKING=yes”>/etc/sysconfig/network
然后再修改你的网卡配置文件

/etc/sysconfig/network-scriptes/ifcfg-eth0文件
应该包含这几行
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes