某广电局点SR8808X作为BRAS设备,下连约3万pppoe用户,BRAS是通过旁挂的DHCP server给pppoe用户分配地址的,两台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信息来看,BRAS和DHCP服务器之间报文交互是正常的,discover、offer、request、ack报文都有,服务器给用户分了一个地址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本地的表项信息发给服务器,只能通过将所有用户全部踢下线的方式进行规避。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作