Chinaunix首页 | 论坛 | 博客
  • 博客访问: 295349
  • 博文数量: 26
  • 博客积分: 2585
  • 博客等级: 少校
  • 技术积分: 399
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:24
文章分类

全部博文(26)

文章存档

2011年(1)

2010年(7)

2009年(3)

2008年(15)

我的朋友

分类: LINUX

2008-10-09 17:47:56

认证目标 13.03-动态主机配置协议(DHCP

有两种协议允许一台客户机从主机那里获得网络配置信息:DHCPDynamic Host Configuration Protoco-动态主机配置协议)和BOOTPBootstrap Protocol-自举协议)。当你的本地网络中有服务器时DHCP就会工作。在你需要从其他网络中的DHCP服务器获得信息时则需要BOOTP协议。

当你管理一个网络中比较多的计算机时,DHCP服务器可以简化和集中对网络的管理。特别是当网络中有相当数量的移动用户时,这种管理显得特别省力。BOOTP协议从本质上来说其实是一种进入一个远程网络中DHCP服务器的方法。
到目前为止,红帽还没有包含任何图形界面的DHCP配置工具。在这一章里,你必须在命令行界面下完成你的工作了。

======================================================================
注意点
虽然DHCP的知识还没有明确的列在当前的红帽考试手册中,但是这部分知识是相应培训课程的一部分。根据提纲,RHCT课程、RH133,都考察了DHCP客户端的配置。RHCE课程、RH300,都讨论了DHCP服务器。对于任何一个网络管理员来说,通晓DHCP都是十分重要的。但是,它没有出现在红帽考试手册上,你必须自己下决心是否为RHCE考试去学习怎样建立一个DHCP服务器。
======================================================================

安装DHCP软件包
和其它的许多网络服务一样,DHCP有一个客户端和一个服务端。这些都建立在dhcpdhclient两个RPM包上。dhcpclientRPM包应该是默认已经安装了的;如果你在使用像是NetworkManager这样的服务,你还需要dhcdbd包。如果你使用IPv6,那么你还需要dhcpv6_client。服务器方面,dhcpRPM包默认都随着网络服务器软件包组的安装而安装了。


======================================================================
工作当中(实用技巧)
红帽似乎经常更换和DHCP有关的命令和软件包,老版本的红帽系统曾经用dhcpdpump作为DHCP客户端命令。当你使用一个老版本的红帽系统的时候一定要意识到这一点。
======================================================================

DHCP服务器配置
一台DHCP需要向局域网中的多台计算机发送消息,这个过程也被称作组播。这个功能应当默认被激活,你可以使用ifconfig命令来确认一下,输出应当类似于图13-4,活跃的网卡应该包含有MULTICAST的设定。

13-4:活跃网络接口的组播

如果你没有看到和你的网卡的MULTICAST,是因为有人已经为你的内核编译了这个功能。参阅第8章可以获得更多有关内核管理程序的信息。
现在,为了配置DHCP服务的守护进dhcpd,需要创建或编辑配置文件/etc/dhcpd.conf。通常,这个文件允许DHCP服务器在特定的范围内随机的指派IP地址。但是这个文件的缺省版本是个空文件。你可以从/usr/share/doc/dhcp-versionnum这个目录下的dhcpd.conf.sample这个文件开始,那些以#号开头的行是注释行。让我们来仔细分析下这个示例文件:

ddns-update-style interim 根据这个指令,RHELDHCP服务器遵循尽可能接近当前的动态域名解析(DNS)标准,DNS数据库在DNS服务器延长它的DHCP租期时更新。之所以是“interim”,是因为标准的动态域名解析系统目前还未完成。

ignore client-updates 如果你不想允许客户机上的用户更改他们的主机名,这个选项就很好。

subnet 192.168.0.0 netmask 255.255.255.0 描述一个地址是192.168.0.1,掩码是255.255.255.0的子网。这一项允许本地的DHCP服务器为这个网络上不同的计算机指派从192.168.0.1192.168.0.154范围内的IP地址。如果你已经配置了一个不同的网络IP地址。你就会相应的改变这些设置。

