DHCP即动态主机配置协议,它是一个局域网的网络协议,使用UDP协议工作。在日常网络应用中最常见的用途是给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,通常被应用在大型的局域网络环境中。笔者单位的网络点播用户获取IP地址方式就是采用的DHCP,从而来满足用户进行点播视频的需求。但是近期出现个别点播用户获取不到IP地址的情况,经过对机房参照点播环境的测试,并按照网络拓扑结构逐级排查,大量使用show命令,最终将故障定位在了点播用户异常下线,DHCP租约时间未到,所以引起个别用户点播获取不到IP地址的故障。
近日,有互联网用户报修,反映不能正常使用点播业务,得知这一故障现象后,我们首先从两方面着手处理。
首先需要登录到BRAS上查看用户在线数量,目的是宏观上查看一下点播用户的状态,看一下报修用户所属BRAS的点播用户是否正常。我们使用命令show subscriber statistics domain dhcp查看用户的在线数量是否稳定,查看点播用户数上线具体情况:
show subscriber statistics domain dhcp
session: total up down
IPv4 3616 3616 0
IPv6 0 0 0
通过多次使用show命令查看,均没有发现点播用户数量明显下降的趋势。接下来使用机房参照测试环境,这里所说的机房参照测试环境就是在机房模拟搭建用户点播环境,这样做的好处是易于发现问题,并容易定位故障节点。经过模拟环境测试,点播获取IP地址也没有问题。
通过在BRAS上查看点播用户数量以及模拟环境的测试均没有发现问题,这就说明在机房至点播DHCP服务器是正常的。
这里简单介绍一下点播获取IP地址的流程。BRAS上使用DHCP中继,BRAS上游连接核心路由器,然后DHCP点播服务器通过汇聚交换机连接在核心路由器上,其中BRAS、核心路由器、汇聚交换机和DHCP服务器使用路由互通。
了解完DHCP工作的过程,接下来我们回到故障排查中,既然BRAS和DHCP服务器都没有问题,接下来我们开始排查BRAS以下的设备。BRAS以下的设备主要是OLT,因为OLT是直连BRAS的,我们在OLT上主要的操作是查看下PON口以及ONU的配置。首先需要查看的是PON口的配置,使用命令show running-config interface epon-olt 3/4可以查看到PON口的配置命令即:
interface epon-olt 3/4
//进入端口
vlan-mapping ingress outer from 1000 to 1999 translate outer 1811 inner copy-from-outer
//定义点播业务VLAN的QINQ规则
vlan-mapping ingress outer from 2000 to 2999 translate outer 2811 inner copy-from-outer
switchport trunk allowed vlan 1811,2811
//定义PON口允许通过的VLAN
switchport trunk untagged vlan 1811,2811
//定义PON口下行方向剥离标签的VLAN
switchport mode trunk
//定义端口模式为TRUNK
通过对PON口配置的查看没有发现问题,紧接着使用命令show runningconfig epon-onu 3/4/11查看下ONU的配置,命令如下:
epon-onu uni ethernet 1/5/11/1
适用于IEC61850标准的以太网无源光网络DBA算法//刘柱揆,曹敏,胡凡君,董涛//(10):150
//进入ONU的端口
vlan mode tagged
//定义ONU端口的模式
native vlan 2011
//定义ONU端口的VLAN
epon-onu uni ethernet 1/5/11/2
//进入ONU的端口
vlan mode tagged
//定义ONU端口的模式
native vlan 1011
//定义ONU端口的VLAN
通过对PON口和ONU配置查看均没有发现问题,那么问题出在什么地方呢?整个流程梳理下来也没有发现端倪。刚才我们在OLT上查看的是设备配置,接下来再核实一下MAC地址的学习情况,这就需要知道点播终端的MAC地址。根据运维人员提供的MAC地址,从ONU端口、PON口以及整台OLT学习点播终端的MAC都没有问题,那么BRAS上能学习到用户点播终端的MAC地址吗?
在BRAS上使用命令show subscriber user-mac ac4a.fe6b.1340,发现该MAC已经拿到IP地址,既然BRAS上显示点播终端可以获取到地址,那么为什么用户侧的点播终端获取不到地址呢?这里就涉及到DHCP的IP地址没有同步的问题,当DHCP客户端获取到一个IP地址后,并不代表可以永久使用这个地址,而是有一个使用期限,在DHCP中我们称之为租约期限。一般情况下,DHCP服务器租约是8天,除了这个8天的时间外,在有效的租约期限内,还包含两个时间点,第四天和第七天,也就是租约的一半和租约的7/8。当由于某些网络原因导致IP地址没能及时同步时,BRAS上ARP表项还在,我们可以先用ipconfig /release命令将当前的IP地址和其他配置信息释放掉。此时客户端会利用单播的方式向DHCP服务器发送 DHCP Release数据包,目的是告诉DHCP服务器客户端要释放这个IP。当然这个IP地址释放的命令可以在电脑上执行,点播终端是无法执行的ipconfig/release命令,通知服务器端释放地址。这样就需要在BRAS上执行clear subscriber ipv4-address 10.107.2.251,清理 BRAS上的IP地址信息。然后点播终端就会正常获取到IP地址,并且能正常观看点播节目,这样网络故障就得以排除。
上面我们从得知故障后,首先在BRAS上和模拟测试环境进行了排查和测试,进一步排除了宏观上的网络故障的可能性。然后又仔细排查了OLT以及ONU的配置,最后使用show命令查看ARP表项的时候发现了故障原因,即BRAS上存在点播终端的MAC地址和IP地址的对应关系。此类故障通常由于点播终端异常关闭或者PON口数据异常删除又重新添加配置等原因造成IP地址没有释放,解决问题的方法是在BRAS上强制该点播终端下线,重新进行一次DHCP报文的交互,就可以实现了故障的排除。