DHCP 是 Dynamic Host Configuration Protocol(动态主机分配协议)缩写,它的前身是 BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘起动并连接上网络,BOOTP 则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与 IP 的对应是静态的。换而言之,BOOTP 非常缺乏 "动态性" ,若在有限的 IP 资源环境中,BOOTP 的一对一对应会造成非常可观的浪费。 DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起 BOOTP ,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP/IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client 的需求。 DHCP 的分配形式 首先,必须至少有一台 DHCP 工作在网络上面,它会监听网络的 DHCP 请求,并与客户端磋商 TCP/IP 的设定环境。它提供三种 IP 定位方式:
Manual Allocation
网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期
Automatic Allocation
自动分配,其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。
Dynamic Allocation
动态分配,当 DHCP 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。
客户端从
DHCP
服务器上获得
IP
地址的整个过程分为以下六个步骤:
(1)
寻找
DHCP
服务器:将以广播方式发送
DHCP discover
发现信息,找
DHCP
服务器,当找到
DHCP
服务器后才有响应。
(2)
分配
IP
地址:
DHCP
服务器向
DHCP
客户机发送一个包含分配的
IP
地址和其他设置的
DHCP offer
提供信息。
(3)
接受
IP
地址:
DHCP
客户端接受
DHCP offer
提供信息之后,以第一接收提供信息,再以广播方式回应
DHCP request
请求信息,选定
DHCP
服务器请求
IP
地址的内容
(4) IP
地址分配确认:
DHCP
服务器将
IP
地址和其他设置的
DHCP ack
确认信息返回给
DHCP
客户端,然后
DHCP
客户端将其
TCP/IP
协议与网卡绑定。
(5)
重新登录:重新登录网络,直接
DHCP
客户端直接发送
DHCP request
请求信息。要求
DHCP
服务端分配
IP
地址。然后
DHCP
服务器给
DHCP
客户端返回信息,如果
DHCP ack
确认信息就可以顺利获取
IP,
如果返回的的
DHCP nack
否认信息,还要从新从
DHCP
服务器,发送广播获取
IP
地址请求。
(6)
更新租约:
DHCP
服务器对
DHCP
客户端的出租有几种方式,如果有期限,期限已到
DHCP
服务器就会回收出租的
IP
地址。如果永久出租,一般都是与
MAC
的地址绑定,也就是网卡绑定。
下载的Linux DHCP服务器的软件包为:dhcp-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4.1.1.tar.gz
开始搭建
DHCP
服务器前的准备工作:
网关:
172.19.22.254
子网掩码:
255.255.254.0
DNS
的域名为:
lzzy.net
DNS
服务器
IP
:
172.19.22.1
DHCP
服务器地址池的
IP:172.19.22.100 ---172.19.22.200
邮件网卡绑定地址:
172.19.22.2
服务器绑定地址:
172.19.22.1
注意:
DNS
服务器的
IP
地址和邮件地址及网关
IP
不能在设置的地址池内。
DHCP
软件的安装:
[root@localhost root]# rpm -qa|grep bind
//
查看搭建
DNS
服务器的
bind
软件安装没有
[root@localhost root]# mv /etc/named.conf /etc/named.conf.bak
//
如果想备份,以后可以还原。用
cp
命令也行,然后稍微修改一下
named.conf
文件即可
[root@localhost root]# vi /etc/named.conf
//
创建一个
named.conf
文件
[root@localhost named]# named-checkconf /etc/named.conf
//
检查主配置文件的配置
[root@localhost named]# named-checkzone lzzy.net lzzy.net.zone
//
检查正解析区域配置文件配置是否正确
zone lzzy.net/IN: loaded serial 2010042100
OK
[root@localhost named]# named-checkzone lzzy.net 22.19.172.in-addr.arpa.zone
//
检查反向域配置文件配置是否正确
zone lzzy.net/IN: loaded serial 2010042100
OK
[root@localhost named]# netconfig
//
配置网络服务
IP
[root@localhost named]# service network restart
//
启动网络服务器
[root@localhost named]# ifconfig
//
查看
IP
地址详细信息
[root@localhost named]# echo "nameserver 172.19.22.1" > /etc/resolv.conf
//
将
namserver 172.19.22.1
写入
/etc/resolv.conf
文件中
[root@localhost named]# more /etc/resolv.conf
//
查看
DNS
服务器配置文件的
DNS
服务器的
IP
地址是否被写入
[root@localhost named]# service named restart
//
启动
DNS
服务器
[root@localhost root]# cd /mnt/hgfs/linux
//
切换到共享目录
[root@localhost linux]# cp dhcp-4.1.1.tar.gz /
//
拷贝文件到根目录
[root@localhost linux]# cd /
//
切换到根目录
[root@localhost /]# ls
//
显示当前目录的文件
[root@localhost /]# tar -zxvf dhcp-4.1.1.tar.gz
//
解压
dhcp
软件包
[root@localhost /]# cd dhcp-4.1.1
//
切换到解压目录
[root@localhost dhcp-4.1.1]# ./configure
//
检查
DHCP
安装所需的头文件及库文件,默认安装目录
[root@localhost dhcp-4.1.1]# make
//
编译
dhcp
软件源代码
[root@localhost dhcp-4.1.1]# make install
//
安装
dhcp
软件
[root@localhost dhcp-4.1.1]# rpm -ql dhcp
/usr/sbin/dhcpd //
超级用户
root
启动服务脚本
/etc/sysconfig/dhcrelay //
租用文件
/usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample //DHCP
主配置文件模板文件
[root@localhost dhcp-4.1.1]# cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf
//拷贝模板文件进行修改就行了
[root@localhost dhcp-4.1.1]# vi /etc/dhcpd.conf
ddns-update-style interim;
//
配置使用过渡性
DHCP-DNS
互动更新模式
ignore client-updates;
//
忽略客户端更新
subnet 172.19.22.0 netmask 255.255.254.0 {
//
设置子网声明
option routers 172.19.22.254;
//
为
DHCP
客户端设置默认网关
option subnet-mask 255.255.254.0;
//
为
DHCP
客户设置默认网关
option domain-name "lzzy.net";
//
设置
DHCP
客户端
DNS
域
option domain-name-servers 172.19.22.1;
//
为
DHCP
客户设置
DNS
服务器地址
range dynamic-bootp 172.19.22.100 172.19.22.200;
//
设置地址池
default-lease-time 21600;
//
为
DHCP
客户设置默认的地址租期
6
个小时,单位:秒,
max-lease-time 43200;
//
为
DHCP
客户端设置最大地址租用期为
12
个小时,单位:秒
host mail {
//
设置主机声明
hardware ethernet 00:0C:29:31:4D:07;
//
指定
DHCP
客户的
MAC
地址
fixed-address 172.19.22.2;
//
对指定的
MAC
地址分配固定的
IP
地址
172.19.22.2
}
host dns {
//
设置主机声明
hardware ethernet 00:0C:29:31:4D:07;
//
指定
DHCP
客户的
MAC
地址
fixed-address 172.19.22.1;
//
对指定的
MAC
地址分配固定的
IP
地址
172.19.22.1
}
}
[root@localhost dhcp-4.1.1]# netconfig
//
可以用
netconfig
配置网络
IP
地址
Use dynamic IP configuration (BOOTP/DHCP)
选中按空格键选上
[root@localhost dhcp-4.1.1]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
//
打开编辑
ifcfg-eth0
文件
DEVICE=eth0 //
网卡别名为
eth0
ONBOOT=yes //
重启系统时启动该服务
BOOTPROTO=dhcp //
获取
IP
类型为动态获取
[root@localhost dhcp-4.1.1]# service network restart
//
重新启动网络服务
[root@localhost dhcp-4.1.1]#ifconfig
//查看IP地址的详细配置
[root@localhost dhcp-4.1.1]# /usr/sbin/dhcpd
//
启动
DHCP
服务
[root@localhost dhcp-4.1.1]# touch /var/db/dhcpd.leases
//
创建一个
dhcpd.leases
文件,这个文件装
DHCP
服务器的分配
IP
时的信息进行记录
[root@localhost dhcp-4.1.1]# touch /var/db/dhcpd.leases
//
创建一个
dhcpd.leases
文件,这个文件装
DHCP
服务器的分配
IP
时的信息进行记录
[root@localhost dhcp-4.1.1]#/usr/sbin/dhcpd
//启动DHCP服务启动成功
自动获取IP地址,自动获取DNS服务器
C:\Documents and Settings\Administrator>ipconfig /renew
终于写完了。。感谢你们的阅读,有什么好得建议多给我提提。。呵呵。。
转载于:https://blog.51cto.com/chenboqiang/303724