机顶盒和家庭路由器拿不到地址问题处理

发布时间:  2016-09-05 浏览次数:  517 下载次数:  0
问题描述

江苏某广电采购了大批ME60设备,版本 V600R008C10SPC300+ V600R008SPH007。主要应用于家庭用户宽带上网和VOD业务。其中机顶盒通过IPOE在ME60上线,家庭路由器通过pppoe在ME60上线。拓扑如下:

现网机顶盒获取地址都正常,但是出现了一款家庭路由器获取不到地址,其他型号家庭路由器获取地址也正常

处理过程

1、 通过抓取报文发现,当该款路由器收到ME60下发的dhcp offer报文时,不发送dhcp request报文,所以获取不到地址。

2、在bas口下添加dhcp-broadcast命令,发现该款路由器可以正常发送dhcp request报文,正常获取到地址了。

interface GigabitEthernet5/1/7.2001
user-vlan 162
user-vlan 1500
bas

    
  dhcp-broadcast 
  
#

3、这时候现网又报有一款机顶盒获取不到地址了。未改配置前,该机顶盒能获取到地址。更改配置后,该机顶盒获取不到地址了。通过抓包发现机顶盒又不回应dhcp request报文了。

4、怎么样兼顾机顶盒和家庭路由器呢?客户未部署ME60之前,机顶盒和路由器都是通过博达交换机获取地址的,所以还原原先博达交换机组网环境,研究机顶盒和家庭路由器的获取地址过程。通过抓包发现:

dhcp discover报文中broadcast标志位为1,回应的dhcp offer报文中的broadcast标志位为1,将全F的广播地址做为回应报文的目的MAC。

dhcp discover报文中broadcast标志位为0,回应的dhcp offer报文中的broadcast标志位为0,将用户的MAC地址做为回应报文的目的MAC。

 

5、根据以上发现,ME60上bas接口下配置dhcp reply trust broadcast-flag。可以实现机顶盒和家庭路由器同时获取地址。

dhcp reply trust broadcast-flag命令用来配置DHCP回应报文的目的MAC根据用户请求报文中的broadcast标志位来封装。配置信任broacast标志位后,若DHCP请求报文中broadcast标志位为1,则将全F的广播地址做为回应报文的目的MAC;若DHCP请求报文中broadcast标志位为0,则将用户的MAC地址做为回应报文的目的MAC。

interface GigabitEthernet5/1/7.2001 
user-vlan 162
user-vlan 1500
bas

    dhcp reply trust broadcast-flag 
  #                      

根因

1、按照RFC协议规定:

如果offer报文中的目的mac是单播mac(不配置dhcp-broadcast,那么允许终端不回应此种报文。

但如果offer报文中的目的mac是广播mac(配置了dhcp-broadcast,终端需要认可并回应request

配置了dhcp-broadcast后,由于该款机顶盒实现非标准,该终端不认可广播MAC的offer报文,所以不回应dhcp request报文。

2、缺省情况下,DHCP回应报文的目的MAC不根据用户请求报文中的broadcast标志位来封装,回应报文的目的MAC为用户MAC。如果希望设备根据DHCP请求报文的Broadcast标志位封装回应报文的目的MAC时配置此命令。

解决方案

ME60上bas接口下配置dhcp reply trust broadcast-flag即可解决该问题。

interface GigabitEthernet5/1/7.2001
user-vlan 162
user-vlan 1500
bas

    dhcp reply trust broadcast-flag 
  #                      

END