)
首先,我将介绍什么是dhcp协议
动态主机配置协议(DCP )是一种动态主机分配协议,用于为一个网段上的主机动态分配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组件,请找到并安装与发行版的安装CD和rpm添加/删除软件包相关的软件,或者在第二张CD的/RedHat/RPMS/下安装DHCP-3.000
然后在更新时按照指示插入安装盘
我再向朋友们提示一次。 在linux上,所有程序放置都由文本文件控制。 因此,要设置dhcp服务器,可以通过修改配置文件来实现。
我们先来看看典型的轮廓
DCP的配置文件为/etc/dhcpd.conf,但默认情况下此文件不存在。 必须使用模板创建配置文件。 模板位置为/usr/share/doc/DHCP-3.0p 11/dhcpd.conf.sample
如果找不到您的配置文件,请使用我们学到的搜索命令在locate filename中进行搜索。 图:
找到此文件后,我们先看看模板的配置。
为了方便起见,我们使用cat命令将此配置文件导入到文本文件中,并将其下载到win。 模板配置文件的内容如下:
与所有配置文件一样,注释用#表示。 看看每行说了什么
ddns-update-style interim;
#设置为使用瞬态DHCP-DNS交互式更新模式。
Ignore客户端-更新;
#忽略客户端更新
ub net 192.168.0.0net mask 255.255.255.0 {
#设置子网声明
#-- -默认网关
选项路由192.168.0.1;
#将默认网关设置为192.168.0.1
可选子网-掩码255.255.255.0;
#设置客户端的子网掩码
option nis-domain 'domain.org ';
#为客户设置NIS域
option domain-name 'domain.org ';
#设置客户的域名
选项域名称服务器192.168.1.1;
#为客户设置域名服务器
选项时间-偏移- 18000; # eastern标准时间
设定偏移时间。
#可选NTP-servers 192.168.1.1;
设置NTP服务器。
#可选NetBIOS-name-servers 192.168.1.1;
wins服务器设置
--- -选择点到点节点(defaultishybrid ).Don )。
t change this unless# -- you understand Netbios very well
# option netbios-node-type 2;
#设置netbios节点类型我不清楚这个netbios节点是什么东西。*_*!,不懂最好不设。嘿嘿。
range dynamic-bootp 192.168.0.128 192.168.0.255;
#设置动态的地址池。
default-lease-time 21600;
#设置缺省的地址租期。
max-lease-time 43200;
#设置客户端最长的地址租期
# we want the nameserver to appear at a fixed address
//设置主机声明
host ns {
next-server marvin.redhat.com;
//设置由于定义服务器从引导文件中装入的主机名,用于无盘站。
hardware ethernet 12:34:56:78:AB:CD;
指定dhcp客户的mac地址
fixed-address 207.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
为避免网络问题,以上地址应该是保留的静态地址,也就是说你应该有一个排除范围。这个范围可jadbh小,在现在的情况下,为了避免以后的问题,可以把排除范围设置大点。比如我们设置为从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-style interim;
ignore client-updates;
#subnet 192.168.1.0 netmask 255.255.255.0 {
#声明变了,我们的总的网络是10.0.0.0/24
subnet 10.0.0.0 netmask 255.255.255.0{
#朋友在修改配置的时候,原有配置我们可以使用#注释掉。
# --- default gateway
#option routers 192.168.0.1;
#路由变了,是10.0.0.1
option routers 10.0.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
#添加一个广播地址
#这句不用改,因为我们的子网还是个三类地址的子网
#option nis-domain "domain.org";
#nis不用
#option nis-domain "easysafe.net ";
#option domain-name "domain.org";
option domain-name "easysafe.net";
#option domain-name-servers 192.168.1.1;
option domain-name-server 10.0.0.12
option time-offset -18000; # Eastern Standard Time
#这个时间偏移,根据本地情况来设置。
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
#上面的可以不修改,因为我这里没有ntp和wins服务器
#range dynamic-bootp 192.168.0.128 192.168.0.255;
#这里开始设置你的动态ip地址池了
#range dynamic-bootp 10.0.0.21 10.0.0.254
default-lease-time 21600;
max-lease-time 43200;
#缺省的更新ip时间和最大更新时间不修改默认的就可以。
# we want the nameserver to appear at a fixed address
#――――――――――――――――――――――
#以上为模板中有的配置,现在加一些模板没有的配置
#――――――――――――――――――――――
subnet 10.0.0.0.0 netmask 255.255.255.0{
range 10.0.0.21 10.0.0.254;
}
#这里要注意了,在这里我们配置了我们的地址池!!从10.0.0.21到10.0.0.254
#host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
#}
#上面的是为特定用户来设置地址的。咱们来看看网管的机器该怎么配置,为了你以后
#配置的方便,这里加个group声明一下,以便如果哪个人看上了某个地址,你把他固、
#定上就可以。
group {
host webmaster{
option host-name “webmaster.easysafe.net”;
#你的主机名。可以就设置为webmaster
hardware ethernet 00:cd:a9:70:e3:f3;
#你的MAC地址,在linux下直接用ifconfig就可以看到。如果你要看win
#的mac地址可以用ipconfig当然这个MAC地址是我编的,呵呵。
fixed-address 10.0.0.30
}
}
}
朋友们可以看到,在这里我们改的配置文件的地方并不是很多:)总共加了也没有10条语句,但是dhcp的配置文件已经做好了。
然后我们把这个文件复制回etc目录下存储为dhcpd.conf,然后你可以用vi看一下
不过别高兴的太早,linux怎么知道这是你要启动dhcp服务,并且使用这个配置文件呢?
现在就看我们后面要完成哪些工作了。
首先,要运行dhcp,我们需要一个客户租约数据库文件这个文件在/var/lib/dhcpd.leases,默认的这个库是空的,不需要配置,不过管理员可以通过这个来察看dhcp的运行情况。‘
一般来说,这个文件的格式是
lease address {statement}
根据以上要求创建/var/lib/dhcp/dhcpd.lease文件。
完成了以上的配置,后面就是要启动dhcp了,和以前说的smb服务一样,也是通过service命令来执行
service dhcpd start
启动服务失败,系统提示第10和第27行出错。
原来一个是把domain-name-servers输错成了domain-name-server
另一个则是添加了两个range
费了半天力,到底把dhcp启动起来了。郁闷,又改了好几遍。
然后可以用pstree来察看此服务是否启动
pstree |grep dhcpd
如图所示,服务有了
如果希望以后每次服务器启动都把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
©2010 Baidu