Linux 下的 DHCP server 架设基础及方法 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1, DHCP server 简介

DHCP(Dynamic Host Configuration Protocol, DHCP) 指的是由服务器控制一段 IP 地址范围,客户机登录服务器时就可以自动获得服务器分配的 IP 地址和子网掩码等相关信息,其次,担任 DHCP 服务器的计算机需要安装 TCP/IP 协议,并为其设置静态 IP 地址、子网掩码、默认网关等内容。

2 Linux DHCP server 的安装( RHEL5

  首先来查看一下当前系统里是否安装了 dhcp rpm 包:

[root@localhost ~]# rpm –qa|grep dhcp

默认情况下, DHCP RPM 包是没有安装,而是我们要从第三张光盘中把 dhcp-3.0.5-el5.i386.rpm 包安装:

[root@localhost ~]# ls           # dhcp-3.0.5-el5.i386.rpm

[root@localhost ~]# rpm –ivh dhcp-3.0.5-el5.i386.rpm

正常情况下安装是正常的。

3, DHCP 主配置文件的配置信息

 Linux 下的 dchp server 主配置文件是 /etc/dhcpd.conf 文件。当 dchp server 正确安装后, /etc/dhcpd.conf 文件时自动生成的,但是里面没有可以起作用内容但有注释。

/usr/share/doc/dhcp*/dhcpd.conf.sample 文件 CP /etc/dhcpd.conf 并且覆盖原来的文件:

[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample  /etc/dhcpd.conf

接下来查看一下例子配置文件的内容:

[root@localhost ~]# vi /etc/dhcpd.conf

其中它包括大多的常用的配置语句,简单的介绍一下的不常见的配置语句及含义:

ddns-update-style interim     # 说明了 DHCP server DNS server 更新的类,是 Linux 下目前唯一的 ddns 式安全更新,是全局变量。

Option ntp-servers  a.b.c.d   # 指定时间服务器的 ip 地址

Subnet a.b.0.0  netmask 255.255.0.0  #s 是给定一个子网

Range dynamic-bootp a.b.c.129  a.b.c.254  # 这个范围就是给客户的 IP 地址。注意千万不要和前一语句混淆。

一般情况下有 {} 成对出现的,就形成语句区,而每 {} 中的内容都对于“ { ”前的关键字起作用。

如果 host 语句区有网关的参数时,那么首先使用该 host 的配置语句,如果没有,该主机将会从 Subnet a.b.0.0  netmask 255.255.0.0 网络中获得网关 , 从而使用,这个地方类似于“就进原则”。

讲理论比较容易晕人,举个的例,加以强化:

我现在的 ip 地址是 192.168.27.248/24  网关: 192.168.27.254   DNS 202.103.96.112

 
那么主配置文件应该这样配置:

ddns-update-style interim;

ignore client-updates;

subnet 192.168.27.0 netmask 255.255.255.0{

option routers        192.168.27.254

option subnet-mask    255.255.255.0

range dynamic-bootp  192.168.27.1  192.168.27.128

default-lease-time     43200

max-lease-time       86400

}

这就是世界上最简单的 dhcp server 的主文件的配置,存盘。

4 DHCP server 验证

  启动 DHCP 服务:

[root@localhost ~]# /etc/rc.d/init.d/dhcpd start   正常情况下是能够启动的。

 
看看是不是有 DHCP 的进程在运行:

[root@localhost ~]# ps –eaf|grep dhcp        

 
Dhcp 协议的默认的的监听端口是 UDP -67 端口 , 在服务器端通常由 UDP-68 端口回复信息 验证一下:

[root@localhost ~]# netstat –anp|grep :67

 
为了确保客服端能够收到信息,如果防火墙还没有打开 UDP 的端口,先打开放火墙:

[root@localhost ~]# iptables –I input –p udp –dport 67 –j accept

 
windows 下配置客户端

右击“网上邻居” / 属性,选择“本地连接” / 属性,选择“ tcp/ip ”选项,将“常规”选项卡中的 “自动获得 IP 地址”和“自动获得 DNS 服务器地址”选中,然后点击“确定”按钮。那么就可以测试一下 DHCP 的工作情况了。如果有 ××× 连接,同样的右击选择属性,选择“网络”标签,选择 TCP/IP, 选中的 “自动获得 IP 地址”和“自动获得 DNS 服务器地址”,然后点击“确定”按钮。

 
查看“本地连接状态”可以看见相关信息,可以查看详细信息点击“详细”按钮。

一般的情况下,要有 DNS 的备份,这样可以用 DHCP server IP 地址。

 
Ip 地址的绑定:

首先在客户机上“运行” cmd ,然后在 DOS 下键入 ”ipconfig/all”,

返回 RHEL5 系统 , 打开主配置文件

[root@localhost ~]# vi /etc/dhcpd.conf 

原有的语句不变,在 host 语句块中修改如下两个语句:

Hardware etherent  客户端的物理网卡号 ;

Fixed-address      192.168.27.248;

记得把之前注释的“ { ”要取消注释

保存文档后,重启 DHCP server 服务:

[root@localhost ~]# /etc/rc.d/init.d/dhcpd restart

为了可靠性 ,在客户端先把本地断开,然后再重新启用。