由于配置arp严格学习导致NE40E qinq终结子接口学不到下挂设备的arp

发布时间:  2010-06-28 浏览次数:  117 下载次数:  0
问题描述
NE40E的某qinq子接口g3/0/2.1800无法形成arp表项:
<DT_NE40E>dis arp int g3/0/2.1800                                               
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE  
                                          VLAN/CEVLAN PVC                       
------------------------------------------------------------------------------  
10.39.64.41     0018-8204-2f45            I -         GE3/0/2.1800   NGN        
------------------------------------------------------------------------------  
Total:1         Dynamic:0       Static:0    Interface:1   

处理过程

1、查看接口配置如下;                                            
<DT_NE40E>dis cu int  g3/0/2.1800                                               
#                                                                               
interface GigabitEthernet3/0/2.1800
 control-vid 1800 dot1q-termination                                             
 dot1q termination vid 1800                                                     
 ip address 10.39.64.41 255.255.255.252                                         

接口下确实没有使能arp广播,一般来说,对于qinq终结子接口,需要使能arp广播功能,来防止下挂设备不主动发arp报文的情况。但客户表示之前设备上所有的qinq接口都没有使能arp广播,而业务是正常的,说明下挂设备是可以主动发arp报文的。由于业务大面积受影响,客户将其他qinq终结子接口下都加上了arp broadcast enable命令,加上该命令后马上恢复了大部分业务,留下g3/0/2.1800的接口不使能arp广播,继续定位问题。
2、对g3/0/2.1800接口的arp报文进行debug,来确认下挂设备是否发送了arp报文:<DT_NE40E>debug arp packet interface g3/0/2.1800
*1.149913444 DT_NE40E ARP/7/arp_rcv:Slot=3;Receive an ARP Packet, operation : 1,
 sender_eth_addr : 00d0-eb6b-f365, sender_ip_addr : 10.39.64.42, target_eth_addr
 : 0000-0000-0000, target_ip_addr : 10.39.64.41                                 
*1.149913444 DT_NE40E ARP/7/arp_send:Slot=3;Send an ARP Packet, operation : 2, s
ender_eth_addr : 0018-8204-2f45,sender_ip_addr : 10.39.64.41, target_eth_addr : 
00d0-eb6b-f365, target_ip_addr : 10.39.64.42                       <DT_NE40E>dis arp int g3/0/2.1800                                               
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE  
                                          VLAN/CEVLAN PVC                       
------------------------------------------------------------------------------  
10.39.64.41     0018-8204-2f45            I -         GE3/0/2.1800   NGN        
------------------------------------------------------------------------------  
Total:1         Dynamic:0       Static:0    Interface:1                                                                     <DT_NE40E>ping -vpn NGN 10.39.64.42                                             
  PING 10.39.64.42: 56  data bytes, press CTRL_C to break 
  --- 10.39.64.42 ping statistics ---                                           
    5 packet(s) transmitted                                                     
    0 packet(s) received                                                        
    100.00% packet loss                                                         
通过debug发现,下挂设备发送了arp请求,且设备回应了,但仍然没有形成arp表项,互ping仍然不通。
3、检查设备的其他配置,发现此问题的主要原因是因为系统视图下配置了arp learning strict这条命令,这条命令的作用是用来使能接口下的ARP严格学习功能,使路由器只学习自己发送的ARP请求报文的应答报文。
4、向客户了解情况,确实是在设备配置了arp learning strict命令后出现了业务受影响的问题,至此问题原因明了:之前虽然接口没有使能arp广播,但由于下挂设备都能主动发送arp报文,所以NE40E能形成有效的arp表项,下挂设备通过发送arp请求也能学习到网关的arp,所以互通没有问题;但当NE40E全局配置了arp learning strict严格学习命令后,下挂设备虽然仍能学习到网关的arp,但是网关接口仅学习自己发送的arp请求的应答报文,而网关接口又没有配置arp broadcast enable来发送arp请求,所以导致接口学习不到下挂设备的arp。

根因

由于配置arp严格学习,设备只能通过发送arp request报文,并收到arp reply才能学习arp。
qinq端口上没有部署arp-broadcast enable,所以下挂设备发送的arp报文不会学习,而本设备不发送arp request报文。

解决方案
在全局删除arp learning strict命令或者在接口配置arp broadcast enable命令都可以使该问题得到解决。

 

建议与总结
若全局配置了arp learning strict命令,则在qinq终结子接口下一定要配置arp broadcast enable命令。

END