APP下载

Wi-Fi DHCP成功率低的原因分析与优化

2013-02-28阮志丹何跃平

电信科学 2013年2期
关键词:IP地址报文客户端

阮志丹,刘 光,何跃平

(中国电信股份有限公司广东分公司 广州 510081)

1 引言

为了量化地衡量用户对Wi-Fi网络质量的真实感受,中国电信股份有限公司广东分公司(以下简称广东电信)通过在Wi-Fi热点现场测试模拟用户行为,结合专业测试分析工具,获取Wi-Fi网络性能的量化数据,以发现Wi-Fi网络存在的问题。Wi-Fi测试有多项指标,其中DHCP(dynamic host configuration protocol,动态主机配置协议)成功率是反映用户动态获取IP地址成功率的一项关键参数,如果无法快速获取IP地址,则后面的Portal页面弹出、认证、上网都无法快速实现,用户使用起来就会觉得慢,对用户感知造成较大的影响。

本文主要对Wi-Fi网络DHCP获取IP地址慢的原因进行深入分析,结合广东电信Wi-Fi优化的实际案例,阐述提高Wi-Fi DHCP成功率的思路和方法。

2 DHCP获取IP地址过程及DHCP成功率

2.1 DHCP获取IP地址过程

DHCP可以自动地为主机设定IP环境参数。由于其使用的方便性,在Wi-Fi接入上网方式中得到普遍的应用。图1描绘了DHCP客户机与DHCP服务器之间通信、获取IP地址的过程,具体介绍如下。

(1)寻找DHCP服务器。客户机在本网段内广播DHCP discover报文以发现网络中的DHCP服务器,如果客户机不是第一次登录网络,它会把上次使用过的IP地址封装在option50中,以请求再次分配该IP地址。

(2)服务器提供IP租用地址。当DHCP服务器监听到主机发出的DHCP discover报文广播后,它会从那些还没有租出的地址范围内,选择最前面的空闲IP地址,连同其他IP设置信息(如网关、掩码、DNS等),响应给客户端一个DHCP offer报文。

(3)主机A接受IP租约。如果主机A收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCP offer(通常是最先抵达的那个),并会向网络发送一个DHCP request广播分组。

(4)租约确认。当DHCP服务器接收到主机A的DHCP request之后,会向客户端发出一个DHCP ack响应。

2.2 DHCP成功率计算方法

DHCP成功率指标计算方法:DHCP成功率=(成功获取IP地址次数÷测试总次数)×100%。

其中,判断DHCP是否成功需要同时满足两个条件:获取到IP地址以及不超过时间阈值。从终端发送DHCP discover请求开始计时(同一transaction ID的多个discover请求以第一个为准),最后以从服务器端接收到与discover相同transaction ID的DHCP ack结束计时。如果总时长小于10 s,判定为DHCP成功1次;如果总时长大于10 s,则判断为失败。

图1 DHCP交互流程

3 DHCP获取地址慢的原因

从广东电信实际在Wi-Fi热点现场测试的统计情况分析,DHCP成功率指标失败的最主要原因是成功获取地址的时延超过考核阈值(10 s),并不是真正地无法获取IP地址,但这样给用户造成的感觉就是使用Wi-Fi上网很慢。下面将从4个方面对DHCP获取IP地址慢的原因进行深入分析。

3.1 接入SE800设备3次discover的问题

通过测试发现接入爱立信SE800 BRAS(宽带远程接入服务器)设备的Wi-Fi热点时,DHCP获取IP地址时延过大,获得IP地址的时间一般在15 s左右,高于考核10 s的要求。

正常情况下Wi-Fi用户获取IP地址的DHCP报文交互流程一般为:discover-offer-request-ack,通过协议的4次交互就可以获取IP地址,时延基本都在5 s以内。而SE800下接入的Wi-Fi用户获取IP地址的DHCP报文流程 为:discover-offer-discover-offer-discover-offer-request-ack,也就是说客户端要发3次discover报文,在第3次收到offer后才发起request交互,这样获得IP地址的时间就会大大延长。实测中DHCP交互过程分组抓取情况如图2所示。

通过分析发现,该问题和SE800的IP地址分配机制有很大关系。SE800的内置DHCP服务器在进行地址分配时采用轮询算法,即从地址池第一个地址开始依次分配,每次分配的地址为上一次分配地址的下一个可用地址,如此循环往复。而Windows操作系统的客户端在IP地址的租用已经过期或者之前分配的IP地址不再可用时,会始终发送3个DHCP discover报文(而且会把上次使用过的IP地址封装在option50中),以验证客户端旧的IP地址不再可用,最后,客户端计算机会接受第3个的DHCP offer报文中提供的IP地址。按照SE800的IP地址分配机制,由于IP地址继续往下轮询,客户端基本上都无法获取上次使用过的IP地址,因此需要发送3个DHCP discover报文才能获取IP地址。