option routers 列出默认的路由器。如果你对外部网络的连接不止一个,你可以使用多个option routers参数。这些信息都会被传送到DHCP客户端作为它们默认的网关,这样就可以支持客户端访问外部网络,例如因特网。你一定会希望这个参数反映出你的网络中的网关的IP地址。

option subnet-mask 明确说明本地网络的子网掩码。

option nis-domain 记录提供网络信息服务(NIS)共享授权的服务器。如果你在你的网络中配置了NIS,你就会希望用你的NIS域来替代domain.org。否则,你就需要将这句参数注释掉。

option domain-name 这个参数为你的网络添加域名,用来代替你想让你的客户机使用的DNS服务器的IP地址。

option domain-name-servers 记录你的网络中DNS服务器的IP地址。你可以添加更多这样类型的参数,以便明确地指定额外的DNS服务器。

option time-offset 以秒为单位列出与格林威治标准时间(也称作UTC时间,一个法语的缩写)的差距。

option ntp-servers 记录一些网络时间协议(NTP)服务器,这样就可以保持本地计算机时间和UTC时间的同步。我会在这一章稍后的地方描写NTP

option netbios-name-servers 向你的网络增添一些Windows因特网命名服务(WINS)。作为一个微软的服务,我只在第10章对Samba的介绍中简略地提及它。

option netbios-node-type 2 WINS联合的对等网络节搜索。

range dynamic-bootp 192.168.0.128 192.168.0.254 明确指定BOOTP协议下的远程网络可以使用的的IP地址。

default-lease-time 设定IP地址信息的租期,以秒为单位。
max-lease-time 设定IP地址信息的最大租期,还是秒为单位。
next-server 为网络计算机记录它们的启动服务器。如果你没有任何网络计算机,你可以把这整个字段注释掉。

你也可以依据客户机的以太网地址为其指定特定的IP地址。只需要添加类似下面的记录到文件/etc/dhcpd.conf中:

host mommabears {

hardware ethernet 08:00:12:23:4d:3f;

fixed-address 192.168.0.201;

}
这指定了当一个网卡拿它的物理地址08:00:12:23:4d:3f试图通过以太网连接时,DHCP服务器的动作。在这个例子里,IP地址192.168.0.201被分配到名为mommabears的客户机上。
很自然的,你会想修改这个文件,使之符合你的网络的情况。例如,如果你已经配置了我们这本书前面描述的example.org网络上的计算机,你将会想用example.org和对应的IP地址来替换进你的/etc/dhcpd.conf文件。图13-5是我在我的网络上的配置实例。

13-5DHCP配置文件样例

======================================================================
工作当中(实用技巧)
为了给一个特定的计算机的特定网卡指派IP地址,你需要知道网卡的物理地址,ifconfig命令的输出中,HWaddr字段后的就是物理地址。
======================================================================

DHCP可以为单独的计算机个性化地定制。你也可以为服务器设置静态的IP地址。当一切都设置停当,用下面的命令启动dhcpd服务:

# service dhcpd start

默认情况下,这个命令启动一个DHCP服务,监听eth0网卡上的请求。作为另外的选择,你可以运行下面的命令,使得DHCP服务器监听eth1网卡接口:

# service dhcpd start eth1

如果这些命令没有反映,你可能还没有创建/etc/dhcpd.conf配置文件。

你可以在运行中监控DHCP服务器,使用service dhcpd stop命令停止DHCP服务,然后在前台使用下面的命令,用标准错误描述符重新启动这个服务:

# /usr/sbin/dhcpd -d -f

打开另一个Linux/Unix客户机。使用命令dhclient -rdhclient让它寻找另一个DHCP租约,然后观察服务器的控制台。在显示给客户机出租IP地址的进程的服务器上,你将会看到许多的DHCP通信的信息。


======================================================================
工作当中(实用技巧)
另一种得到指定客户机MAC地址的方法是查看DHCP的服务信息,通常日志被记录到文件/var/log/messages里面。
======================================================================

一旦配置好了另你满意的DHCP服务器,记得要在合适的运行级别上激活它,可以使用下面的命令:

# chkconfig dhcpd on

DHCPMicrosoft Windows

