目录
使用 Cisco 统一无线解决方案的客户一直在报告无线局域网控制器 (WLC) 上提供的 DHCP 支持的问题。其中一些问题属于软件 Bug 或可调试性问题,另外一些问题是由于对 DHCP 实施缺乏正确了解引起的。
本文档描述无线控制器上的各种 DHCP 操作,为客户提供准确而一致的信息,努力减少相关客户问题和 TAC 案例。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
外部 DHCP 服务器
在使用外部 DHCP 服务器时,WLC 支持两种 DHCP 操作模式:
· DHCP 代理模式
· DHCP 桥接模式
DHCP 代理模式是一项 DHCP 帮助程序功能,用于实现更高的安全性,并对 DHCP 服务器和无线客户端之间的 DHCP 事务进行控制。DHCP桥接模式提供一个选项做控制器?在DHCP处理的s作用完全地透明对无线客户端。
DHCP 代理和桥接模式比较
|
处理客户端 DHCP |
DHCP 代理模式 |
DHCP 桥接模式 |
|
修改 giaddr |
是 |
否 |
|
修改 siaddr |
是 |
否 |
|
修改数据包内容 |
是 |
否 |
|
不转发冗余内容 |
是 |
否 |
|
选项 82 支持 |
是 |
否 |
|
广播到单播 |
是 |
否 |
|
BOOTP 支持 |
否 |
服务器 |
|
不符合 RFC |
代理和中继代理不完全是同一个概念。推荐使用 DHCP 桥接模式,这样才能完全符合 RFC 标准。 |
否 |
DHCP 代理模式
DHCP 代理并不适用于所有网络环境。控制器将修改并转发所有 DHCP 事务,以提供帮助程序功能,并处理某些安全问题。
控制器?s虚拟IP地址通常使用作为所有DHCP处理源IP地址对客户端的。因此,不会公开真实的 DHCP 服务器 IP 地址。此虚拟 IP 在控制器上的 DHCP 事务的 debug 输出中显示。不过,在某些类型的客户端上使用虚拟 IP 地址可能会导致问题。
不管是对称移动协议还是非对称移动协议,DHCP 代理模式操作的行为都是相同的。
当多个数据包来自外部 DHCP 服务器时,DHCP 代理通常会选择第一个进入的数据包,并在客户端数据结构中设置服务器的 IP 地址。因此,以下所有事务都将通过同一个 DHCP 服务器,直到某个事务在重试后失效。这时,代理将为客户端选择其他 DHCP 服务器。
默认情况下会启用 DHCP 代理。所有将要进行通信的控制器必须采用相同的 DHCP 代理设置。
注意: 必须启用 DHCP 代理,以便 DHCP 选项 82 能够正常运行。
实际上,当控制器处于 DHCP 代理模式时,它不仅会将 DHCP 数据包传送至 DHCP 服务器,而且也会构建新的 DHCP 数据包并将其转发到 DHCP 服务器。客户端 DHCP 数据包中的所有 DHCP 选项将复制到控制器的 DHCP 数据包中。接下来的屏幕截图示例显示了 DHCP 请求数据包的这一过程。
客户端角度
此屏幕截图描述的是从客户端角度截取的数据包捕获过程。它显示了 DHCP 发现,DHCP 提供、DHCP 请求和 DHCP ACK。DHCP 请求将突出显示,并且 bootp 协议详细信息将进一步显示 DHCP 选项。
服务器角度
此屏幕画面从服务器采取的是数据包捕获?s前景。类似于前一示例,它显示了 DHCP 发现,DHCP 提供、DHCP 请求和 DHCP ACK。不过,这些都是控制器在充当 DHCP 代理时构建的数据包。同样,DHCP 请求将突出显示,并且 bootp 协议详细信息将进一步显示 DHCP 选项。请注意,它们与客户端 DHCP 请求数据包中的内容相同。另外请注意,WLC 代理将转发数据包并突出显示数据包地址。
要将控制器用作 DHCP 代理,必须在控制器上启用 DHCP 代理功能。默认情况下会启用此功能。要启用 DHCP 代理,必须使用以下 CLI 命令。而且,在 4.2.x.x 代码中,此操作只能在 CLI 中完成。
(Cisco Controller) >config dhcp proxy
enable(Cisco Controller) >show dhcp proxyDHCP Proxy Behavior: enabled
要运行 DHCP 代理,必须在需要 DHCP 服务的每个控制器接口上配置一个主 DHCP 服务器。可以在管理接口、AP 管理器接口和动态接口上配置 DHCP 服务器。以下 CLI 命令可用于配置每个接口的 DHCP 服务器。
(Cisco Controller) >config interface
dhcp ap-manager primary <primary-server>(Cisco Controller) >config
interface dhcp management primary <primary-server>(Cisco Controller)
>config interface dhcp dynamic-interface <interface-name> primary
<primary-server>
DHCP 桥接功能是一项全局设置,因此会影响控制器内的所有 DHCP 事务。
以下是 debug dhcp
packet enable 命令的输出。该 debug 显示,控制器从 MAC 地址为 00:40:96:b4:8c:e1 的客户端收到一个 DHCP 请求,向 DHCP 服务器传送了一个 DHCP 请求,从 DHCP 服务器收到一个回复,并向客户端发送了一个 DHCP 提供。
(Cisco Controller) >debug dhcp message
enableThu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP received op BOOTREQUEST (1) (len 312,
port 29, encap 0xec03)Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1
DHCP option len (including the magic cookie) 76Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP option: message type = DHCP REQUESTThu Jun 25 21:48:55
2009: 00:40:96:b4:8c:e1 DHCP option: 61 (len 7) - skippingThu Jun 25 21:48:55
2009: 00:40:96:b4:8c:e1 DHCP option: requested ip = 50.101.2.7Thu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP option: 12 (len 7) - skippingThu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP option: 81 (len 11) - skippingThu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP option: vendor class id = MSFT 5.0 (len
8)Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP option: 55 (len 11) -
skippingThu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP options end, len 76,
actual 68Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP selecting relay 1 - control
block settings: dhcpServer: 0.0.0.0, dhcpNetmask: 0.0.0.0, dhcpGateway: 0.0.0.0,
dhcpRelay: 0.0.0.0 VLAN: 0Thu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP selected relay 1 - 11.0.0.11 (local
address 50.101.0.11, gateway 50.101.0.1, VLAN 101, port 29)Thu Jun 25 21:48:55
2009: 00:40:96:b4:8c:e1 DHCP transmitting DHCP REQUEST (3)Thu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP op: BOOTREQUEST, htype: Ethernet, hlen: 6, hops: 1Thu Jun 25 21:48:55
2009: 00:40:96:b4:8c:e1 DHCP xid:
0xfc3c9979 (4231829881), secs: 0, flags: 0Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP chaddr:
00:40:96:b4:8c:e1Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP ciaddr: 0.0.0.0, yiaddr: 0.0.0.0Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP siaddr: 0.0.0.0, giaddr: 50.101.0.11Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP requested ip:
50.101.2.7Thu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP Forwarding DHCP packet (332 octets) -- packet received on direct-connect
port requires forwarding to external DHCP server. Next-hop is 50.101.0.1Thu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP sending REQUEST to 50.101.0.1 (len 350,
port 29, vlan 101)Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP selecting
relay 2 - control block settings: dhcpServer: 0.0.0.0,
dhcpNetmask: 0.0.0.0, dhcpGateway: 0.0.0.0, dhcpRelay: 50.101.0.11 VLAN: 101Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP selected relay 2 - NONEThu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP received op BOOTREPLY (2) (len 316, port
29, encap 0xec00)Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP option
len (including the magic cookie) 80Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1
DHCP option: message type = DHCP ACKThu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1
DHCP option: 58 (len 4) - skippingThu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1
DHCP option: 59 (len 4) - skippingThu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1
DHCP option: lease time = 691200 secondsThu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP option: server id = 11.0.0.11Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP option: netmask = 255.255.0.0Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP option: 15 (len 14) - skippingThu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP option: gateway = 50.101.0.1Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 DHCP option: DNS server, cnt = 1, first = 11.0.0.11Thu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP option: WINS server, cnt = 1, first =
11.0.0.11Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP options end, len 80,
actual 72Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP setting server from
ACK (server 11.0.0.11, yiaddr 50.101.2.7)Thu Jun 25 21:48:55 2009:
00:40:96:b4:8c:e1 Assigning Address 50.101.2.7 to mobileThu Jun 25
21:48:55 2009: 00:40:96:b4:8c:e1 DHCP sending REPLY to STA (len 424, port 29,
vlan 20)Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP transmitting DHCP ACK
(5)Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP op: BOOTREPLY, htype: Ethernet, hlen: 6,
hops: 0Thu Jun 25 21:48:55 2009: 00:40:96:b4:8c:e1 DHCP xid: 0xfc3c9979 (4231829881), secs: 0,
flags: 0Thu Jun 25 21:48:59 2009: 00:40:96:b4:8c:e1 DHCP chaddr: 00:40:96:b4:8c:e1Thu Jun 25 21:48:59
2009: 00:40:96:b4:8c:e1 DHCP ciaddr:
0.0.0.0, yiaddr: 50.101.2.7Thu Jun 25
21:48:59 2009: 00:40:96:b4:8c:e1 DHCP siaddr: 0.0.0.0, giaddr:
0.0.0.0Thu Jun 25 21:48:59 2009: 00:40:96:b4:8c:e1 DHCP server id: 1.1.1.1 rcvd server id: 11.0.0.11
· 已启用 DHCP 代理的控制器与充当防火墙和 DHCP 服务器的设备之间可能会存在互操作性问题。通常情况下,这很可能是由于设备的防火墙组件作为防火墙无法响应代理请求引起的。要解决此问题,需要在控制器上禁用 DHCP 代理。
· 当控制器上的客户端处于 DHCP REQ 状态时,控制器将丢弃 DHCP inform 数据包。在控制器从客户端收到 DHCP 发现数据包之前,控制器上的客户端不会进入 RUN 状态(要使客户端传送流量,这是必需的)。禁用 DHCP 代理时,将由控制器转发 DHCP inform 数据包。
· 所有将要进行通信的控制器必须采用相同的 DHCP 代理设置。
DHCP 桥接模式
桥接功能的DHCP设计做控制器?在DHCP处理的s作用完全地透明对客户端。除对以太网II转换的802.11外,从客户端的数据包桥接非限定从LWAPP通道到客户端?s VLAN (或在漫游案件)的L3的EoIP通道。同样地,除以太网II外于802.11转换,数据包对客户端桥接非限定从客户端?s VLAN (或在漫游案件)的L3的EoIP通道对LWAPP通道。此过程可以理解为先将客户端接入交换机端口,然后由该客户端执行传统的 DHCP 事务。
DHCP 桥接操作 - 桥接数据包流
桥接数据包捕获 - 客户端角度
在以上客户端数据包捕获的屏幕画面,捕获在代理模式是DHCP服务器的实时IP的客户端之间的主要区别在提供和Ack数据包被看到而不是控制器?s虚拟IP地址。
桥接数据包捕获 - 服务器角度
在以上有线数据包捕获屏幕截图中,您可以看到,数据包 40 是从测试客户端 00:40:96:b6:44:51 到有线网络的桥接 DHCP 请求广播。
要在控制器上启用 DHCP 桥接功能,您必须在控制器上禁用 DHCP 代理功能。在 4.2.x.x 代码中,此操作只能在 CLI 中使用以下命令完成:
(Cisco Controller) >config dhcp proxy
disable(Cisco Controller) >show dhcp proxyDHCP Proxy Behaviour: disabled
如果 DHCP 服务器与客户端位于不同的第 2 层网络上,则需要使用 IP 帮助程序将广播转发到客户端网关处的 DHCP 服务器。以下是此配置的一个示例:
Switch#conf tSwitch(config)#interface vlan
<client vlan #>Switch(config-if)#ip helper-address <dhcp server IP>
DHCP 桥接功能是一项全局设置,因此会影响控制器内的所有 DHCP 事务。您需要在有线基础架构中为控制器上的所有必需 VLAN 添加 IP 帮助程序语句。
以下为使用 4.2.205.0 代码的控制器的 debug 输出示例。此处列出的 debug 已在控制器 CLI 上启用,并且已针对本文档提取出了输出的 DHCP 部分。
(Cisco Controller) >debug client
00:40:96:b6:44:51(Cisco Controller) >debug dhcp message
enable00:40:96:b6:44:51 DHCP received op BOOTREQUEST (1) (len 308, port 1,
encap 0xec03) 00:40:96:b6:44:51 DHCP option len (including the magic cookie) 72
00:40:96:b6:44:51 DHCP option: message type = DHCP DISCOVER 00:40:96:b6:44:51
DHCP option: 116 (len 1) - skipping 00:40:96:b6:44:51 DHCP option: 61 (len 7) -
skipping 00:40:96:b6:44:51 DHCP option: 12 (len 12) - skipping
00:40:96:b6:44:51 DHCP option: vendor class id = MSFT 5.0 (len
8)00:40:96:b6:44:51 DHCP option: 55 (len 11) - skipping 00:40:96:b6:44:51 DHCP
options end, len 72, actual 64 00:40:96:b6:44:51 DHCP processing DHCP DISCOVER
(1) 00:40:96:b6:44:51 DHCP op:
BOOTREQUEST, htype: Ethernet, hlen: 6, hops: 0 00:40:96:b6:44:51 DHCP xid: 0x224dfab6 (575535798), secs: 0, flags:
0 00:40:96:b6:44:51 DHCP chaddr:
00:40:96:b6:44:51 00:40:96:b6:44:51 DHCP ciaddr: 0.0.0.0, yiaddr: 0.0.0.0
00:40:96:b6:44:51 DHCP siaddr:
0.0.0.0, giaddr: 0.0.0.0 00:40:96:b6:44:51
DHCP successfully bridged packet to DS 00:40:96:b6:44:51
DHCP received op BOOTREPLY (2) (len 308, port 1, encap 0xec00)
00:40:96:b6:44:51 DHCP option len (including the magic cookie)
7200:40:96:b6:44:51 DHCP option: message type = DHCP OFFER 00:40:96:b6:44:51
DHCP option: server id = 192.168.10.1 00:40:96:b6:44:51 DHCP
option: lease time = 84263 seconds 00:40:96:b6:44:51 DHCP option: 58 (len 4) -
skipping 00:40:96:b6:44:51 DHCP option: 59 (len 4) - skipping 00:40:96:b6:44:51
DHCP option: netmask = 255.255.255.000:40:96:b6:44:51 DHCP option: gateway =
192.168.10.1 00:40:96:b6:44:51 DHCP options end, len 72, actual 64
00:40:96:b6:44:51 DHCP processing DHCP OFFER (2) 00:40:96:b6:44:51 DHCP op: BOOTREPLY, htype: Ethernet, hlen: 6,
hops: 0 00:40:96:b6:44:51 DHCP xid:
0x224dfab6 (575535798), secs: 0, flags: 0 00:40:96:b6:44:51 DHCP chaddr: 00:40:96:b6:44:51 00:40:96:b6:44:51
DHCP ciaddr: 0.0.0.0, yiaddr: 192.168.10.104 00:40:96:b6:44:51 DHCP siaddr: 0.0.0.0, giaddr: 0.0.0.0 00:40:96:b6:44:51 DHCP server id: 192.168.10.1 rcvd server id: 192.168.10.1 00:40:96:b6:44:51
DHCP successfully bridged packet to STA 00:40:96:b6:44:51
DHCP received op BOOTREQUEST (1) (len 328, port 1, encap 0xec03)
00:40:96:b6:44:51 DHCP option len (including the magic cookie) 92
00:40:96:b6:44:51 DHCP option: message type = DHCP REQUEST 00:40:96:b6:44:51
DHCP option: 61 (len 7) - skipping 00:40:96:b6:44:51 DHCP option: requested ip
= 192.168.10.104 00:40:96:b6:44:51 DHCP option: server id = 192.168.10.1
00:40:96:b6:44:51 DHCP option: 12 (len 12) - skipping 00:40:96:b6:44:51 DHCP
option: 81 (len 16) - skipping 00:40:96:b6:44:51 DHCP option: vendor class id =
MSFT 5.0 (len 8) 00:40:96:b6:44:51 DHCP option: 55 (len 11) - skipping
00:40:96:b6:44:51 DHCP options end, len 92, actual 84 00:40:96:b6:44:51 DHCP
processing DHCP REQUEST (3) 00:40:96:b6:44:51 DHCP op: BOOTREQUEST, htype: Ethernet, hlen: 6,
hops: 0 00:40:96:b6:44:51 DHCP xid:
0x224dfab6 (575535798), secs: 0, flags: 0 00:40:96:b6:44:51 DHCP chaddr: 00:40:96:b6:44:5100:40:96:b6:44:51
DHCP ciaddr: 0.0.0.0, yiaddr: 0.0.0.0 00:40:96:b6:44:51 DHCP siaddr: 0.0.0.0, giaddr: 0.0.0.0 00:40:96:b6:44:51 DHCP requested ip: 192.168.10.104
00:40:96:b6:44:51 DHCP server id:
192.168.10.1 rcvd server id:
192.168.10.1 00:40:96:b6:44:51 DHCP successfully bridged packet to DS00:40:96:b6:44:51
DHCP received op BOOTREPLY (2) (len 308, port 1, encap 0xec00)
00:40:96:b6:44:51 DHCP option len (including the magiccookie) 72
00:40:96:b6:44:51 DHCP option: message type = DHCP ACK 00:40:96:b6:44:51 DHCP
option: server id = 192.168.10.1 00:40:96:b6:44:51 DHCP option: lease time =
86400 seconds 00:40:96:b6:44:51 DHCP option: 58 (len 4) - skipping
00:40:96:b6:44:51 DHCP option: 59 (len 4) - skipping 00:40:96:b6:44:51 DHCP
option: netmask = 255.255.255.0 00:40:96:b6:44:51 DHCP option: gateway =
192.168.10.1 00:40:96:b6:44:51 DHCP options end, len 72, actual 64
00:40:96:b6:44:51 DHCP processing DHCP ACK (5) 00:40:96:b6:44:51 DHCP op: BOOTREPLY, htype: Ethernet, hlen: 6,
hops: 000:40:96:b6:44:51 DHCP xid:
0x224dfab6 (575535798), secs: 0, flags: 0 00:40:96:b6:44:51 DHCP chaddr: 00:40:96:b6:44:51 00:40:96:b6:44:51
DHCP ciaddr: 0.0.0.0, yiaddr: 192.168.10.104 00:40:96:b6:44:51 DHCP siaddr: 0.0.0.0, giaddr: 0.0.0.0 00:40:96:b6:44:51 DHCP server id: 192.168.10.1 rcvd server id: 192.168.10.100:40:96:b6:44:51
Assigning Address 192.168.10.104 to mobile 00:40:96:b6:44:51 DHCP successfully bridged packet to
STA00:40:96:b6:44:51 192.168.10.104 Added NPU entry of type 1
在此 DHCP debug 输出中,有一些表明控制器正使用 DHCP 桥接的重要指示:
??对DS的成功DHCP桥接信息包? ?这意味着从客户端的原始DHCP信息包桥接,未改变对分布式系统(DS)。DS 为有线基础架构。
??对STA的成功DHCP桥接信息包? ?此消息表明DHCP信息包桥接,未改变到站点(STA)。STA 为请求 DHCP 的客户端计算机。
此外,您还会看到在 debug 中列出的真实的服务器 IP,即 192.168.10.1。如果桥接DHCP的代理是在使用中的而不是DHCP,是否会看到控制器?为服务器IP列出的s虚拟IP地址。
· 默认情况下会启用 DHCP 代理。
· 所有将要进行通信的控制器必须采用相同的 DHCP 代理设置。
· 要使 DHCP 选项 82 工作,必须启用 DHCP 代理。
版本 4.2 之前的 DHCP 桥接
在 4.2 代码版本之前,您可以在控制器上禁用 DHCP 代理。但实际上,这不会将 DHCP 数据包桥接到有线网络。什么发生,在4.2仍然是该控制器被代理的DHCP通信对DHCP服务器前,然而客户端是消息灵通的DHCP服务器的实际IP地址而不是发送控制器?s虚拟IP地址。
内部 DHCP 服务器
内部 DHCP 服务器最初是为无法使用外部 DHCP 服务器的分支机构引入的。它旨在为同一子网中 AP 数量小于 10 个的小型无线网络提供支持。内部服务器向管理接口上的无线客户端、直连 AP、设备模式 AP 提供 IP 地址,以及从 AP 转发的 DHCP 请求。它不是成熟的通用 DHCP 服务器。它仅支持有限的功能,并且无法在较大规模的部署中进行扩展。
内部 DHCP 和桥接模式比较
控制器上的两种主要 DHCP 模式为 DHCP 代理或 DHCP 桥接。使用桥接控制器的DHCP操作更多类似有自治AP的一DHCP上一步?s.a DHCP信息包通过客户端关联进入AP对与VLAN连接的SSID。然后,DHCP 数据包会离开该 VLAN。如果IP辅助在该VLAN定义?s第3层网关,数据包转发对该DHCP服务器通过处理的单播。然后,DHCP 服务器将响应直接返回到已转发该 DHCP 数据包的第 3 层接口。使用DHCP代理,它是同一个想法,但是所有转发完成直接地在控制器而不是VLAN ?s第3层接口。例如, DHCP请求进来到WLAN自客户端, WLAN然后DHCP服务器在VLAN定义的任一使用?s接口*or*将使用WLAN的DHCP覆盖功能转发单播DHCP信息包到与被填好的DHCP信息包GIADDR字段的DHCP服务器是VLAN接口?s IP地址。
内部 DHCP 服务器 - 数据包流
内部 DHCP 服务器配置示例
要运行内部 DHCP 服务器,您必须在控制器上启用 DHCP 代理。可以通过以下 GUI 启用 DHCP 代理:
Controller->Advanced->DHCP (Note: Setting the DHCP proxy via the GUI is
not available in all versions)
也可通过 CLI 启用 DHCP 代理:
Config dhcp proxy enableSave config
要启用内部 DHCP 服务器,请完成以下步骤:
1. 定义将用于提取 IP 地址的范围 (Controller->Internal DHCP
Server->DHCP Scope)。单击 New。
2. 将任意 DHCP 覆盖指向控制器的管理接口 IP 地址:
此外,您也可以将控制器接口配置的 DHCP 选项用于您希望使用内部 DHCP 服务器的接口。
3. 确保已启用 DHCP 代理:
调试内部 DHCP 服务器通常是指查找在获取 IP 地址方面遇到问题的客户端。您需要运行以下 debug:
debug client <MAC ADDRESS OF CLIENT>
debug 客户端是一个宏,它会为您启用这些 debug,同时将 debug 输出仅集中于您输入的客户端 MAC 地址:
debug dhcp packet enabledebug dot11 mobile
enabledebug dot11 state enabledebug dot1x events enabledebug pem events
enabledebug pem state enabledebug cckm client debug enable
debug dhcp
packet enable 命令是一个主要用于解决 DHCP 问题的命令,该命令由 debug
client 命令自动启用。
00:1b:77:2b:cf:75 dhcpd: received DISCOVER 00:1b:77:2b:cf:75
dhcpd: Sending DHCP packet (giaddr:192.168.100.254)to 127.0.0.1:67 from 127.0.0.1:1067 00:1b:77:2b:cf:75
sendto (548 bytes) returned 54800:1b:77:2b:cf:75 DHCP option len (including the
magic cookie) 312 00:1b:77:2b:cf:75 DHCP option: message type = DHCP OFFER 00:1b:77:2b:cf:75
DHCP option: server id = 192.168.100.254 00:1b:77:2b:cf:75 DHCP option: lease
time = 86400 seconds 00:1b:77:2b:cf:75 DHCP option: gateway = 192.168.100.1
00:1b:77:2b:cf:75 DHCP option: 15 (len 13) - skipping 00:1b:77:2b:cf:75 DHCP
option: netmask = 255.255.255.0 00:1b:77:2b:cf:75 DHCP options end, len 312,
actual 64 00:1b:77:2b:cf:75 DHCP option len (including the magic cookie) 81 00:1b:77:2b:cf:75
DHCP option: message type = DHCP REQUEST 00:1b:77:2b:cf:75
DHCP option: 61 (len 7) - skipping 00:1b:77:2b:cf:75 DHCP option: requested ip
= 192.168.100.100 00:1b:77:2b:cf:75 DHCP option: server id = 1.1.1.1
00:1b:77:2b:cf:75 DHCP option: 12 (len 14) - skipping 00:1b:77:2b:cf:75 DHCP
option: vendor class id = MSFT 5.0 (len 8) 00:1b:77:2b:cf:75 DHCP option: 55
(len 11) - skipping 00:1b:77:2b:cf:75 DHCP option: 43 (len 3) - skipping
00:1b:77:2b:cf:75 DHCP options end, len 81, actual 73 00:1b:77:2b:cf:75 DHCP
Forwarding packet locally (340 octets) from 192.168.100.254 to
192.168.100.254dhcpd: Received 340 byte dhcp packet from 0xfe64a8c0
192.168.100.254:6800:1b:77:2b:cf:75 dhcpd: packet 192.168.100.254 ->
192.168.100.254 using scope "User Scope" 00:1b:77:2b:cf:75 dhcpd:
received REQUEST 00:1b:77:2b:cf:75 Checking node 192.168.100.100 Allocated 1246985143, Expires 1247071543
(now: 1246985143) 00:1b:77:2b:cf:75 dhcpd: server_id = c0a864fe
00:1b:77:2b:cf:75 dhcpd: server_id = c0a864fe adding option 0x35 adding option
0x36 adding option 0x33 adding option 0x03 adding option 0x0f adding option
0x01 00:1b:77:2b:cf:75
dhcpd: Sending DHCP packet (giaddr:192.168.100.254)to 127.0.0.1:67 from 127.0.0.1:1067 00:1b:77:2b:cf:75
sendto (548 bytes) returned 54800:1b:77:2b:cf:75 DHCP option len (including the
magic cookie) 312 00:1b:77:2b:cf:75 DHCP option: message type = DHCP ACK 00:1b:77:2b:cf:75
DHCP option: server id = 192.168.100.254 00:1b:77:2b:cf:75 DHCP option: lease
time = 86400 seconds 00:1b:77:2b:cf:75 DHCP option: gateway = 192.168.100.1
00:1b:77:2b:cf:75 DHCP option: 15 (len 13) - skipping 00:1b:77:2b:cf:75 DHCP
option: netmask = 255.255.255.0 00:1b:77:2b:cf:75 DHCP options end, len 312,
actual 64
清除 WLC 的内部 DHCP 服务器上的 DHCP 租用
使用无线局域网控制器版本 7.0.98,您可以发出此命令以清除 WLC 内部 DHCP 服务器上的 DHCP 租用:
config dhcp clear-lease <all/IP
Address>
示例如下:
config dhcp clear-lease all
· 要运行内部 DHCP 服务器,必须启用 DHCP 代理。
· 使用受 CPU ACL 影响的内部 DHCP 服务器时,请在端口 1067 上使用 DHCP。
· 内部 DHCP 服务器通过 127.0.0.1 udp 端口 67 侦听控制器环回接口。
· config dhcp proxy disable 命令意指使用 DHCP 桥接功能。这是一个全局命令(不是基于 WLAN 的命令)。
· 为便于客户在使用现有部署时体验一致的行为,默认情况下将仍然启用 DHCP 代理。
· 禁用 DHCP 代理时,本地 WLAN 将无法使用内部 DHCP 服务器。桥接操作不同于将数据包重定向到内部服务器所需的操作。实际桥接含义桥接,除802.11外对以太网II转换, DHCP信息包通过非限定从LWAPP通道到客户端?s VLAN (和反过来也是一样地)。
· 当代理启用时,在WLAN必须配置DHCP服务器?s接口(或在WLAN)为了能将启用的WLAN。禁用代理时,将不需要配置服务器,因为将不会使用这些服务器。
· 用户尝试启用 DHCP 代理时,应在内部确保所有 WLAN(或关联的接口)均已配置 DHCP 服务器。否则,启用操作会失败。
所需的 DHCP
以前的 WLAN 配置有一个选项,要求用户在进入 RUN 状态(在此状态下,客户端将能够通过控制器传送流量)之前传送 DHCP。此选项要求客户端执行整个或半个 DHCP 请求。控制器在客户端查找的主要事件是 DHCP 请求及 DHCP 服务器返回的 ACK。只要客户端执行这些步骤,客户端将通过所需的 DHCP 步骤并进入 RUN 状态。
L2 和 L3 漫游
L2 -漫游?如果客户端有一有效DHCP租用并且执行L2漫游在同一L2网络的两个区别控制器之间,客户端不应该需要再DHCP,并且应该完全移动客户端条目向从原始控制器的新的控制器。然后,如果客户端需要再次进行 DHCP 操作,当前控制器上的 DHCP 桥接或代理进程将再次透明地桥接数据包。
L3 ?漫游?在L3中请漫游客户端移动2个区别控制器之间用不同的L3网络的方案。在这种情况下,客户端将锚定到原始控制器并在新的外来控制器的客户端表中列出。在停住的方案期间客户端?当客户端数据在外国和锚点控制器之间的一个EoIP通道内被建立隧道s DHCP由锚点控制器处理。