其实要想局域网的每台机子都想连到所谓的internet上,都知道必须为该网络中的每台机子设置相应的IP地址、子网掩码、默认网关等相关参数;所以在配置这些参数时要么就是手工配置和要么就从DHCP服务器动态获得。对应于静态的偶尔会出现地址冲突,由于网关或DNS服务器地址设置出错时而导致无法连接网路,然后还得不得不频繁的重新修改各种参数了,
动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:
1、给内部网络或网络服务供应商自动分配IP地址给用户
2、给内部网络管理员作为对所有电脑作中央管理的手段
DHCP 的工作原理:
动态主机设置协议(DHCP)是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。
同时DHCP使用了租约的概念,或称为计算机IP地址的有效期。租用时间是不定的,主要取决于用户在某地联接Internet需要多久,这对于教育行业和其它用户频繁改变的环境是很实用的。通过较短的租期,DHCP能够在一个计算机比可用IP地址多的环境中动态地重新配置网络。DHCP支持为计算机分配静态地址,如需要永久性IP地址的Web服务器。
DHCP 客户端获得地址过程:
DHCP统一使用两个IANA分配的端口作为BOOTP:服务器端使用67/udp,客户端使用68/udp。
DHCP运行分为四个基本过程:分别为请求IP租约、提供IP租约、选择IP租约和确认IP租约。
客户在获得了一个IP地址以后,就可以发送一个ARP请求来避免由于DHCP服务器地址池重叠而引发的IP冲突。
四个过程分别是:
DHCP 发现 (DISCOVER)
客户在物理子网上发送广播来寻找可用的服务器。网络管理员可以配置一个本地路由来转发DHCP包给另一个子网上的DHCP服务器。该客户实现生成一个目的地址为255.255.255.255或者一个子网广播地址的UDP包。
客户也可以申请它使用的最后一个IP地址(在下面的例子里为192.168.1.100)。如果该客户所在的网络中此IP仍然可用,服务器就可以准许该申请。否则,就要看该服务器是授权的还是非授权的。 授权服务器会拒绝请求,使得客户立刻申请一个新的IP。非授权服务器仅仅忽略掉请求,导致一个客户端请求的超时,于是客户端就会放弃此请求而去申请一个新的IP地址。
DHCP提供 (OFFER)
当DHCP服务器收到一个来自客户的IP租约请求时,它会提供一个IP租约。DHCP为客户保留一个IP地址,然后通过网络广播一个DHCPOFFER消息给客户。该消息包含客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP。
服务器基于在CHADDR字段指定的客户硬件地址来检查配置。这里的服务器,192.168.1.1,将IP地址指定于YIADDR字段。
DHCP请求 (REQUEST)
当客户PC收到一个IP租约提供时,它必须告诉所有其他的DHCP服务器它已经接受了一个租约提供。因此,该客户会发送一个DHCPREQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后,它们会收回所有可能已提供给客户的租约。然后它们把曾经给客户保留的那个地址重新放回到可用地址池中,这样,它们就可以为其他计算机分配这个地址。任意数量的DHCP服务器都可以响应同一个IP租约请求,但是每一个客户网卡只能接受一个租约提供。
DHCP确认 (Acknowledge,ACK)
当DHCP服务器收到来自客户的REQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。该服务器响应请求并发送响应给客户。整个系统期望客户来根据选项来配置其网卡。这时候,TCP/IP配置过程就完成了。
DHCP的工作模式:
手工管理( manual );写物理地址的对应条目;特点也是地址动态分配、但是呢地址利用率很低。
自动获得(automatic);只需要管理员在server上建立一个地址池(起始地址到结束地址)特点是动态分配地址利用率很低,简化了管理员的工作量。
Dynamic(动态获得):Server 地址池记录和租期;因此地址的利用率也是比较高的。
(注意的是:DHCP是依赖于那个广播信息,因此在一般情况下 客户机与服务器应该位于同一个网络中;然后、可以设置网络中的路由转发BootP广播包,使得服务器和客户机可以位于两个网段;还有就是可以使用DHCP中转计算机。)
在linux系统如何实现dhcp服务:
先查一下可能是否安装过dhcp服务器
rpm –qa |grep dhcp
如果安装了、就没有什么提示;如果没有它会显示本机上dhcp 软件;
再挂载光盘
mount
Mount /dev/cdrom /mnt/cdrom/
然后切换到 /mnt/cdrom/Serevr/下;先查询所需用的 dhcp服务器有没有,( ll dhcp* )
查询到了一些之后;但是看到版本有点次,可以查看版本详情下载源代码的进行升级更新。
( 执行指令:rpm –qip dhcp 可以看看 都会有出现什么)
然后 安装直接执行指令 rpm -ivh dhcp-3.0.5-21.el5.i386.rpm 进行安装;
安装之后 再来查看一下:rpm -qa |grep dhcp 安装过的他不会显示、到会显示没安装过的dhcp类型的包;
( 执行 指令 rpm -ql dhcp |less 查看安装的文件目录都有什么 )
DHCP服务配置:
需要了解知道DHCP配置文件 dhcpd.conf(etc目录下)各种参数、声明和选项:
如果说这个文件损坏;可以这样来做、把样例文件拷贝成 dhcpd.conf。
cp/usr/share/doc/dhcp-3.0.5/dhcp.conf.sample /etc/dhcpd.conf然后就这样拷贝成dhcpd.conf 覆盖就行了;
看后之后来做小例子、可以做一个 subnet;所以 ip地址可以更改为特定的网段IP ;
(当然还是 在 /etv/dhcpd.conf 文件,简但做一些参数、作用域声明和选项的更改)
然后再 service dhcpd restart 进行重启,如果发现重启时、启动不了可以查看一下是不是配置有
误;有两种方式一种是进行查看 刚配置的配置文件是不是语法有误,还有就是看看日志文件,
使用指令 service dhcpd configtest 进行查看语法错误;
使用指令看日志文件; tail –f /var/log/messages
(其实这样至少看到日志文件的后十行,其实可以加上一个参数–n 行数,可以任意行数的查看;tail –n 29 –f /var/log/messages )
同样的还可以直接执行指令过滤只要 dhcp的日志文件: grep dhcpd /var/log/messages |less
上面的红框框里 ,有个‘ ^ ’ 标示就是指明出来的的问题是 为客户端指明DNS服务器IP地址 位置有错误,具体是什么呢 、应该在DNS服务器ip地址格式不对、中间不应是空格格 而得是一个英文逗点 “,”;所以这样细节性的还要多注意。
接下来就可以设置 客户端的机子了,也不用怎么设置,这里只是把客户机和服务器搞在同一个局域网里;然后在网络协议设置为自动获得IP地址。试验的客户端可以是 win 也可以 linux ;因为是在虚拟机里做的、先用windows 试验、易者优先;
看一下就i这样:
在完成widos上设置客户端后他就会从服务器自动获得IP地址;
(局域网lan 上;同时服务器也可以从客户端获得地址的同时也在使用查看着日志的变化,)
当服务器到一个广播包、然后就分配至它一个无用的ip 地址;然后请求、发送给它绑定至MAC地址。
完了之后就可以查看服务器那边日志的更新都有什么:
( tail –f /var/log/message -f 刷新日志、有动态日志就会有所更新 )
同样的这个是 服务器上的 记录四个步骤:
(客户端IP租用请求、服务器提供,客户端接受选择、最后服务器确认)
当然也可以查看一个地址租用的记录:
( 指令 :vim /var/lib/dhcpd/dhcpd.leases )
但如果有些地址需要保留;这就要特别的注明出来:所以就要分段来写明了,表明分段的是保留下的;
range domain-bootp 192.168.2.2 192.168.99
range domain-bootp 192.168.2.201192.168.153
也就说明从 100--- 200 的地址就保留下来了;不能动态分配给其他。