为了使DHCP服务器能够同诸如微软Windows 9x系列等挑剔的客户端一起正确的运行,服务器需要发送数据到广播地址:255.255.255.255 。遗憾的是,Linux坚持将255.255.255.255改为本地子网所在的广播地址。这种混合的信息造成DHCP协议的破坏,尽管LinuxDHCP客户端并不会去关注这些问题,微软的DHCP客户机却会。通常,这样的客户机不能识别DHCPOFFER信号,所以它们就不知道何时去从DHCP服务器上申请一个IP地址。如果你配置一个存在微软Windows计算机的网络中的DHCP服务器,运行下面的命令,

# route add --host 255.255.255.255 dev eth0

其中的eth0是服务器连接到网络的那块网卡。

客户机配置

你可以在客户机上使用命令dhclient来设立DHCP,或者你可以使用红帽网络配置工具(你可以在System | Administration | Network中启动它)。另外,在命令行中配置DHCP客户机也不难,并且在考试中会更快。确保/etc/sysconfig/network这个配置文件中包含下面一行:

NETWORKING=yes
接下来,确保/etc/sysconfig/network-scripts/ifcfg-eth0这个脚本中包含下面几行(如果你使用不同的网络设备,你应该修改目录/etc/sysconfig/network-scripts中的对应脚本):
BOOTPROTO='dhcp'
ONBOOT='yes'

如果你不想让DHCP服务器为你指派DNS服务器(在客户机的/etc/ resolv.conf文件中),增加下面的参数:

PEERDNS=no
下一次重启的时候,你的网络配置应该能够自动地从你网络中的DHCP服务器中寻找DHCP地址信息。
作为另外一种选择,你也可以使用图形用户界面的网络配置工具去配置DHCP。你也可以使用命令system-config-network从一个图形界面的终端控制台启动它。当这个工具打开时,选择你的网卡,点击编辑它就行了。你应该能看到类似图13-6那样的窗口。

13-6:配置你的网卡

如果你想在这台计算机上使用DHCP,选择Automatically Obtain IP Address Settings With选项。然后你就会被要求从下面几个选择中挑选:从本地网络中的DHCP服务器上获得IP地址,使用BOOTP从远程网络中获得IP地址,或者通过拨号连接,比如向因特网服务提供商(ISP)拨号。一旦你确定并激活了这个更改,使用service network restart命令重启网络守护进程。这时你的网卡就会从一台DHCP服务器上寻找IP地址信息。

DHCP客户端故障排除:
如果这一章中描述的DHCP客户端配置指令不能正常使用,可能你的Linux计算机的网络配置方法有问题,例如:
  • 网卡没有进行适当的配置。查找第7章中关于重新配置你的网卡的信息。
  • 如果计算机在寻找DHCP服务器时仍然有问题,检查一下你的防火墙。如果端口6768是阻塞的,那么你的计算机就不可能从服务器上得到消息。
练习13-3DHCP的配置

为了运行这个练习,你需要两台不同的计算机:同一局域网中的一台DHCP服务器和一台DHCP客户机。本例中列出的IP地址只是一些例子,你应该用你网络中的IP地址来代替他们。
  1. 打开文件/etc/dhcpd.conf。用192.168.11.11192.168.11.15范围内的IP地址和子网掩码255.255.255.0配置服务器。
  2. 配置客户计算机使用DHCP。重启客户机的网络服务,记录下它获得的IP地址。
  3. 分别用192.168.11.25412.34.45.56两个IP地址作为网关和DNS服务器选项增加到DHCP服务中。如果你已经有了一个网关和一个DNS服务器,就用相应的IP地址来代替。重启DHCP服务,然后重启客户机的网络,使它更新自己IP地址的租约。
  4. 检查客户机的设置。ifconfig命令可以列出你的网卡(通常是eth0)的IP地址,在这里将会是第一步中描述范围内的IP。查看文件/etc/resolv.conf可以看到DNS服务器的地址,除非第五步中的文件里列出的参数包含PEERDNS=no
  5. 配置文件/etc/sysconfig/networking/devices/ifcfg-eth0应该列举了第三部中定义的网关地址。
Copyleft © 2008 All Rights Released
阅读(1209) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~