DHCP的原理和配置

       DHCP(dynamic host configure protocol)是动态主机配置的缩写,用于向网络中的计算机动态分配IP以及简单的TCP/IP信息。
什么是DHCP?
DHCP是用于简化IP配置管理的TCP/IP标准,对客户机动态非配TCP/IP信息。
使用DHCP的理由

1:减小管理员的工作量

2:减小输入错误的可能

3:避免IP冲突

4:当网络改变IP地址段时,不需要对每台PC重新分配IP地址

5:计算机移动不需要重新配置ip地址

6:提高IP地址的利用率

DHCP的工作原理(四次广播)

第一步:客户机请求IP租约

      客户机广播一个DHCPdiscover包请求IP地址,DHCPdiscover包的原地址是0.0.0.0(因为这个时候还没有IP)目标地址255.255.255.255(不知道那台机DHCP服务器,所以广播)MAC地址是自己的。

第二步:服务器响应

       当DHCP服务器接收到客户机请求IP地址的信息时,就在自己的IP地址库中查找是否有合法的IP地址提供给客户机,如果有,就将此IP地址做上标记,广播一个DHCPpoffer包,DHCPpoffer包中包含:

1,DHCP客户机的MAC地址,用来正确标识客户机。

2,DHCP服务器提供的合法IP地址,子网掩码。

3,租约期限。

4,服务器标识

第三步:客户机选择IP地址

       客户机接收到第一个DHCPpoffer包中选择IP,并将DHCPrequest包广播到所有DHCP服务器(因为可能一个环境中有多台DHCP服务器)表明它接受提供的内容。

第四步:服务器确认IP租约

DHCP租约过程中第四步也是最后一步为服务器确认IP地址租约,也称为DHCPACK/DHCPNAK.

DHCP服务器的配置

DHCP服务器的要求

1,DHCP服务器要求在windows server 2003 的计算机上运行,(当然也可以在windows 2000或NT得计算机上运行,但本文主要介绍的是在windows server 2003 上运行的配置)

2,DHCP服务器要有一个静态的IP地址、子网掩码和其他的TCP/IP信息

3,要安装DHCP服务

4,使用活动目录服务必须授权DHCP服务器

5,建立作用域并激活。

实验步骤:

1,配置自己的IP地址,(静态)

2,在"添加删除程序"选择"添加/删除组件",在框中选中"网络服务"(但不要打钩),点下面的"详细信息"里面的"动态分配主机协议"(DHCP打钩)然后"确定","下一步"

3,“在开始菜单”“管理工具”里面选中“DHCP”,打开后“新建作用域”

4,客户机上运行CMD进入命令行模式:输入ipconfig /release   清空IP信息。然后输入ipconfig /renew 获取IP信息。(注意客户机必须是动态获取IP地址)

LIUNX中DHCP工作原理及配置过程详解

DHCP服务配置
DHCP服务占67号端口,DHCP的前身是bootps这个协议。
可以通过这个命令证明:#cat /etc/services | grep bootps
bootps 67/tcp   #BOOTP servier
bootps 67/udp
DHCP全称是动态主机配置协议(Dynamic Host Configuration Protocol),是由IETF(Internet网络工

程师任务小组)设计的,详尽的协议内容在RFC文档rfc2131和rfc1541里。它是用来自动给客户机分配

TCP/IP信息的网络协议。每个DHCP客户都连接到中央位置的DHCP服务器,该服务器会返回包括IP地址、网

关和DNS服务器信息的客户网络配置。

DHCP的工作过程
(1)IP租用请求:DHCP客户机启动计算机后,通过UDP端口67广播一个DHCPDISCOVER信息包,向网络上的任

意一个DHCP服务器请求提供IP租约。
(2)IP租用提供:网络上所有的DHCP服务器均会收到此信息包,每台DHCP服务器通过UDP端口68给DHCP客户

机回应一个DHCPOFFER广播包,提供一个IP地址。
(3)IP租用选择:客户机从不止一台DHCP服务器接收到提供之后,会选择第一个收到的DHCPOFFER包,并向

网络中广播一个DHCPREQUEST消息包,表明自己已经接受了一个DHCP服务器提供的IP地址。该广播包中包

含所接受的IP地址和服务器的IP地址。
(4)IP租用确认:被客户机选择的DHCP服务器在收到DHCPREQUEST广播后,公广播返回给客户机一个

DHCPACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该

广播包发给客户机。
    客户机在收到DHCPACK包后,会使用该广播包中的信息来配置自己的TCP/IP,则租用过程完成,客户

机可以在网络中通信。

/usr/sbin/dhcpd      //dhcp执行文件      /var/lib/dhcp/dhcpd.leases      //dhcp租约文件

DHCP配置文件
Linux默认是没有dhcpd.conf文件的,需要我们自己到/usr/share/doc/dhcp-3.0p12文件夹下把

dhcp.conf.sample模板文件拷贝到/etc文件夹下起名叫dhcpd.conf
#cp /usr/share/doc/dhcp-3.0p12/dhcp.conf.sample /etc/dhcpd.conf

