对于CISCO路由器dhcp配置的多方研究
在路由器方面,相信大家都知道CISCO。那么对于它的DHCP服务器配置,不知道大家是否有所了解呢?这里我们就来详细介绍一下CISCO路由器dhcp配置的内容吧。把路由器配置为dhcp的服务器端,以对路由器下所连接的客户工作站进行ip地址的分配。
解决实例
下面 CISCO路由器dhcp配置命令,可以配置路由器为DHCP服务器,用以给DHCP客户端动态分配ip地址。
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#service dhcp //开启 DHCP 服务 Router1(config)#ip dhcp pool 172.25.1.0/24 //定义DHCP地址池 Router1(dhcp-config)#network 172.25.1.0 255.255.255.0 // 用network 命令来定义网络地址的范围 Router1(dhcp-config)#default-router 172.25.1.1 //定义要分配的网关地址 Router1(dhcp-config)#exit Router1(config)#ip dhcp excluded-address 172.25.1.1 172.25.1.50 //该范围内的ip地址不能分配给客户端 Router1(config)#ip dhcp excluded-address 172.25.1.200 172.25.1.255 //该范围内的ip地址不能分配给客户端 Router1(config)#end Router1#
CISCO路由器dhcp配置的相关讨论
1 CISCO路由器dhcp服务器功能也是在ios 12.0(1)T.以后才出现的,这一功能的出现,使我们没有必要在专门网络的中心(或者说企业本部)另外配置一台DHCP server,从而降低了网络构建成本。
2 在路由器上直接配置dhcp服务器相比于传统的在专门服务器上实现dhcp有其独到的优点。
比如
A 由于传统的构建方法是,在企业的总部设立DHCP服务器,各分支机构通过路有器去获取ip地址,所以当dhcp服务器出现问题的时候,整个企业的网络都会受到影响,而如果把dhcp 服务器功能设在各个分支机构的路由器上实现,则某个分支机构的路由器DHCP出现问题,就只能影响该分支机构的网络本身,而其他分支机构则不受任何影响。从而可见,实现了问题的局部化。
B 在各分支机构的路由器上实现DHCP服务器功能后,大量的DHCP UDP请求报文将不会通过wan link 转发到 中心机构上去,由此,相比于传统的方式,它有减少广域网负荷的优点。
C 同样的道理,在各分支机构的路由器上实现DHCP服务器功能后,如果某条广域网连路坏了,本地的局域网依然能够正常运行
D基于路由器的DHCP 具有很高的可管理性,它通过ios的命令界面是比较容易配置的。
3 上边的配置例子,我们用ip dhcp exclude-address 命令来指定不能用来被分配的ip地址,这种配置往往是很需要的(甚至说是必需的,几乎所有的;路有其DHCP 服务器配置中都会有),因为往往有一些地址我们会用来作为其他的用途,比如,我们至少应该保留路有器本身的地址不被分配给dhcp客户端,还有一些比如说网络服务器,打印机等等,我们也往往会给他指定静态的地址,所以这一部分地址。我们不允许路有其分配出去,上例中的172.25.1.1 到172.25.1.50 之间,172.25.1.200 到172.25.1.255的地址就做了保留。
4 当路由器给客户端动态分配地址后,就会绑定(binding)分配的ip地址以及客户端设备的mac地址信息,保存在路由器的配置中,以便下一次相同的mac地址请求dhcp服务也能够获得同样的ip地址。下面给出的例子是,用show ip dhcp binding 命令显示的 ip binding的信息。其中Lease expiration 表示该ip 地址,客户端还能占有的时间,(当然客户端可以在期满之前再次发送dhcp请求报,事实上dhcp的规范也是有这样的规定的,即在租期还有一半时间的时候就会发出dhcp请求,如果租期更新失败,那么再过省下时间的一半的时候,他还会发出dhcp的请求,依此类推。)
Router1#show ip dhcp binding IP address Hardware address Lease expiration Type 172.25.1.51 0100.0103.85e9.87 Apr 10 2003 08:55 PM Automatic 172.25.1.52 0100.50da.2a5e.a2 Apr 10 2003 09:00 PM Automatic 172.25.1.53 0100.0103.ea1b.ed Apr 10 2003 08:58 PM Automatic Router1#
CISCO路由器dhcp配置的各种选项
问题的提出
你希望在dhcp服务器中配置各种参数,已用来动态分配给dhcp客户端。
解决方案
你可以通过下面的命令来配置各种dhcp参数。
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#ip dhcp pool ORAserver Router1(dhcp-config)#host 172.25.1.34 255.255.255.0 Router1(dhcp-config)#client-name bigserver Router1(dhcp-config)#default-router 172.25.1.1 172.25.1.3 Router1(dhcp-config)#domain-name oreilly.com Router1(dhcp-config)#dns-server 172.25.1.1 10.1.2.3 Router1(dhcp-config)#netbios-name-server 172.25.1.1 Router1(dhcp-config)#netbios-node-type h-node Router1(dhcp-config)#option 66 ip 10.1.1.1 Router1(dhcp-config)#option 33 ip 24.10.1.1 172.25.1.3 Router1(dhcp-config)#option 31 hex 01 Router1(dhcp-config)#lease 2 Router1(dhcp-config)#end Router1#
关于CISCO路由器dhcp配置的相关讨论;
dhcp可以动态分配除ip 地址以外的默认路由,域名,域名服务器的地址,wins 服务器的地址等信息给客户端。在RFC2132种定义了大量的标准配置选项,可以在那里阅读到更加详细的信息。但是大部分的DHCP配置往往只是用到其中规定的很小的一部分常用选项。
为了配置的简单化和易于理解,cisco提供了一些人类易于理解的别名来代替RFC2132种规定的配置选项.
然你既可以使用cisco提供的用户友好的别名来配置,也可以用option number命令来配置,这两种方式cisco的ios都是可接受的。比如说,RFC 2132 中的option 6是表示域名服务器的地址,则以下的两种命令行结果一样。
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#ip dhcp pool 172.25.2.0/24 Router1(dhcp-config)#dns-server 172.25.1.1 Router1(dhcp-config)#end Router1#
CISCO路由器dhcp配置方式一
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#ip dhcp pool 172.25.2.0/24 Router1(dhcp-config)#option 6 ip 172.25.1.1 Router1(dhcp-config)#end Router1#
CISCO路由器dhcp配置方式二
值得注意的是,你配置路由器的时候敲入的是配置2的命令,但是show runining configuration 命令得到则是他的用户友好的别名,这可能会使你有些疑惑,但是实际上其结果是一样的,请你放心。
有些配置选项可以接受多个配置参数,例如默认路由以及域名服务器都可以接受最多八个地址的配置,上面例子中就分别配置了两个默认路由器(默认网关)和两个域名服务器的地址。
为了配置的方便,你也可以采用继承的方法来配置各种参数。如下实例,首先配置父亲的dhcp地址池 ROOT (172.25.0.0/16),其次我们又配置了两个子地址池172.25.1.0/24 和172.25.2.0/24。这两个子地址池,能够自动继承父亲地址池的配置信息。当然,如果子地址池的配置信息和父亲地址池的配置信息重复,则孩子地址池的信息覆盖父亲地址池的配置信息。
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#ip dhcp pool ROOT Router1(dhcp-config)#network 172.25.0.0 255.255.0.0 Router1(dhcp-config)#domain-name oreilly.com Router1(dhcp-config)#dns-server 172.25.1.1 10.1.2.3 Router1(dhcp-config)#lease 2 Router1(dhcp-config)#exit Router1(dhcp)#ip dhcp pool 172.25.1.0/24 Router1(dhcp-config)#network 172.25.1.0 255.255.255.0 Router1(dhcp-config)#default-router 172.25.1.1 Router1(dhcp-config)#exit Router1(dhcp)#ip dhcp pool 172.25.2.0/24 Router1(dhcp-config)#network 172.25.2.0 255.255.255.0 Router1(dhcp-config)#default-router 172.25.2.1 Router1(dhcp-config)#lease 0 0 10 Router1(dhcp-config)#end Router1#
必须说明的是,dhcp租期配置信息是唯一不能继承的dhcp配置选项,也就是说,你必须为每个孩子地址池显式配置dhcp租期。如果该地址池没有配置dhcp租期。则路由器使用默认的租期(24小时)。
上面的实例中有几个用option配置的命令,其配置的意义为:
Router1(dhcp-config)#option 66 ip 10.1.1.1 Router1(dhcp-config)#option 33 ip 192.0.2.1 172.25.1.3 Router1(dhcp-config)#option 31 hex 01 option 66 ip 定义了tftp 服务器。 Option 33 ip 定义了静态路由
他告诉所有的终端设备将发往目的地192.0.2.1的数据报,首先发送到172.25.1.3。
Option 31 规定了客户端使用ICMP Router Discovery Protocol(IRDP)
使用这个协议,客户端可以定期从本地路由器获得更新信息,用以决定自己的最新的默认网关地址。
关于DHCP的租期相关讨论和配置
问题的提出:
DHCP的租期(DHCP Lease Periods)是DHCP相关知识中,一个比较重要的该概念,这里单独列出来进行说明。
基本的配置如下:
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#ip dhcp pool 172.25.2.0/24 Router1(dhcp-config)#lease 2 12 30 Router1(dhcp-config)#end Router1#
关于配置的讨论
1 lease 命令的基本格式是 lease [days] [hours] [minutes]
上面的例子,表示设定DHCP租约为2天12小时30分。 你可以配置最大值为365天23小时59秒,也可以设置最小值1秒。默认的DHCP租约是1天。
2 一般的规则是,对于那种dhcp客户端数量比较大,并且客户端联入网络,断开网络比较频繁的场合,一般把租约的时间配置的比较短,这样子使得ip地址很快被收回,可以供另外的dhcp请求客户使用。比较经典的场合时比如飞机场的无线网络。但是越短的租约,也使得dhcp请求包过多,增加了网络的负担。
3 相反的,在一个相对稳定的网络环境中,比如小型的办公室网络,由于客户端的数量往往变化不大,所以可以考虑适当的增加dhcp的租约。这样做的主要好处是,可以减少dhcp服务器的负担。
4 记住,客户端在自己的租约还有一半的时候,就会向服务器发出更新租约的请求,如果成功,则租约从新恢复为完整的租期,如果失败,则又过剩下的一半租约后,再发出更新请求,如此规律,直到成功更新为止。
5 在很多场合,默认的一天的租约是比较合理的,一般很少作修改。
5 一种比较极端的配置是,你可以规定租约为永久,即一旦客户端获得了ip地址后,只要他不物理断网,以后就再也不会向服务器发送dhcp租约更新请求了。这种配置在现实中就更加少见了。配置命令如下:
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#ip dhcp pool COOKBOOK Router1(dhcp-config)#lease infinite //规定租约为无限制 Router1(dhcp-config)#end Router1#