3.2 接入ME60设备2次discover的问题

在测试过程中发现:接入华为ME60 BRAS设备的Wi-Fi热点用户终端也普遍存在发送2次DHCP discover才能获取IP地址的情况,这种情况下获取IP地址的时间一般不会超出10 s,但也会使获取IP地址的时间增加3~4 s。

通过在测试终端和BRAS上同时进行分组抓取,发现BRAS侧没有收到前一次用户下线时的DHCP release报文,即用户侧发起了release报文,但是BRAS上对用户进行分组抓取时并没有收到用户的release报文,所以BRAS不会主动把用户下线。用户第一次发起discover的时候BRAS认为用户是在线的,这时BRAS会发起一个cut操作使用户下线,第二次用户发起discover的时候用户不在线,BRAS才会按正常处理流程处理,返回一个offer报文。此时,问题就在于为什么ME60没有收到前一次的DHCP release报文?

进一步对用户及BRAS之间的交换机进行分组抓取分析,发现交换机确实已经将DHCP release报文发给了ME60,而ME60却没有收到。最后华为公司确认原因在于ME60的Wi-Fi认证前域配置了严格的地址限制,其中不包含设备本身的地址,而DHCP release中访问的目标IP地址正好是设备本身地址,因此被设备Wi-Fi认证前域的ACL过滤掉。

3.3 ME60设备IP地址池过小的问题

在各地市的巡检测试过程中,发现部分接入华为ME60 BRAS设备的Wi-Fi热点有时也会出现类似第3.1节所述的接入SE800设备的情况,即DHCP获取IP地址需要发送3次discover才能获取IP地址。但是不同之处在于,不是所有华为ME60设备都会出现这种情况,而且即使出现这种情况的ME60设备大部分的测试情况都正常,只是有时会出现3次discover的情况。

图2 接入SE800用户DHCP交互分组抓取图解

通过仔细地对比分析成功、失败情况下的DHCP分组抓取数据,发现在出现3次discover的情况时,用户前两次发送DHCP discover报文时,试图请求再次分配上次使用过的IP地址,而ME60 BRAS设备返回的DHCP offer的地址都不是用户所请求的IP地址,因此客户端直到发送3个DHCP discover报文验证旧IP地址不再可用时,才接受第3个DHCP offer报文中提供的IP地址。

华为公司确认ME60的地址池分配机制是这样的:一个地址池的IP地址被释放后会放在本地址池的最后,如果该地址未被分配,那么ME60设备优先为上次使用过该IP地址的用户分配此地址;如果ME60设备上配置了多个地址池,分配方式按照配置顺序依次进行分配,前面一个地址池分配完后才开始分下一个地址池里的地址。那么在什么情况下会出现异常呢?试想如果在地址池比较小、用户又比较多的情况下,一个IP地址被释放后将被加在本地址池的最后,由于地址池使用率已经很高,空余地址不多,很快此地址就会被其他的用户占用,因此上次使用过该IP地址的用户想再分配此地址的请求就无法得到满足了,导致需要发3次discover。结合实际测试的情况来看,出现3次discover情况的ME60基本上是接入AC的BRAS,Wi-Fi接入用户量大、地址池个数较多但每个地址池的地址数量较少。在设备上查看,这类ME60的前几个地址池的利用率确实很高、空余地址不多,但是后面的地址池却空闲着无法得到使用。

3.4 组网方面的问题

随着Wi-Fi网络建设规模的扩大,传统的胖AP组网方式不适应网络飞速发展的要求,目前广东省已经大规模引入集中控制型AC+瘦AP网络架构(如图3所示)——采用较大容量AC设备集中部署在城域网,统一接入各个热点的瘦AP,增强了网络的安全性、可扩展性、可管理性。

集中控制型AC对组网提出了更高的要求,组网存在的问题影响面可能会比传统胖AP的模式大很多。在省分公司调研时发现,有些省分公司为了避免AC上联电路的冗余,将AC双挂2台BRAS,这样的网络结构看起来很合理,但在实际测试发现也存在问题。由于业务VLAN都透传到两台BRAS上,终端发过来的DHCP discover报文会同时透传到两台BRAS,因此两台BRAS均会对discover报文进行响应,终端将会选择最先收到的offer报文。这样,如果用户先接入BRAS1,获取的是BRAS1上的地址,在DHCP租约期到期需要续租的时候,用户会发出DHCP request报文,如果此时是BRAS2先响应DHCP offer报文,将影响到用户的续租。也就是说用户可能会在租约期到期时中断,需要重新获取IP地址,这将影响到用户DHCP成功率及Wi-Fi上网体验。