#vi /etc/dhcpd.conf      //打开/etc/dhcpd.conf文件
ddns-update-style interim;      //配置使用过渡性DHCP-DNS互动更新模式
ignore client-updates;      //忽略客户端更新

subnet 192.168.0.0 netmask 255.255.255.0 {      //subnet后面必须跟网段,设置您要对哪个网段提

供dhcp提供,注意DHCP服务器IP地址必须和该网段相符,否则DHCP服务不能启动
option routers   192.168.0.1;      //为DHCP客户指定默认网关(gateway)
option subnet-mask 255.255.255.0;      //为DHCP客户指定子网掩码

(netmask)

option nis-domain "domain.org";      //为DHCP客户设置NIS域
option domain-name "domain.org";      //为DHCP客户设置DNS域
option domain-name-servers 192.168.1.1;      //为DHCP客户设置DNS服务器地址

option time-offset -18000;      //设置与枨林威治时间的偏移时间(s)

range dynamic-bootp 192.168.0.128 192.168.0.255;      //设置地址池,为DHCP客户分配IP

地址的地址段,客户可以分到该段内的任意地址;建议把192.168.0.255改为192.0.168.254,因为客户机

不可能被分配到255这台机器,255是广播地址
default-lease-time 21600;      //为DHCP客户设置默认的地址租期,单位为秒
max-lease-time 43200;      //为DHCP客户设置最长的地址租期,单位为秒

host ns {                        //这部分是关于DHCP服务器的声明
next-server marvin.redhat.com;      //设置用于定义服务器从引导文件中装入的主

机名,用于无盘工作站
hardware ethernet 12:34:56:78:AB:CD      //指定DHCP客户的MAC地址
fixed-address 207.175.42.254;      //指定MAC地址分配固定的IP地址
}
}

    以上就是对DHCP配置文件每项的详细解释。
    如果碰到DCHP设置都正确,但是启动DHCP服务启动不成功请查看一下/etc/sysconfig/network文件

NETWORKING这项是否为yes,如果不是yes请修改为yes。
#vi /etc/sysconfig/network
NETWORKING=yes
或者执行该操作同等于上面的操作#echo "NETWORKING=yes" >> /etc/syconfig/network

    下面我们来配置一下DHCP客户机
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0      //网卡设备文件名称设置正确
BOOTPROTO=dhcp      //自动获得IP地址
ONBOOT=yes
保存退出(wq),启动DHCP服务#service dhcpd start,设置生效。用户就可以获得DHCP服务器地址池内的

其中一个IP地址。
#ifconfig      //就会看到DHCP服务器为客户机分配的地址池内的一个IP地址

给DHCP客户机分配固定的IP地址
在DHCP客户机查看MAC(网卡)地址
#ifconfig      //可以查看到MAC地址,如MAC地址是12:34:56:78:AB:CD
在DHCP服务器端设置
#vi /etc/dhcpd.conf
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD        //指定DHCP客户机网卡地址为

12:34:56:78:AB:CD,IP地址固定设置为192.168.0.100
fixed-address 192.168.0.100
保存退出(wq)
#service dhcpd restart      //重启dhcp服务设置生效
在DHCP客户机里重启网络服务#service network restart 可以得到DHCP服务器最新分配给客户机的IP地

址。
#ifconfig      //查看IP地址
inet addr 192.168.0.100
设置生效,DHCP服务器已经为DHCP客户机分配了固定的IP地址。
DHCP客户机重启network服务后可以看到DHCP主机的一些信息效果 #cat /etc/resolv.conf

windows系统做DHCP客户机
IP地址设置为自动获得IP地址:开始---控制面板---网络连接---本地连接---属性(反击)---常规---

Internet协议(TCP/IP)---属性---自动获得IP地址---确定---确定
查看自获的IP地址:开始---运行---cmd---ipconfig
提示:如果不能自动获取IP地址,请查看是否有防火墙开启,如果有请关闭所有的防火墙。

固定windows的IP地址
方法与Linux操作系统相同,只是查看IP地址的时候命令不一样,在windows里是ipconfig,Linux里面是

ifconfig。

在windows里面获得DHCP服务器新的IP地址
ipconfig /release -all      //先释放所有网卡IP地址
ipconfig /renew -all      //再更新所有的网卡IP地址
就会得到DHCP服务器分配新的IP地址了。

winodws下更改网卡(MAC)地址
我的电脑---属性---硬件---设备管理器---网络适配器---XXXXXX(网卡名称)---属性(反击)---高级

---Network Address---值(连续填入12位MAC地址)
注:相同厂商MAC地址前三段都是一样的。

来源:http://zhidao.baidu.com/link?url=zKEFA6OhEAb_BcsVDfX3cSkwjaH9sYFmDAbr-RCAHr0qbdloAM0fi9pX0PMl9UyPT2MBev4ATkS1lDXIxvNg2q