Keywords: DHCP SERVER IOS pool client-identifier excluded-address helper-address spantree portfast
一位客户想把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[[The No.x Link End.]]
DHCP Commands
ip helper-address
portfast