分类: 系统运维
2009-06-12 09:40:57
六、相关FAQ
设置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=
yes:使用来自服务器的信息来修改/etc/resolv.conf。若使用DHCP,那么yes是默认值。
no:不要修改/etc/resolv.conf。
(3)SRCADDR=:是用于输出包的指定源IP地址。
(4)USERCTL=
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服务器
/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-
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-
tar vxf gdhcpd-
cd gdhcpd-
./configure;make;make install
5.运行软件
执行一个终端运行命令“/usr/sbin/gdhcpd”,显示Scopes设置界面,如图所示。
Scopes设置界面
在这个界面中可以设置/etc/dhcpd.conf的parameters、declarations及option。在Single hosts界面中可以设置Hostname和Hardware address等,
Single hosts设置界面
DHCP的应用环境是哪些?
DHCP主要应用在以下两个应用环境,一个就是局域网中存在大量主机,第二种就是局域网中存在比较多的移动办公设备。
dhcp 服务 不能跨网段 只能用于 内网使用 不能放到外网
如果用虚拟机来模拟,需要关掉虚拟的dhcp
在一个网段里 不允许 有2台的 dhcp 服务器 否则会冲突 没法正常使用
DHCP可以和路由器以及DHCP中继代理一起工作,即跨路由获取IP地址
DHCP服务器本身必须使用静态IP的配置
DHCP客户重新启动后仍然能够保留它原来的配置参数
为 IP Alias 设置 DHCP
在某些场合中﹐我们或许会运用到 IP Alias 来连接网络。这时候﹐我们还可以为 alias 所在的网络提供 DHCP 服务呢﹗不过﹐要留意一点是﹕您只能为一块界面提供一个 sub-net 的服务﹐就算界面上面捆绑了好几个 alias 也一样。
设置也是蛮简单的啦﹕
将 alias 所在的网络设置好。
然后将 /etc/dhcpd.conf 原本关于原有 IP 所在的 subnet 取消。
只留下 alias 所在网络的 range 就可以了。
在我的测试中﹐/etc/dhcpd.conf 不是最重要的﹐关机还是要确定 ip alias 已经成功激活﹐而且 routing 一定要设置好。
关于客户有双网卡的问题
我们在“网络基础”中已经知道﹕在 DHCP 运作的初期﹐client 是使用广播方式来查询 DHCP 信息的。问题是我这里有两块网卡﹐DHCP 要响应 client 的查询时很难判断出要传到哪个网络中去﹐因为一开始的时候 client 端还没分配到 IP 地址﹐所以我在我的 /etc/hosts 中增加了这样一行﹕
255.255.255.255 all-ones all-ones
客户端无法获取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
当然﹐我还在 /etc/rc.d/rc.local 中增加了这样的叙述﹕
# Lines added by netman,
# for enabling DHCP routing on multi-nics environement:
echo "Adding IP routing for DHCP server..."
route add -host 255.255.255.255 dev eth0
route add -host 255.255.255.255 dev eth1
这样﹐当机器激活的时候﹐DHCP 的路由就设置好了。然而看来现在新版的 linux 似乎无需再担心这个问题了﹐假如您发现 DHCP 未能成功提供服务的话﹐再考虑使用这个办法吧。
以debug模式运行DHCP服务器
执行命令如下:
#dhcpd -d
该命令指明dhcpd将出错信息记录到标准的错误描述器,记录的信息将根据/etc/syslog.conf文件的配置保存在指定的文件中。例如,在/etc/syslog.conf文件中要指定记录debug信息:
logalldebuginformationinto/var/log/dameon.log
dameon.=debug/var/log/dameon.log
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 |