环境:cisco dhcp server和客户端都属于vlan27,dhcp server 接在交换机G0/1,客户端接在交换机的G0/2
cisco dhcp server相关配置
ip dhcp pool vlan27 network 192.168.27.0 255.255.255.0 default-router 192.168.27.1 dns-server 192.168.27.1 interface Vlan27 ip dhcp relay information trusted //必须配置,否则客户端获取不到地址 ip address 192.168.27.1 255.255.255.0
access-switch交换机相关配置
ip dhcp snooping vlan 27 ip dhcp snooping interface GigabitEthernet0/1 switchport access vlan 27 switchport mode access media-type rj45 speed 100 duplex full no negotiation auto spanning-tree portfast edge ip dhcp snooping trust
说明:
1、路由器连接交换机的三层接口或者interface vlan里面必须配置 ip dhcp relay information trusted,否则客户端无法获取地址
因为access-switch接入层交换机默认开启了ip dhcp snooping information option,此时接入层交换机会在客户端发出的dhcp请求报文中插入option82信息(关于option82请看这里),由于dhcp server和客户端处于同一个网段中并没有经过dhcp中继代理,对于cisco的dhcp server而言,如果收到了一个插入了option82的请求报文,那么就会认为是一个从dhcp中继代理过来的请求报文,此时就会检查该报文的giaddr字段,但是由于属于同网段该字段是0.0.0.0 dhcp server会认为是一个不合法的地址,此时就会将该报文丢弃,导致客户端获取不到IP地址
针对此情况cisco ios就有一条专门处理的命令来避免此问题 ip dhcp relay information trusted(接口命令)或者ip dhcp relay information trust-all(全局命令,对所有路由器接口都有效);这两条命令的作用就是允许被插入了选项82信息,但其giaddr字段为0.0.0.0的DHCP请求报文通过。
注:
1、上述的情况还可以在接入层交换机上面关闭插入option82选项的功能,这样即使dhcp不信任giaddr字段是0.0.0.0 也可以获得ip地址。命令是 no ip dhcp snooping information option
2、Windows DHCP服务器应该没有检查这类DHCP请求的机制,所以上面的实例中不论交换机是否插入选项82信息,客户端总是可以得到IP地址。