DHCP是进行动态主机配置的网络协议,他的结构中具有服务器和客户机两种角色。

说一下DHCP的工作原理:

当DHCP客户端第一次登录网络,他会想网络发出一个DHCP DISCOVER包,包的来源地址为:0.0.0.0 目的地址为255.255.255.255,当DHCP服务器监听到此广播包后,他会在自己的地址池中选择最前面的空置IP,连同其他TCP/IP设定以DHCP offer封包的形式发送给客户,包中包含一个组约期限的信息,客户端接收到此广播包,并发出一个DHCP request广播包,用来相应服务器端发出的DHCP offer包,DHCP服务器端接收到此广播包,会向客户端发出一个DHCPACK 响应,以确认 IP 租约的正式生效,也就结束了一个完整的 DHCP 工作过程。

地址分配

Manual Allocation

网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期

Automatic Allocation

自动分配,其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。

Dynamic Allocation

动态分配,当 DHCP 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。

理论知识我们简单的介绍到这儿,下面我们介绍安装步骤:

网络环境:

DHCP网络服务器的实现_第1张图片
clip_image002[5]
clip_image002[7]
clip_image002[9]

我们使用把redhat光盘放入光驱,然后执行如下步骤:

clip_image004

就此,DHCP Server算安装完毕。我们假如想看看RPM给我们安装了什么东西我们可以用rpm -ql dhcp 查看一下

修改hostname

hostname dhcp.staid.edu

vi /etc/sysconfig/network 修改hostname

vi /etc/hosts

[root@redhat10 ~]# 处的主机名是读取的/etc/sysconfig/network里面的hostname

临时ip的设置:[root@redhat10 ~]# ifconfig eth0 192.168.0.10 netmask 255.255.255.0

/etc/rc.d/init.d/dhcpd 服务器主程序

/etc/rc.d/init.d/dhcrelay 中继代理主程序

以下两个文件是dhcpd主程序和dhcrelay主程序的配置文件

/etc/sysconfig/dhcpd

/etc/sysconfig/dhcrelay

/var/lib/dhcp/dhcpd.leases是租约主机信息数据库

首先我们拷贝一个配置文件:

[root@redhat10 log]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

我们看一下dhcpd.conf文件的内容

[root@redhat10 log]# cat /etc/dhcpd.conf

ddns-update-style interim; dhcp和dns的服务器可以协作 * 就是说当客户端

被分配完ip后,此客户端上的域名与ip地址的对应立马更新到dns服务器中,此句必须保留才能使得dhcpd正常启动

ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

#声明用来描述dhcpd服务器中对网络布局的划分,是网络设置的逻辑范围

# --- default gateway

option routers 192.168.0.1;#网关

option subnet-mask 255.255.255.0; #子网掩码

# option nis-domain "domain.org";

# option domain-name "domain.org";

# option domain-name-servers 192.168.1.1; #DNS服务器地址

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;

range dynamic-bootp 192.168.0.128 192.168.0.254; #地址池范围

default-lease-time 21600; #默认的租约时间

max-lease-time 43200; #最长租约时间

# we want the nameserver to appear at a fixed address 这个是单独对一个主机进行ip地址绑定

host ns {

next-server marvin.redhat.com;

hardware ethernet 12:34:56:78:AB:CD;

fixed-address 207.175.42.254;

#此ip地址不能出现在地址池中

}

}

[root@redhat10 log]#

主机有多个网络接口时需要在文件中指定提供dhcp服务的网络接口

在/etc/sysconfig/dhcpd文件中设置

DHCPDARGS=eth0 表示eth0 是提供dhcp服务的网络接口名称

我们cat /var/lib/dhcp/dhcpd.leases 来查看哪儿个ip租给哪儿个mac地址。

下面我们设置DHCRELAY的网络环境及本身配置

首先设置linux路由器:

linux路由器的基础设置:两块网卡分别设置为不同的网段,同时把文件/proc/sys/ipv4/ip_forward 设置为1

netconfig -d eth0/1 设置ip地址,不用网关和dns

然后我们设置 dhcprelay

,在中继服务器上我们安装dhcp

, rpm -ivh dhcp-3.0.5-21-el5.i386.rpm

然后我们修改一个文件:

/etc/sysconfig/dhcrelay这个文件

interfaces="eth0"

设置eth0为中继服务器的网卡接口

DHCPSERVERS="192.168.0.2"

这个是dhcp的服务器ip地址

service dhcrelay restart

然后我们修改dhcp服务器的/etc/dhcpd.conf文件增加中继服务器所在的网段

copy

subnet 到最后那段,粘贴到最下方,然后参照上面的设置来修改成中继服务器所在的网段的数值,特别注意独立ip的那段的hostname要不同