介绍
给接入服务器上的拨入客户机分配IP地址的机制有很多种。向客户机分配IP地址的若干可能选项包括:
向接入服务器上的本地IP地址池分配一个地址。
使用外部动态主机控制协议(DHCP)服务器。
使用RADIUS或TACACS。
本文重点讨论如何使用具有接入服务器功能的Cisco IOS® 服务器来向拨入客户机分配IP地址和其它DHCP变量。这样可避免使用DHCP外部服务器,相反,您可以使用Cisco IOS本身的内置DHCP服务器功能。DHCP使您能够自动向DHCP客户分配可重复使用的IP地址。
Cisco IOS DHCP服务器的特性是从路由器内特定的地址池向DHCP客户机分配和管理IP地址的全面DHCP服务器实施。如果Cisco IOS DHCP服务器不能利用自身的数据库满足某个DHCP请求,它可以将请求转发给网络管理员定义的一个或多个辅助DHCP服务器。
欲了解更多关于Cisco IOS DHCP功能以及限制和所支持平台的更详尽信息,请参考 Cisco IOS DHCP 服务器 文件。在这种情况下,了解哪些参数可以传送给PP客户机很有帮助。
注: 我们不能为PPP客户机分配子网掩码。这是因为受到申请注释(RFC)本身的限制。这方面的原因是:在PPP与PPP客户机协商时,经过PPP和IP控制协议协商下述参数:
IP地址。
主要与辅助域名系统(DNS)地址。
主要与辅助NetBIOS名称服务(NBNS)地址。
TCP/IP报头压缩。
将子网掩码传送到PPP客户机不是PPP(RFC 1548) 或IPCP (RFC 1332)协议的一部分。 async-bootp dns-server 和async-bootp nbns-server 等 async-bootp命令将信息传送到PPP客户机,因为这些字段是通过PPP协商的。async-bootp subnet-mask 不是通过PPP传送的一项参数。
在您为串行线路互联网协议(SLIP)配置路由器时,async-bootp 全局配置命令按RFC中的定义实现对扩展Bootstrap Protocol (BOOTP)的支持。在运行拨号联网的Windows 95或NT PC 机拨号访问您的路由器时,它正在执行PPP而不是BOOTP或SLIP。这就是说,您无法将子网掩码发送到Windows 95或NT PPP拨入客户机或相关网关。在您拥有从接入服务器动态地获得其IP地址的Window拨入客户机时,您可以看到子网掩码被设置为255.0.0.0。因为这是一条点到点连接,所以子网掩码并不重要,因为拨入客户机作为单个主机路由(255.255.255.255网络掩码)是接入服务器所知的。接入服务器为每个连接的拨入客户机配有1条主机路由。
查看下述RFC,以了解PPP协商中哪些是可能的:
RFC 1332
RFC 2484
RFC 1877
您可以点击 这里 或从其它任何公共RFC库访问这些RFC。
硬件与软件版本
这种配置是在Cisco 5300路由器上使用Cisco IOS®软件版本12.1(9)开发和测试的。Cisco IOS软件版本12.0(1)T中增加了Cisco IOS DHCP特性。使用特性导航软件( Feature Navigator )来检查您现用的IOS版本和平台是否支持IOS DHCP服务器特性。
注: 使用Cisco 1700系列路由器时您需要使用Cisco IOS软件版本12.0(2)T或更高版。
配置
Caramel
caramel#show running-config
Building configuration...
Current configuration : 3030 bytes
!
! Last configuration change at 14:02:23 CEST Thu Aug 23 2001
! NVRAM config last updated at 12:25:26 CEST Thu Aug 23 2001
!
version 12.1
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname caramel
!
boot system flash:
aaa new-model
AAA authentication login default local
AAA authentication ppp default local
AAA authorization network default local
enable password ww
!
username ww password 0 ww
username vpdn password 0 vpdn
username async password 0 async
username test password 0 test
s