1.1 DHCP概述 DHCP(Dynamic Host Configuration Protocal)就是动态主机配置协议哈,可以自动配置主机的IP地址、子网掩码、网关及DNS等TCP/IP信息。所以DHCP可以有效地降低客户端IP地址配置的复杂度和网络的管理成本。如果路由器能够转发DHCP请求,只需要在一个子网中配置DHCP服务器就可以向其他子网提供TCP/IP配置的服务支持哈~~ 1.2 DHCP的应用环境 DHCP主要应用在以下两个应用环境,一个就是局域网中存在大量主机,第二种就是局域网中存在比较多的移动办公设备。 1.3 DHCP术语 DHCP服务器:配置DHCP服务的计算机 DHCP客户端:启用DHCP设置的计算机 作用域:一个完整连续的可用IP地址范围,DHCP服务主要就是通过作用域来管理网络分布、IP地址分配及其他相关配置参数。 超级作用域:管理级的作用域集合,用于支持同一物理网络上的多个逻辑IP子网。超级作用域包含子作用域的列表,对子作用域进行统一管理。 排除范围:排除范围是作用域内从DHCP服务中排除的有限IP地址序列。排除范围确保在这些范围中的任何地址都不是由网络上的服务器提供给DHCP 客户机的。 地址池:在定义DHCP作用域并应用排除范围之后,剩余的地址在作用域内形成可用地址池,也就是作用域中包含的可用IP地址范围哈,地址池中的地址可以由DHCP服务器动态分配给DHCP客户机。 租约:客户计算机可以使用动态分配的IP地址的时间,这个时间可以由DHCP服务器设定哈。当向一台客户机发出租约后,此租约就被看作是活动的,在租约终止前,客户机可以向DHCP服务器更新其租约。当租约到期或被服务器删除后,它就变成不活动的了,租约持续时间决定了租约什么时候终止及客户机隔多久向DHCP服务器更新其租约。 预约:创建从DHCP服务器到客户机的永久地址租约指定,预约可以保证子网上的特定硬件设备总是使用相同的IP地址,这对于远程访问网关、DNS服务器等必须要配置IP地址的计算机非常有用。 选项类型:DHCP服务器向DHCP客户机提供租约服务时可以指定的其他客户机配置参数。典型地这些选项类型由各个作用域启用和配置。虽然大多数选项都是在RFC2132中预定义了,但若需要的话,我们还是可以使用DHCP管理器定义并添加自定义选项类型。 选项类别:DHCP服务用于进一步提供给客户机的选项类型的方法。选项类别可以在用户的DHCP服务器上配置以提供特定的客户机支持。当一个选项类别添加到服务器后,就可以为该类别的客户机配置提供特定类别的选项类型。 1.4 DHCP工作原理 我们来了解下DHCP的工作原理哈~~ (1)当DHCP客户机第一次登录网络时,如果客户机上没有任何IP信息设定,它会向网络发出DHCP DISCVER数据包,为保证服务器能够接收到请求,数据包源地址设定为0.0.0.0,而目的地址为255.255.255.255,以广播形式发送DHCP DISCOVER的信息。 (2)当DHCP服务器监听到客户端发出的DHCP DISCOVER广播后,它会从那些还没有租出的地址范围内选择可用的IP及其他TCP/IP设定以DHCP OFFER数据包的形式发送给客户机。 (3)如果客户端收到网络上多台DHCP服务器的响应,客户端会挑选最快的一个DHCP OFFER并向网络发送一个DHCP REQUEST广播封包,告诉所有DHCP服务器它将使用哪一台服务器提供的IP地址。同时,客户端还会向网络发送ARP广播数据包,查询网络上面有没有其他机器使用该IP地址,如果发现该IP地址已经被占用,客户端则会发送一个DHCP DECLINE数据包给DHCP服务器,拒绝接受其DHCP OFFER,并重新发送DHCP REQUEST信息。 注:实际上并不是所有DHCP客户端都会无条件接受DHCP服务器的响应,客户端可以保留自己的一些TCP/IP设定,比如网关、DNS地址等等哈~~~ (4)将地址分配给客户端后,DHCP服务器会发送一个DHCP ACK消息,以确认IP租约的正式生效,结束完整的DHCP工作过程。 (5)DHCP客户端成功地从服务器取得IP地址之后,一般不需要再发送DHCP DISCOVER信息了,除非其租约已经到期或者IP地址重新设定回0.0.0.0。此时客户端会直接使用已经租用到的IP地址向为其发此IP地址的DHCP服务器发出DHCP REQUEST信息,DHCP服务器会尽量让客户端使用原来的IP地址,如果没有特殊的情况,会直接响应DHCP ACK,允许客户端继续使用该IP地址。如果该地址已经失效或者已经被其他主机使用了,服务器则会响应一个DHCP NACK数据包给客户端,要求其重新执行DHCP DISCOVER。 注意:客户端执行DHCP DISCOVER后,如果没有DHCP服务器响应客户端的请求,客户端会随机使用169.254.0.0/16网段中的一个IP地址配置本机地址。 2 安装DHCP服务 2.1 DHCP所需软件 dhcp-3.0.5-7.el5.i386.rpm 这是DHCP主程序包,包括DHCP服务和中继代理程序,安装该软件包进行相应配置,即可以为客户机动态分配IP地址及其他TCP/IP信息。
dhcp-devel-3.0.5-7.el5.i386.rpm 这是DHCP服务器开发工具软件包,为DHCP开发提供库文件支持。
dhcpv6-0.10-33.el5.i386.rpm 这是DHCP的IPv6扩展工具,使DHCP服务器能够支持IPv6的最新功能,如IPv6地址的动态配置以及IPv6中继代理等等哈~~
dhcpv6_client-0.10-33.el5.i386.rpm 这是DHCP客户端IPv6软件包,帮助客户端获取动态IP地址。 2.2 DHCP的安装 我们先检测下系统是否已经安装了DHCP相关软件哈~:rpm -qa | grep dhcp
2)dhcpd.conf主配置文件整体框架 dhcpd.conf包括全局配置和局部配置。 全局配置可以包含参数或选项,该部分对整个DHCP服务器生效。 局部配置通常由声明部分来表示,该部分仅对局部生效,比如只对某个IP作用域生效哈~ dhcpd.conf文件格式: #全局配置
参数或选项; #全局生效
#局部配置
声明 {
参数或选项; #局部生效
} 当DHCP主程序包安装好后会自动生成主配置文件的范本文件/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
选项或参数;
} 常见声明的使用如下: (1)subnet 网络号 netmask 子网掩码 {......} 作用:定义作用域,指定子网
4.1 DHCP规划 (1)小型网络DHCP服务器
ddns-update-style none; ignore client-updates; subnet 192.168.2.0 netmask 255.255.255.0 { # --- default gateway option routers 192.168.2.1; option subnet-mask 255.255.255.0; option nis-domain "domain.org"; option domain-name "domain.org"; option domain-name-servers 192.168.2.2; 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.2.50 192.168.2.250; default-lease-time 21600; max-lease-time 43200; # 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; } } subnet 192.168.3.0 netmask 255.255.255.0 { # --- default gateway option routers 192.168.3.1; option subnet-mask 255.255.255.0; option nis-domain "domain.org"; option domain-name "domain.org"; option domain-name-servers 192.168.2.2; 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.3.50 192.168.3.250; default-lease-time 21600; max-lease-time 43200; max-lease-time 43200; } |
Jan 19 16:02:51 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da via eth1 Jan 19 16:02:51 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da via eth0 Jan 19 16:02:52 rhel5 dhcpd: DHCPOFFER . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:52 rhel5 dhcpd: DHCPOFFER . 192.168.2.250 to 00:19:21:bd:a3:da (mis) via eth0 Jan 19 16:02:52 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:52 rhel5 dhcpd: DHCPACK . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:52 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth0: ignored (not authoritative). Jan 19 16:02:53 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:53 rhel5 dhcpd: DHCPOFFER . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:53 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da (mis) via eth0 Jan 19 16:02:53 rhel5 dhcpd: DHCPOFFER . 192.168.2.250 to 00:19:21:bd:a3:da (mis) via eth0 Jan 19 16:02:53 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:53 rhel5 dhcpd: DHCPACK . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:53 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth0: ignored (not authoritative). Jan 19 16:02:54 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:54 rhel5 dhcpd: DHCPOFFER . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:54 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da (mis) via eth0 Jan 19 16:02:54 rhel5 dhcpd: DHCPOFFER . 192.168.2.250 to 00:19:21:bd:a3:da (mis) via eth0 Jan 19 16:02:54 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:54 rhel5 dhcpd: DHCPACK . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:54 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth0: ignored (not authoritative). Jan 19 16:02:55 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:55 rhel5 dhcpd: DHCPOFFER . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:55 rhel5 dhcpd: DHCPDISCOVER from 00:19:21:bd:a3:da (mis) via eth0 Jan 19 16:02:55 rhel5 dhcpd: DHCPOFFER . 192.168.2.250 to 00:19:21:bd:a3:da (mis) via eth0 Jan 19 16:02:55 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:55 rhel5 dhcpd: DHCPACK . 192.168.3.250 to 00:19:21:bd:a3:da (mis) via eth1 Jan 19 16:02:55 rhel5 dhcpd: DHCPREQUEST for 192.168.3.250 (192.168.3.1) from 00:19:21:bd:a3:da (mis) via eth0: ignored (not authoritative). |
- 通过这种方式,DHCP服务器可为单个物理网络上的客户机提供多个作用域的租约。
- 支持DHCP和BOOTP中继代理,能够为远程DHCP客户端分配TCP/IP信息,搭建DHCP服务器时,可以根据网络部署需求,选择使用超级作用域。
- 现有网络IP地址有限,而且需要向网络添加更多的计算机,最初的作用域无法满足要求,需要使用新的IP地址范围扩展地址空间。
- 客户端需要从原有作用域迁移到新作用域;当前网络对IP地址进行重新规划,使客户端变更使用的地址,使用新作用域声明的IP地址。
[参数]
#该参数对所有子作用域有效,可以不配置
subnet 子网编号 netmask 子网掩码 {
[参数]
[声明]
}
} 企业内部建立DHCP服务器,网络规划采用单作用域的结构,使用192.168.0.0/24网段的IP地址。随着公司规模扩大,设备数量增多,现有的IP地址无法满足网络的需求,需要添加可用的IP地址。这时我们可以使用超级作用域完成增加IP地址的目的,在DHCP服务器上添加新的作用域,使用192.168.8.0/24网段扩展网络地址的范围。
5.1 Linux客户端配置 配置Linux客户端需要修改网卡配置文件,将BOOTPROTO项设置为BOOTPROTO=dhcp。 (1)将BOOTPROTO=none修改为BOOTPROTO=dhcp,启用客户端DHCP功能。 vim /etc/sysconfig/network-.s/ifcfg-eth0
6.1 dhcpd
本文出自 “王乾De技术博客” 博客,谢绝转载!