5.管理DHCP服务器端口
常见的DHCP服务器是dhcpd,可以通过命令行设定其监听端口。例如,使用以下命令:
#dhcpd eth0
该命令允许dhcpd进程只在eth0网络端口上工作,默认为监听所有端口。由于DHCP同样使用67和68端口通信,所以更改该端口将造成DHCP服务无法正常使用。
设置DHCP客户端
1.在Linux下配置DHCP客户端
配置DHCP客户端的第1步是确定内核能够识别网卡,多数网卡会在安装过程中被识别,系统会为该网卡配置恰当的内核模块。如果在安装后添加了一块网卡,Kudzu应该会识别它,并提示为其配置相应的内核模块。通常网管员选择手工配置DHCP客户端,需要修改/etc/sysconfig /network文件来启用联网;修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件,在该目录中的每种设备都有一个叫做“ifcfg-eth?”的配置文件。eth?是网络设备的名称,如eth0等。如果想在引导时启动联网,NETWORKING变量必须被设为yes。除此之外,/etc/sysconfig/network文件应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
每种需要配置使用DHCP的设备都需要一个配置文件。其他网络脚本包括的选项如下。
(1)DHCP_HOSTNAME:只有当DHCP服务器在接收IP地址前需要客户端指定主机名时才使用该选项。
(2)PEERDNS=<answer>:<answer>取值为如下之一。
yes:使用来自服务器的信息来修改/etc/resolv.conf。若使用DHCP,那么yes是默认值。
no:不要修改/etc/resolv.conf。
(3)SRCADDR=<address>:<address>是用于输出包的指定源IP地址。
(4)USERCTL=<answer>:<answer>取值为如下之一。
yes:允许非根用户控制该设备。
no:不允许非根用户控制该设备。
2.在Windows下设置DHCP客户端
Windows 2000和Windows XP的配置方法相同,DHCP客户端的配置很简单。只需要在“控制面板”中双击“网络连接”图标,然后在如图8-1所示的“本地连接属性”对话框中选择“Internet协议(TCP/IP)”属性。
“常规”选项卡中选择“自动获取IP地址”和“自动获取DNS服务器地址”单选按钮。
3.测试端口监督程序
现在应该已经可以将一个客户机接入到网络中,并通过DHCP请求一个IP地址。要通过Windows客户端测试,在DOS提示符下执行以下操作。 (1)清除适配器可能已经拥有的IP地址信息,执行命令:
ipconfig /release
(2)向DHCP服务器请求一个新的IP地址,执行命令:
ipconfig /renew
显示从DHCP服务器获得的信息,应该会看到Primary WINS Server、DNS Servers和Connection-specific DNS Suffix域都获得了dhcpd.conf文件中提供的数据:
ipconfig /all
DHCP服务器故障排除
通常配置DHCP服务器很容易,有一些技巧可以帮助避免出现问题。对服务器而言,要确保网卡正常工作并具备广播功能;对客户端而言,要确保网卡正常工作。最后,要考虑网络的拓扑,以及客户端向DHCP服务器发出的广播消息是否会受到阻碍。另外,如果dhcpd进程没有启动,那么可以浏览 syslog消息文件来确定是哪里出了问题,这个消息文件通常是/var/ log/messages。
客户端无法获取IP地址
DHCP服务器配置完成且没有语法错误,但是网络中的客户端却无法取得IP地址。这通常是由于Linux DHCP服务器无法接收来自255.255.255.255的DHCP客户端的request封包造成的,一般是Linux DHCP服务器的网卡没有设置MULTICAST功能。为了让dhcpd(dhcp程序的守护进程)能够正常地和DHCP客户端沟通,dhcpd必须传送封包到255.255.255.255这个IP地址。但是在有些Linux系统中,255.255.255.255这个IP地址被用来作为监听区域子网域(local subnet)广播的IP地址。所以需要在路由表(routing table)中加入255.255.255.255以激活MULTICAST功能,执行命令:
route add -host 255.255.255.255 dev eth0
如果报告错误消息:
255.255.255.255:Unkown host
那么修改/etc/hosts,加入如下行:
255.255.255.255 dhcp
DHCP客户端程序和DHCP服务器不兼容
由于Linux有许多发行版本,不同版本使用的DHCP客户端和DHCP服务器程序也不相同。Linux提供了4种DHCP客户端程序,即 pump、dhclient、dhcpxd和dhcpcd。了解不同Linux发行版本的服务器端和客户端程序对于排除常见错误是必要的,如果使用 SuSE Linux 9.1 DHCP服务器和使用Mandrake Linux 9.0客户端不兼容的情况,则必须更换客户端程序。方法是停止客户端的网络服务,卸载原程序,然后安装和服务器端兼容的程序。表8-4所示为主要 Linux发行版本使用的DHCP客户端。
主要Linux发行版本使用的DHCP客户端
发行版本 |
默认DHCP客户端 |
可选DHCP客户端 |
DHCP客户端启动脚本 |
附加配置文件 |
RHEL 4.0 |
dhclient |
无 |
/sbin/ifup |
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 |
Debian Linux 3.0 |
dhclient |
无 |
/sbin/ifup |
/etc/network/interfaces /etc/dhclient.conf |
Mandrake Linux 9.1 |
dhclient |
dhcpcd、dhcpxd和pump |
/sbin/ifup |
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/dhclient-eth0.conf |
SuSE Linux 9.1 |
dhcpcd |
dhclient |
/sbin/ifup-dhcp |
/etc/sysconfig/network/dhcp /etc/sysconfig/network/ifcfg-eth0 |
管理监控DHCP服务器
/etc/dhcpd.conf通常包括3个部分,即parameters、declarations和option,共40多个参数,可以使用Gdhcpd管理监控DHCP服务器。
Gdhcpd是一个在GNOME及KDE桌面环境下的DHCP管理工具,基本上能实现命令行模式下的所有功能。由于DHCP是一个非常复杂的协议,所以配置工作也是比较麻烦的。
Gdhcpd是一套在GTK+图形界面下开发并用于帮助管理员在桌面环境下完成DHCP设置工作的DHCP前端程序。通过Gdhcpd,网络管理员可以管理DHCP,包括启动及停止DHCP服务器的服务。也可以直接修改配置文件,或决定系统重新启动的时间。几乎所有与DHCP相关的功能都能使用 Gdhcpd直接完成。
1.下载安装
#Wget linux/gdhcpd/gdhcpd-0.2.9.tar.gz">http://mange.dynalias.org/linux/gdhcpd/gdhcpd-0.2.9.tar.gz
2.系统要求
硬件要求为中央处理器兼容Intel X86处理器,PentiumII 400以上,64 MB(推荐128 MB)内存,150 MB以上硬盘空间,显示内存4 MB。软件要求为内核版本基于2.4或以上,GNOME 1.2以上。桌面分辨率至少为640×480,桌面颜色至少65 000色(16位元)。
3.安装前的准备工作
安装过程中需要编译,因此需要GCC(2.96以上)、Qt(2.0以上)和GTK+2.0支持,需要使用RPM来确认:
rpm -qa | grep gcc;rpm -qa | grep qt;rpm -qa | grep gtk+
4.在命令行下安装软件
命令如下:
gunzip gdhcpd-0.2.9.tar.gz
tar vxf gdhcpd-0.2.9.tar
cd gdhcpd-0.2.9
./configure;make;make install
5.运行软件
执行一个终端运行命令“/usr/sbin/gdhcpd”,显示Scopes设置界面,如图所示。
Scopes设置界面
在这个界面中可以设置/etc/dhcpd.conf的parameters、declarations及option。在Single hosts界面中可以设置Hostname和Hardware address等,
Single hosts设置界面