4 DHCP成功率提升优化方案

针对上述影响DHCP指标的若干因素,制定了相对应的提升优化方案,并且在现网网络中实施。

图3 AC、瘦AP典型组网

4.1 升级SE800设备软件版本

针对SE800的IP地址分配机制问题,协调爱立信改进了SE800内置DHCP服务器的轮询算法,即如果客户机不是第一次登录网络,并且再次请求分配上次使用过的IP地址,则SE800会查询地址池中的空余地址,如果该地址未被分配,那么DHCP服务器优先为客户端分配此地址。爱立信在SE800设备的6.2.1.7p2以上软件版本均已修正了该漏洞(bug),经过现网实际测试,基本消除了客户端需要发送3次discover才能获取到IP地址的问题。

4.2 对ME60设备进行配置优化

对于ME60认证前域严格地址限制导致无法收到release报文的问题,解决方案是在认证前域的ACL中增加一条:

rule XXX permit ip source user-group wlan destination ip-address X.X.X.X 0//其中X.X.X.X代表了BRAS设备Wi-Fi IP地址池的网关地址

另外,为了增强设备的安全性,也可修改为只允许对网关的DHCP端口进行访问,具体配置如下:

rule XXX permit ip source user-group wlan destination ip-address X.X.X.X 0 destination-port eq bootps

4.3 对ME60设备的IP地址池进行合并

ME60设备IP地址池过小会造成在用户量多时客户端有时无法获取原来的IP地址,导致需要发3次discover。如前所述,该问题和ME60的IP地址分配机制有关,但是厂商认为目前没有一种好的IP地址分配机制可以解决这个问题。笔者提出一个变通的方案是可以归并若干小的地址池合成一个大的地址池;如果小的地址池不连续、无法合并的话,可以新建一个大的地址池取代原来若干小的地址池。

使用一个大的地址池后,就不会产生多个地址池的情况下,前面的地址池利用率过高、后面的地址池却空闲着无法使用的问题。如此,一个IP地址被释放后会放在本地址池的最后,只要地址池空闲,地址非常充足,该地址短期内就不会分配给其他用户使用,那么曾经用过该IP地址的用户再请求分配此地址就能很快得到响应,用户的使用体验就会提高很多。

4.4 对Wi-Fi组网进行优化

针对AC双上联两台BRAS的组网问题,可行的优化方法是:将两台上行BRAS其中一台作为主用BRAS,另一台作为备用BRAS,将备用BRAS下联AC的端口关闭,用作冷备份,这样只有一台BRAS会对discover报文进行响应,就不会影响到用户的续租。在主用BRAS发生故障或主用链路发生故障时,登录备用BRAS,把备用BRAS下联AC的端口打开,也能迅速将业务切换到备用BRAS。

通过对Wi-Fi网络以上几个方面的优化,2012年上半年广东电信组织的第三方Wi-Fi测试中,DHCP测试成功率达到了98.6%,远远超出了2011年测试值86.7%,Wi-Fi的网络质量和用户体验得到大幅提升。

5 结束语

本文主要对影响Wi-Fi DHCP成功率、造成DHCP获取IP地址慢的原因进行深入分析,并结合广东电信Wi-Fi网络优化的实际案例,有针对性地提出了提高Wi-Fi DHCP成功率的思路和方法。这些方法在广东电信Wi-Fi网络优化中得到了全网推广应用,实践表明,通过本文提出的优化方法,可以非常有效地提高Wi-Fi DHCP成功率,用户的使用感知也得到明显的提升。在国内掀起的Wi-Fi建设热潮的形势下,这些优化方法对于运营商的Wi-Fi网络优化具有普遍的借鉴意义,必将得到广泛的应用。

1 Droms R.Dynamic Host Configuration Protocol.RFC 2131,March 1997

2 Alexander S,Droms R.DHCP Options and BOOTP Vendor Extensions.RFC 2132,March 1997

猜你喜欢

IP地址报文客户端
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
铁路远动系统几种组网方式IP地址的申请和设置
如何看待传统媒体新闻客户端的“断舍离”?
浅析反驳类报文要点
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用