问题现象

某广电局点SR8808X作为BRAS设备,下连约3pppoe用户,BRAS是通过旁挂的DHCP serverpppoe用户分配地址的,两台DHCP server冷备份。

某日运行中的主用DHCP server故障,前方换上备用DHCP server,两台server的地址等配置是完全一样的。之后发现BRAS下连的部分pppoe用户一直拨号失败、无法获取地址。DHCP server侧确认设备没有问题,需要BRAS排查一下。

 

告警信息

 

 

原因分析

pppoe用户拨号获取不到地址,可以debug ppp access-user mac-address X来看一下具体的协商过程,选取一个异常终端的MAC地址进行debug。在debug中,发现协商进行到IPCP这一步时没有进行下去。

 

BRAS向用户终端发送config request时,可以看到终端回复了config ack

*Nov  8 11:52:07:453 2017 SY USRTRACE/7/PPP_FSM_PACKET: -MDC=1-Slot=1;

  PPP Packet:

      Virtual-Access7740 Output IPCP(8021) Packet, PktLen 14

      Current State reqsent, code ConfReq(01), id 7, len 10

      IP Address(3), len 6, val 0a 21 00 01 

*Nov  8 11:52:07:454 2017 SY USRTRACE/7/PPP_FSM_PACKET: -MDC=1-Slot=1;

  PPP Packet:

      Virtual-Access7740 Input IPCP(8021) Packet, PktLen 14

      Current State reqsent, code ConfAck(02), id 7, len 10

      IP Address(3), len 6, val 0a 21 00 01

 

但是当终端发给BRAS一个config request时,在debug中以“id 89”过滤,没有看到BRAS回复config ack,这是不正常的。

*Nov  8 11:52:10:834 2017 SY USRTRACE/7/PPP_FSM_PACKET: -MDC=1-Slot=1;

  PPP Packet:

      Virtual-Access7740 Input IPCP(8021) Packet, PktLen 26

      Current State ackrcvd, code ConfReq(01), id 89, len 22

      IP Address(3), len 6, val 00 00 00 00 

      Primary DNS Server Address(81), len 6, val 00 00 00 00 

      Secondary DNS Server Address(83), len 6, val 00 00 00 00

 

既然确认BRAS没有给终端回复config request、没有分配地址,接下来就需要看一下BRAS上给pppoe分配地址的DHCP过程是否正常。由于BRAS设备上给用户分配地址的地址池中是指定远端DHCP服务器来分配,BRAS相当于一个DHCP中继的角色,此时可以debug dhcp relay来看一下。

*Nov  8 12:35:05:137 2017 SY DHCPR/7/PACKET: -MDC=1;

To 192.168.8.2 port 67, interface is selected by routing table

    Message type: REQUEST (1)

    Hardware type: 1, Hardware address length: 6

    Hops: 0, Transaction ID: 2601849814

    Seconds: 0, Broadcast flag: 1

    Client IP address: 0.0.0.0   Your IP address: 0.0.0.0

    Server IP address: 0.0.0.0   Relay agent IP address: 1.1.2.2

    Client hardware address: fcd7-330a-b5bf

    Server host name: not configured

    Boot file name: not configured

DHCP message type: DHCPDISCOVER (1)

 

*Nov  8 12:35:05:728 2017 SY DHCPR/7/PACKET: -MDC=1;

From 192.168.8.2 port 67, interface Ten-GigabitEthernet2/1/1

    Message type: REPLY (2)

    Hardware type: 1, Hardware address length: 6

    Hops: 0, Transaction ID: 2601849814

    Seconds: 0, Broadcast flag: 1

    Client IP address: 0.0.0.0   Your IP address: 1.1.1.1

    Server IP address: 0.0.0.0   Relay agent IP address: 1.1.2.2

    Client hardware address: fcd7-330a-b5bf

    Server host name: not configured

    Boot file name: not configured

DHCP message type: DHCPOFFER (2)

 

*Nov  8 12:35:05:728 2017 SY DHCPR/7/PACKET: -MDC=1;

To 192.168.8.2 port 67, interface is selected by routing table

    Message type: REQUEST (1)

    Hardware type: 1, Hardware address length: 6

    Hops: 0, Transaction ID: 2601849814

    Seconds: 0, Broadcast flag: 0

    Client IP address: 0.0.0.0   Your IP address: 0.0.0.0

    Server IP address: 0.0.0.0   Relay agent IP address: 1.1.2.2

    Client hardware address: fcd7-330a-b5bf

    Server host name: not configured

    Boot file name: not configured

DHCP message type: DHCPREQUEST (3)

 

*Nov  8 12:35:05:732 2017 SY DHCPR/7/PACKET: -MDC=1;

From 192.168.8.2 port 67, interface Ten-GigabitEthernet2/1/1

    Message type: REPLY (2)

    Hardware type: 1, Hardware address length: 6

    Hops: 0, Transaction ID: 2601849814

    Seconds: 0, Broadcast flag: 0

    Client IP address: 0.0.0.0   Your IP address: 1.1.1.1

    Server IP address: 0.0.0.0   Relay agent IP address: 1.1.2.2

    Client hardware address: fcd7-330a-b5bf

    Server host name: not configured

    Boot file name: not configured

    DHCP message type: DHCPACK (5)

debug信息来看,BRASDHCP服务器之间报文交互是正常的,discoverofferrequestack报文都有,服务器给用户分了一个地址1.1.1.1。此时在BRAS上面ping 1.1.1.1这个地址是能ping通的,display ppp access-user ip-address 1.1.1.1,发现已经有对应的用户表项了,且用户的MAC并非正在申请地址的用户fcd7-330a-b5bf

至此可以确认,是DHCP服务器在主备倒换的时候数据没有同步,主用服务器出现故障时,原有的pppoe用户没有下线,也没有释放已获取的地址。当备用DHCP服务器上线时,给新上线的pppoe用户分配的地址与已在线用户的地址是重复的。BRAS收到这个地址时,检查用户表项发现地址冲突了,于是没有给新上线用户分配地址。

解决办法

解决该问题的根本方法是DHCP服务器之间实现数据的同步,保证主备倒换时不会将已分配的地址再次分配。

暂时的规避方案是在BRAS上将所有在线用户先全都踢下线,这样所有用户都重新获取地址,就不会出现地址冲突的现象了。

建议与总结

这个问题属于BRAS和服务器之间互相配合的问题,根本原因在于主备DHCP服务器之间数据没有同步。当服务器主备倒换时,由于主备服务器的地址、地址池等信息都一样,BRAS是感知不到服务器发生过切换的,也就没有办法来做相应的调整,或者将BRAS本地的表项信息发给服务器,只能通过将所有用户全部踢下线的方式进行规避。

案例信息

案例类型:经验案例
案例号:201711140019
创建时间:2018年3月18日
更新时间:2018年3月18日
发布时间:2018/3/18 22:59:07
文章密级:游客可见
有效期:长期有效
发布者:郭昊 [g12942]
点击次数:808
评论平均得分:0
关键词:pppoe,DHCP服务器
产品线:高端路由器
产品系列:SR8800-X系列
产品版本:
故障类型:

常用操作
收藏