DHCP服务器的配置与实例
1.DHCP概述
对于那些不太了解网路技术的人来说,配置TCP/IP可能是一件非常复杂的工作,对那些将PC连接到局域网的用户来说只能将配置集中到服务器端,这样可以简化用户端的工作复杂度。当然,这将在一定程度上,增加管理员的工作量,但是从整体考虑,这样是最优的。
DHCP的全称是动态主机配置协议(Dynamic Host Configuration Protocol),由IETF(Internet 网络工程师任务小组)设计,详尽的协议内容在RFC文档rfc2131和rfc1541里。目的就是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。运行DHCP的服务器把TCP/IP网络设置集中起来,动态处理工作站IP地址的配置,用DHCP租约和预置的IP地址相联系,DHCP租约提供了自动在TCP/IP网络上安全地分配和租用IP地址的机制,实现IP地址的集中式管理,基本上不需要网络管理人员的人为干预。而且,DHCP本身被设计成BOOTP(自举协议)的扩展,支持需要网络配置信息的无盘工作站,对需要固定IP的系统也提供了相应支持。使用DHCP主要的好处有一下几点。
① 减少管理员的工作量
② 减小输入错误的可能
③ 避免IP冲突
④ 提高了IP地址利用率等等。
2.DHCP提供的3种IP定位方式
Manual Allocation
人工分配,获得的IP也叫静态地址,网络管理员为某些少数特定的在网计算机或者网络设备绑定IP,且地址不会过期。 同一个路由器一般可以通过设置来划分静态地址和动态地址的IP段,比如一般家用TP-LINK路由器,常见的是从192.168.1.100~192.168.1.254,这样如果你的电脑是自动获得IP的话,一般就是192.168.1.100,下一台电脑就会由DHCP自动分到为192.168.1.101。而192.168.1.2~192.168.1.99为手动配置IP段。
自动分配,其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。
动态分配,当 DHCP客户端 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,而是有一个使用的时限,这个时限被称为租约。只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它客户机使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。动态分配显然比手动分配更加灵活,尤其是当您的实际 IP 地址不足的时候,
同时,DHCP 还可以帮客户端指定 router、netmask、DNS Server、WINS Server、等等项目,您在客户端上面,除了将 DHCP 选项打勾之外,几乎无需做任何的 IP 环境设定。
3.租约产生
客户端一般在启动时会发生租约产生的过程,首先简单地说明DHCP租约产生的过程。
1. 客户端请求IP租约(图1)。DHCP客户端在网络中广播一个DHCP Discover包,该数据包使用UDP的67端口,以源IP地址为0.0.0.0 目的IP地址为255.255.255.255,该数据包还包含客户端的MAC地址和计算机名,以使DHCP服务器能够确定是那个客户端发出的请求。
2. 服务器响应(图2)。当DHCP服务器接受到客户端请求IP地址的信息时,就在自己的IP pool池中是否有可用的IP地址,如果有DHCP服务器广播一个DHCP Offer包,该数据包使用UDP的68端口,源IP地址为DHCP服务器IP地址,目的IP地址为255.255.255.255,该数据包还包含一下信息。
图1 图2
1) DHCP客户端的MAC地址
2) DHCP服务器提供的合法的IP地址。
3) 子网掩码。
4) 租约期限。
3. 客户端选择(图3)。DHCP客户端从接收到的第一个DHCP Offer包中选择IP地址,并发送DHCP Request包广播,表明它使用IP地址的提供服务器。该数据包使用UDP的67端口以源IP地址为0.0.0.0 目的IP地址为255.255.255.255。
4. 服务器确认(图4)。DHCP服务器在收到DHCP Request包后,会以DHCP ACK包向客 户端广播确认成功。该数据包使用UDP的68端口,源IP地址为DHCP服务器IP地址,目的IP地址为255.255.255.255。当客户端收到DHCP ACK后,就会使用得到的IP地址。完成整个租约产生的过程。
图3 图4
4.更新租约。
DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过50%时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。如果客户端无法与提供租约的DHCP服务器通信,则客户端会再次等到租约到达87.5%时,重新进行租约更新。如果租约到达100%时,DHCP服务器还没有响应,则客户端的IP地址则变为192.168.x.y 或是重新进行租约产生的4步(图5)。
图5
5.中继代理
如果DHCP客户端与DHCP服务器之间需要跨越子网时,子网间的路由器必须支持RFC 1542文档的定义。当然也可以配置一个DHCP中继代理来帮助转发DHCP客户端与DHCP服务之间的广播包。
以上都是一些理论,下面来看看具体安装吧。
一、DHCP服务安装
DHCP服务有关的软件包有以下几个。
1. dhcp: DHCP服务器端软件
2. Dhcp-devel: DHCP服务器开发工具
3. Dhcpv6: DHCP的IPv6扩展,使DHCP服务器支持IPv6
4. Dhcpv6_client:DHCP客户端IPv6支持软件
安装与删除DHCP服务器端软件
rpm -ivh dhcp-3.0.5-13.e15.i386.rpm rpm -e dhcp-3.0.5-13.e15.i386.rpm
yum -y install dhcp yum -y remove dhcp
二、DHCP服务启动、暂停
service dhcpd start 启动
service dhcpd restart 重新启动
service dhcpd stop 停止
service dhcpd status 查看当前启动状态
Chkconfig dhcpd on 开机自动加载(级别为2、3、4、5)
三、DHCP服务配置
主配置文件为/etc/dhcpd.conf
记录客户端租约信息的文件是/var/lib/dhcpd/dhcpd.leases
dhcp主配置文件的说明
源文件:
subnet 192.168.0.0 netmask 255.255.255.0 { # 指定网段和子网掩码
option routers 192.168.0.1; # 指定默认路由
option subnet-mask 255.255.255.0; # 指定dhcp的子网掩码
option domain-name "wsm.com.cn"; # 指定域名
option domain-name-servers 192.168.0.1; # 默认DNS服务器
range dynamic-bootp 192.168.0.10 192.168.0.250; # IP分配范围
default-lease-time 1200; #如果客户端不能请求一个指定的租用期,就使
用该参数来定义该地址租用的时间长度
max-lease-time 87600; # 用来指定租用的最长时间,尽管租用的
时间长度是根据客户端的请求决定的。
# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
# }
}
# 以上被注释的部分用来给客户机分配一个永久的IP,也就是可以利用它
来做网卡和IP的绑定
例一: 单作用域 dhcp client 通过dhcp server 可以得到 网关ip 192.168.2.254
子网掩码:255.255.255.0 可分配ip的范围192.168.2.4 192.168.2.254
Dns服务器ip 222.88.88.88 C1为linuc主机,MAC为00:0C:29:60:5C:D0 并绑定ip为 192.168.2.100
编辑主配置文件 /etc/dhcpd.conf如下:
开机dhcp server后,在C1上自动获取一下看看
再看一dhcp server的日记
Liunx 主机C1已经成功获取到了ip地址为192.168.2.100 等相关的信息。
C2 win主机获取
成功获取到了一切信息
例二,多作用域 有两种情况,一种是DHCP服务器只有一个网络接口,通过路由器等设备与其它网段的DHCP客户机连接,另一种是DHCP服务器有至少两个网络接口,分别连接需要DHCP客户机所在是每个网段。
来看第二种配置:
首先在DHCP server 上加一块网卡 设备名为eth1 ip地址为192.168.3.1 属于VMnet 2
Eth0 网卡的ip 192.168.2.2
Eth1 网卡的ip 192.168.3.1
这样在不同的VM里就可以获得不同ip地址了,以上我设的ip地址范围可知。所以在VMnet 2 里的主机只能获得 192.168.3.2 192.168.3.20范围里的其中一个ip地址。在VMnet 1里的主机只能获得 192.168.2.4 192.168.2.10范围里的其中一个ip地址。
例三,假如末公司有300个主机,都需要动态分配ip地址,这样一个作用域就不够需求了,
有没有办法解决呢? 就需用到超级作用域了,怎样配置超级作用域呢。如下:
这里的超级作用域名为wsm 包含了两个网段的作用域。两个作用域的可用ip范围只有一个可用的ip是为了看到效果。。。(⊙o⊙)。
用两台主句获取一下,dhcp日记如下:
可以看到已经获取了。
例四,dhcp中继
要求技术部获得的域名后缀为tec.com ,市场部获得的域名后缀为mrk.com
DNS服务器的ip都为222.88.88.88 和 222.85.85.85
技术部的网段为 192.168.3.0/24 可用ip范围为192.168.3.1-- 192.168.3.100 和192.168.3.200---192.168.3.240 网关 192.168.3.254
市场部的网段为 192.168.4.0/24 可用ip范围为192.168.4.1-- 192.168.4.253 网关 192.168.4.254
DHCP server 配置如下:
Dhcp relay 上的配置,由于我是在虚拟机上配置,dhcp中继就在一台机器上配了。首先加3块网卡 eth0 eth1 eth2
Eth0 ip 192.168.2.254/24
Eth 1 ip 192.168.3.254/24
Eth2 ip 192.168.4.254/24
编辑 vim /etc/sysctl.conf
[root@localhost Packages]# vim /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 改为1 默认为0
[root@localhost Packages]# sysctl -p 是更改立即生效
编辑/etc/sysconfig/dhcrelay
[root@localhost Packages]# vim /etc/sysconfig/dhcrelay
INTERFACES="eth0 eth1 eth2"
# DHCPv4 only
DHCPSERVERS="192.168.2.2"
启动dhcrelay
[root@localhost Packages]# service dhcrelay start
正在启动 dhcrelay: [确定]
技术部和市场部的客户机获得的ip地址如上。
遇到错误的解决办法
1 service dhcpd configtest 检查语法
2. Tail -f /var/log/messages 查看日志
本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1027105