[j-nsp] EX4200 missing ARP entry work-around

Jeff Wheeler jsw at inconcepts.biz
Wed Jan 11 14:14:59 EST 2012

We have decided on a better work-around for our missing ARP entry
problems on the EX4200 and friends.

As you may recall, the EX4200 will sometimes have an ARP entry in the
control-plane, but it will not be present in the data-plane.  You can
investigate by checking your destination IP address with the command
`show halp-rt route ip rtt-index 0 prefix prefix-length 32`
which will produce output like this:

PFEM0(vty)# show halp-rt route ip rtt-index 0 prefix prefix-length 32

  Route                    Type Paths RtIdx Rpf SipSa Row:Col:Row:Col
  --------------------     ---- ----- ----- --- ----- ---------------              ECMP 0     2037  No  No    439:0:0:0

  Dev0 (RtIdx:2037)
  Command           : Route              CpuCode        : 3
  AppSpCpuCodeEn    : 0                  UcSipFiltEna   : 0
  TtlDecEna         : 1                  TtlOptChkBypass: 0
  IngressMirror     : 0                  QoSProfileEn   : 0
  QoSProfileIndex   : 0                  QoSPrecedence  : 1
  ModifyUp          : 2                  ModifyDscp     : 0
  CounterSet        : 2                  ArpBc2Cpu      : 0
  SipAccessLevel    : 0                  DipAccessLevel : 0
  IcmpRedirExpnMirr : 0                  MtuProfileIdx  : 2
  Ipv6ScopeCheckEn  : 0                  Ipv6DstSiteId  : 0
  NhTnnl            : 0                  NhTnnlIdx      : 0
  NhVlan            : 6                  NhIf           : VIDX4095
  NhArpIdx          : 138
Device: 0
  ArpEntry Idx 138  : 00:2b:f0:19:87:01
  Hit/Miss          : N

Notice above a reference to NhArpIdx 138.  In order for forwarding to
work correctly, there must be an entry # 138 in the `halp-nh
arp-table.`  Since there isn't one, the NhIf shown is VIDX4095, not a
port.  However, if you want to verify that there is no NhArpIdx 138 in
the hardware, you can examine the table with `show halp-nh arp-table`
and scroll down to where # 138 should be.  You won't find it!

PFEM0(vty)# show halp-nh arp-table
Device: 0
... lots of scrolling ...
  ArpEntry Idx 136  : 00:18:8b:f8:b6:6e
  ArpEntry Idx 137  : 00:0e:b6:2d:01:a0
  ArpEntry Idx 139  : 00:19:b9:f9:24:2a
  ArpEntry Idx 140  : 78:2b:cb:3c:91:60

How do you get the switch to populate that entry?  Well, since `clear
arp` on the EX4200 doesn't actually do what it is supposed to do, what
we have been doing in the past is deleting whole subnets, impacting
potentially many machines, and then re-adding them.  This is not good
but it does work.

Our new solution is much better.  We just add a bogus static arp entry
for, pointing to some made-up MAC address, and then we
commit, roll back, and commit again.  Like magic, the ARP entry will
re-populate correctly.  Almost as if you really did have a `clear arp`
command on the EX4200, one that worked right!

After adding and then deleting the bogus static ARP for you
can re-examine the PFE and see the results.  Also, your customer's
Internets will begin working correctly again.

I hope this helps.
Jeff S Wheeler <jsw at inconcepts.biz>
Sr Network Operator  /  Innovative Network Concepts

More information about the juniper-nsp mailing list