首先假设两台思科路由器,R1(服务端)连接R2(客户端),组成一个简单的链式局域网,下面就来实现DHCP,配置的命令及其解释如下:
1、R1 dhcp服务的配置
dhcp#configure terminal //进入全局模式
dhcp(config)#service dhcp //打开dhcp功能
dhcp(config)#no ip dhcp conflictlogging //关闭dhcp日志记录
dhcp(config)#ip dhcp pool cisco //配置dhcp服务器的名称为cisco
dhcp(dhcp-config)#network 192.168.1.0 255.255.255.0 //配置dhcp服务器要分配的网段
dhcp(dhcp-config)#default-router 192.168.1.1 //配置默认网关为192.168.1.1
dhcp(dhcp-config)#dns-server 192.168.1.1 //配置dns服务器为192.168.1.1
dhcp(dhcp-config)#lease 3 //地址租用期限: 3天
dhcp(dhcp-config)#exit //退出dhcp配置模式
dhcp(config)#ip dhcp excluded-address 192.168.1.200 192.168.1.254 //配置dhcp不分配的地址
2、R2客户端获取IP地址
Client#configureterminal //进入全局模式
dhcp(config)#interfacefastethernet0/0 //进入fastethernet0/0接口
dhcp(config-if)#ip address dhcp //从dhcp服务器获取IP地址
Cisco设备上设置DHCP实例
一位客户想把DHCP SERVER迁移到6509交换机的MSFC上,要求还挺复杂:
1.同时为多个VLAN的客户机分配地址
2.VLAN内有部分地址采用手工分配的方式
3.为客户指定网关、Wins服务器等
4.VLAN 2的地址租用有效期限为1天,其它为3天
5.按MAC地址为特定用户分配指定的IP地址
最终配置如下:
ip dhcp excluded-address 10.1.1.1 10.1.1.19 //不用于动态地址分配的地址
ip dhcp excluded-address 10.1.1.240 10.1.1.254
ip dhcp excluded-address 10.1.2.1 10.1.2.19
!
ip dhcp pool global //global是pool name, 由用户指定
network 10.1.0.0 255.255.0.0 //动态分配的地址段
domain-name client.com //为客户机配置域后缀
dns-server 10.1.1.1 10.1.1.2 //为客户机配置dns服务器
netbios-name-server 10.1.1.5 10.1.1.6 //为客户机配置wins服务器
netbios-node-type h-node //为客户机配置节点模式(影响名称解释的顺利,如h-node=先通过wins服务器解释…)
lease 3 //地址租用期限: 3天
ip dhcp pool vlan1
network 10.1.1.0 255.255.255.0 //本pool是global的子pool, 将从global pool继承domain-name等option
default-router 10.1.1.100 10.1.1.101 //为客户机配置默认网关
!
ip dhcp pool vlan2 //为另一VLAN配置的pool
network 10.1.2.0 255.255.255.0
default-router 10.1.2.100 10.1.2.101
lease 1
!
ip dhcp pool vlan1_john //总是为MAC地址为…的机器分配…地址
host 10.1.1.21 255.255.255.0
client-identifier 010050.bade.6384 //client-identifier=01加上客户机网卡地址
!
ip dhcp pool vlan1_tom
host 10.1.1.50 255.255.255.0
client-identifier 010010.3ab1.eac8
相关的DHCP调试命令:
no service dhcp //停止DHCP服务[默认为启用DHCP服务]
sh ip dhcp binding //显示地址分配情况
show ip dhcp conflict //显示地址冲突情况
debug ip dhcp server {events | packets | linkage} //观察DHCP服务器工作情况
如果DHCP客户机分配不到IP地址,常见的原因有两个。第一种情况是没有把连接客户机的端口设置为Portfast方式。MS客户机开机后检查网卡连接正常,Link是UP的,就开始发送DHCPDISCOVER请求,而此时交换机端口正在经历生成树计算,一般需要30-50秒才能进入转发状态。MS客户机没有收到DHCP SERVER的响应就会给网卡设置一个169.169.X.X的IP地址。解决的方法是把交换机端口设置为Portfast方式:CatOS(4000/5000/6000): set spantree portfast mod_num/port_num enable; IOS(2900/3500): interface … ; spanning-tree portfast。
另外一种情况是DHCP服务器和DHCP工作站不在同一个VLAN,这时候通常通过设置ip helper-address来解决:
interface vlan1
ip address 10.1.1.254 255.255.255.0 //假设DHCP服务器地址为10.1.1.8
interface Vlan2
ip address 10.1.2.254 255.255.255.0
ip helper-address 10.1.1.8 //假设这是DHCP客户机所在的VLAN
参考资料网页:
DHCP Configuring
DHCP Commands
ip helper-address
portfast