0% found this document useful (0 votes)
109 views8 pages

Debug Steps For LACP

The document provides debug steps for troubleshooting a Link Aggregation Control Protocol (LACP) issue on an aggregated Ethernet interface (AE). The key steps include: 1) enabling LACP logs; 2) checking if the child links of the AE interface have flapped; 3) examining LACP statistics to check if protocol data units (PDUs) are being exchanged properly; and 4) checking syslog files for timeouts on child links which could indicate a failure of PDU exchange.

Uploaded by

Esteban M
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
109 views8 pages

Debug Steps For LACP

The document provides debug steps for troubleshooting a Link Aggregation Control Protocol (LACP) issue on an aggregated Ethernet interface (AE). The key steps include: 1) enabling LACP logs; 2) checking if the child links of the AE interface have flapped; 3) examining LACP statistics to check if protocol data units (PDUs) are being exchanged properly; and 4) checking syslog files for timeouts on child links which could indicate a failure of PDU exchange.

Uploaded by

Esteban M
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Debug

 Steps  for  LACP  


*  First  and  foremost,  enable  LACP  logs  as  follows  :  
 
set  protocols  lacp  traceoptions  file  lacp.log  size  1g  
set  protocols  lacp  traceoptions  flag  all  
 
 
In  case  of  a  AE  flap,  please  check  the  following  :-­‐  
 
*  Check  if  the  child  links  of  the  flapped  AE  interfaces  have  flapped  
Eg  :  
regress@shishir>  show  interfaces  ge-­‐2/0/2  |  grep  flap  
   Last  flapped      :  2015-­‐08-­‐11  20:35:18  PDT  (00:49:30  ago)  
 
regress@shishir>  show  interfaces  ge-­‐2/0/3  |  grep  flap  
   Last  flapped      :  2015-­‐08-­‐11  20:35:19  PDT  (00:49:34  ago)  
 
 
*  Check  the  LACP  stats  to  see  if  the  PDUs  are  exchanged  between  the  actor  and  
the  peer  
 
regress@r0_re0#  run  show  lacp  statistics  interfaces  
Aggregated  interface:  ae0  
       LACP  Statistics:              LACP  Rx          LACP  Tx      Unknown  Rx      Illegal  Rx  
           ge-­‐0/0/1                                    21                    59                        0                        0  
           ge-­‐0/0/2                                    21                    60                        0                        0  
 
 
*  Check  for  the  syslog  file  to  see  if  there  was  a  timeout  on  one  of  the  child  links  
 
%  cat  messages  |  grep  LACP  
Aug  19  02:04:25    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/1  -­‐  ATTACHED  state  -­‐  acting  as  standby  
link  
Aug  19  02:04:25    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/2  -­‐  ATTACHED  state  -­‐  acting  as  standby  
link  
Aug  19  02:04:25    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/1  -­‐  CD  state  -­‐  ready  to  carry  traffic  
Aug  19  02:04:25    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/2  -­‐  CD  state  -­‐  ready  to  carry  traffic  
Aug  19  02:05:29    r0_re0  lacpd[5050]:  LACPD_TIMEOUT:  ge-­‐0/0/2:  lacp  current  
while  timer  expired  current  Receive  State:  CURRENT  
Aug  19  02:05:29    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/2  -­‐  ATTACHED  state  -­‐  acting  as  standby  
link  
Aug  19  02:05:29    r0_re0  lacpd[5050]:  LACPD_TIMEOUT:  ge-­‐0/0/1:  lacp  current  
while  timer  expired  current  Receive  State:  CURRENT  
Aug  19  02:05:29    r0_re0  lacpd[5050]:  LACP_INTF_DOWN:  ae0:  Interface  marked  
down  due  to  lacp  timeout  on  member  ge-­‐0/0/1  
Aug  19  02:05:29    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/1  -­‐  ATTACHED  state  -­‐  acting  as  standby  
link  
Aug  19  02:05:32    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/2  -­‐  DETACHED  state  -­‐  will  not  carry  traffic  
Aug  19  02:05:32    r0_re0  kernel:  KERN_LACP_INTF_STATE_CHANGE:  
lacp_update_state_userspace:  cifd  ge-­‐0/0/1  -­‐  DETACHED  state  -­‐  will  not  carry  traffic  
 
In  case  there  is  a  timeout,  it  means  PDUs  are  not  being  received  on  the  
concerned  interface.  The  following  output  with  Mux  state  Detached  and  
Receive  state  Defaulted  can  be  seen  in  this  case.  
 
regress@r0_re0#  run  show  lacp  interfaces  
Aggregated  interface:  ae0  
       LACP  state:              Role      Exp      Def    Dist    Col    Syn    Aggr    Timeout    Activity  
           ge-­‐0/0/1              Actor        No      Yes        No      No      No      Yes          Fast        Active  
           ge-­‐0/0/1          Partner        No      Yes        No      No      No      Yes          Fast      Passive  
           ge-­‐0/0/2              Actor        No      Yes        No      No      No      Yes          Fast        Active  
           ge-­‐0/0/2          Partner        No      Yes        No      No      No      Yes          Fast      Passive  
       LACP  protocol:                Receive  State    Transmit  State                    Mux  State  
           ge-­‐0/0/1                                Defaulted      Fast  periodic                      Detached  
           ge-­‐0/0/2                                Defaulted      Fast  periodic                      Detached  
 
 
*  Check  if  the  transmit  entries  for  the  LACP  PDUs  are  present  in  PPMAN.  The  
output  for  2  child  links  is  shown  below  
 
%vty  fpc<fpc_slot>    
VMX0(r0_re0  vty)#  show  ppm  transmits  
 
Protocol        Tx  Interval      PPM  handle    Inline          Quick  Xmit  
                             (msec)  
LACP                1000                    3                      No                  No  
LACP                1000                    4                      No                  No  
 
Total  transmit  entries:  2  
 
Correspondingly,  an  adjacency  entry  for  each  child  link  on  which  the  PDU  is  
received  must  be  present  in  the  PPMAN  
VMX0(r0_re0  vty)#  show  ppm  adjacencies  
 
PPM  distributed  adjacencies  
 
Protocol      Holdtime  (msec)  PPM  handle    Inline  
 
LACP              3000                        7                      No  
LACP              3000                        8                      No  
 
The  same  above  commands  can  be  used  in  RE  to  check  for  PPMD  adjacencies.  In  
case  the  no-­‐delegate-­‐processing  is  used,  the  above  entries  will  not  be  seen  in  
PPMAN,  but  only  in  PPMD.  
 
 
*  Next,  we  check  whether  the  PDUs  are  sent  and  received  as  expected  at  the  
PPMAN  level  when  the  problematic  trigger  is  executed,  if  one  exists.  
 
Login  to  the  vty  terminal  on  the  fpc  housing  the  child  links  
 
Before  enabling  the  logging  for  the  PDUs,  make  sure  you  have  the  control  ifl  number  
of  the  child  link  which  is  of  interest.  The  control  ifl  will  be  <child_ifd>.37627  for  
tagged  interfaces,  and  <child_ifd>.0  for  untagged  interfaces.  
 
The  IFL  index  can  be  seen  in  the  vty  terminal  with  the  following  command  
 
VMX0(r0_re0  vty)#  show  ifl  brief  
Index    Name                                  Type                      Encapsulation      Flags    RT  Index        Channel      FNP  
status  
-­‐-­‐-­‐-­‐-­‐    -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    -­‐-­‐-­‐-­‐-­‐-­‐            -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐                      -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  
131079    .discard.0                      Unspecified        Unspecified          0x0000000000000040          0              0  
131089    .dlexception.0              Unspecified        Unspecified          0x0000000000000040          0              
0  
131090    .idlexception.0            Unspecified        Unspecified          0x0000000000000040          0              
0  
       0    .local..0                        Unspecified        Unspecified          0x0000000000000010          0              0  
       1    .local..1                        Unspecified        Unspecified          0x0000000000000052          0              0  
       2    .local..2                        Unspecified        Unspecified          0x0000000000000052          0              0  
   323    .local..3                        Unspecified        Unspecified          0x0000000000000052          0              0  
   324    .local..4                        Unspecified        Unspecified          0x0000000000000052          0              0  
   326    .local..5                        Unspecified        Unspecified          0x0000000000000052          0              0  
   327    .local..6                        Unspecified        Unspecified          0x0000000000000052          0              0  
   328    .local..7                        Unspecified        Unspecified          0x0000000000000052          0              0  
262016    .local..36735                Unspecified        Unspecified          0x0000000000000052          0              
0  
262017    .local..36736                Unspecified        Unspecified          0x0000000000000052          0              
0  
131087    .lpbk.0                            Unspecified        Unspecified          0x0000000000000040          0              0  
131095    .mqzl.0                            Unspecified        Unspecified          0x0000000000000040          0              0  
131075    .pfe.0                              Unspecified        Unspecified          0x0000000000000040          0              0  
131096    .pfe.1                              Unspecified        Unspecified          0x0000000000000040          0              0  
131080    .punt.0                            Unspecified        Unspecified          0x0000000000000040          0              0  
131088    .ulexception.0              Unspecified        Unspecified          0x0000000000000040          0              
0  
   335    ae0.32767                        VLAN  Tagged        Ethernet                0x000000000400c000          0              0  
   333    ge-­‐0/0/1.32767              VLAN  Tagged        Ethernet                0x000000000400c000          0              
0  
   334    ge-­‐0/0/2.32767              VLAN  Tagged        Ethernet                0x000000000400c000          0              
0  
   325    jsrv.1                              Ethernet              Ethernet                0x0000000024004000          0              0  
   329    lc-­‐0/0/0.32769              Ethernet              Ethernet                0x0000000000000000          0              0  
   322    lo0.0                                Unspecified        Unspecified          0x0000000000008052          0              0  
   320    lo0.16384                        Unspecified        Unspecified          0x0000000000008052          0              0  
   321    lo0.16385                        Unspecified        Unspecified          0x0000000000008052          0              0  
   332    pfe-­‐0/0/0.16383            Unspecified        Unspecified          0x0000000000008000          0              
0  
   331    pfh-­‐0/0/0.16384            Unspecified        Unspecified          0x0000000000008000          0              
0  
   330    pfh-­‐0/0/0.16383            Unspecified        Unspecified          0x0000000000008000          0              
0  
 
Look  for  the  IFL  with  unit  32767.  LACP  PDUs  are  exchanged  on  this  unit  for  tagged  
interfaces.  For  untagged  interfaces,  PDUs  are  exchanged  on  unit  0.  
 
Then  to  see  the  sending  and  receiving  of  the  PDUs,  enable  the  following  debug  
command:  
debug  ppm  protocol  lacp  level  2  
 
VMX0(r0_re0  vty)#  [Wed  Aug  19  02:17:58  2015  LOG:  Debug]  
ppmd_lacp_proto_receive:  absorbed  LACP  pkt  from  IFL  333  
[Wed  Aug  19  02:17:58  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
[Wed  Aug  19  02:17:58  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  333  
[Wed  Aug  19  02:17:58  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  334  
[Wed  Aug  19  02:17:59  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:17:59  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
[Wed  Aug  19  02:17:59  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  333  
[Wed  Aug  19  02:17:59  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  334  
[Wed  Aug  19  02:18:00  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:18:00  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
[Wed  Aug  19  02:18:00  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  333  
[Wed  Aug  19  02:18:00  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  334  
[Wed  Aug  19  02:18:01  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:18:01  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
[Wed  Aug  19  02:18:01  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  333  
[Wed  Aug  19  02:18:01  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  334  
[Wed  Aug  19  02:18:02  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:18:02  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
[Wed  Aug  19  02:18:02  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  333  
[Wed  Aug  19  02:18:02  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  334  
[Wed  Aug  19  02:18:03  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:18:03  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
[Wed  Aug  19  02:18:03  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  333  
[Wed  Aug  19  02:18:03  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  334  
[Wed  Aug  19  02:18:04  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:18:04  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
[Wed  Aug  19  02:18:04  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  333  
[Wed  Aug  19  02:18:04  2015  LOG:  Debug]  ppmd_lacp_send:  Sending  packet  on  LACP  
PPM  interface  for  IFL  334  
[Wed  Aug  19  02:18:05  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:18:05  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
 
Notice  how  the  LACP  PDUs  are  being  sent  and  received  on  both  the  control  IFLs  at  
the  set  interval  of  1sec  for  lacp  FAST  (for  LACP  slow  it  will  be  30s)  
 
We  can  also  verify  that  the  correct  lacp  variables  are  being  sent  in  the  PDU  by  seeing  
the  PDU  contents.  To  see  this,  change  the  level  to  3.  
 
VMX0(r0_re0  vty)#  debug  ppm  protocol  lacp  level  3  
Old  debug  level  =  0  
New  debug  level  =  3  
 
VMX0(r0_re0  vty)#  [Wed  Aug  19  02:23:34  2015  LOG:  Debug]  Received  LACP  pdu  -­‐  
IFL  idx  333  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      dst  mac  01:80:c2:00:00:02  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      src  mac  00:05:86:48:50:c0  ether  type  0x  
988  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      lacp  subtype  0x1  lacp  version  number  
0x1  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      first  tlv  type  0x1  actor  info  len  0x14  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      actor  sys  priority  0x7f00  actor  sys  
00:05:86:48:50:c0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      actor  key  0x100  actor  port  priority  
0x7f00  actor  port  0x100  actor  state  0x3f  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      lacp_reserved1[0]  0x0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      second  tlv  type  0x2  partner  info  len  0x14  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      partner  sys  priority  0x7f00  partner  sys  
00:05:86:58:6f:c0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      partner  key  0x100  partner  port  priority  
0x7f00  partner  port  0x100  partner  state  0x3f  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      lacp_reserved2[0]  0x0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      third  tlv  type  0x3  collector  info  len  0x10  
collector  max  del  0x0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      fourth  tlv  type  0x0  terminator  len  0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  333  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]  Received  LACP  pdu  -­‐  IFL  idx  334  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      dst  mac  01:80:c2:00:00:02  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      src  mac  00:05:86:48:50:c0  ether  type  0x  
988  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      lacp  subtype  0x1  lacp  version  number  
0x1  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      first  tlv  type  0x1  actor  info  len  0x14  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      actor  sys  priority  0x7f00  actor  sys  
00:05:86:48:50:c0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      actor  key  0x100  actor  port  priority  
0x7f00  actor  port  0x200  actor  state  0x3f  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      lacp_reserved1[0]  0x0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      second  tlv  type  0x2  partner  info  len  0x14  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      partner  sys  priority  0x7f00  partner  sys  
00:05:86:58:6f:c0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      partner  key  0x100  partner  port  priority  
0x7f00  partner  port  0x200  partner  state  0x3f  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      lacp_reserved2[0]  0x0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      third  tlv  type  0x3  collector  info  len  0x10  
collector  max  del  0x0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]      fourth  tlv  type  0x0  terminator  len  0  
[Wed  Aug  19  02:23:34  2015  LOG:  Debug]  ppmd_lacp_proto_receive:  absorbed  LACP  
pkt  from  IFL  334  
 
We  need  to  execute  this  command  on  both  the  ends  (actor  and  partner)  
There  could  be  two  possibilities  here      
 
1. Actor  is  sending  the  PDUs  for  the  given  IFL,  but  the  partner  is  not  receiving  it  
In  the  above  case,  you  will  see  a  PDU  being  sent  from  the  PPMAN  in  the  
Actor,  while  the  same  PDU  is  not  received  at  the  PPMAN  in  the  peer  router.  
This  means  that  there  could  be  an  issue  with  either  the  Rx  of  PDUs  in  the  
peer  router,  or  it  could  be  a  problem  with  Tx  to  the  wire  in  the  actor.  Please  
involve  the  PFE  team  explaining  that  there  is  a  loss  of  PDUs  on  the  given  
interfaces.  This  is  not  an  issue  with  LACP.  
 
2. Actor  is  failing  to  send  the  PDUs    
In  this  case,  you  will  clearly  see  that  ‘Sending  LACP  PDU’  is  missing  for  the  
given  control  ifl  index.    Please  involve  the  LACP  team  for  further  debugging  
with  this  information.  
 
NOTE  :  In  order  to  stop  the  above  logging  of  LACP  PDUs  please  set  the  level  
back  to  0  
VMX0(r0_re0  vty)#  debug  ppm  protocol  lacp  level  0  
Old  debug  level  =  3  
New  debug  level  =  0  
 
 
*  In  case  AE  flaps  on  GRES,  please  set  the  ppm-­‐redistribution  timer  to  120s.  
set  routing-­‐options  ppm  redistribution-­‐timer  120  
 
Note  :  This  is  a  hidden  knob.    
 
If  the  AE  does  not  flap  after  enabling  this  knob,  please  add  this  command  to  
your  configuration.  
 
• If  an  issue  is  seen  with  LACP  and  BFD  configured,  then  please  check  if  
the  issue  is  seen  even  in  case  of  static  LAG  (LAG  without  LACP  config.)  
and  BFD.  Accordingly,  assign  the  PR  to  BFD  team.  
 

You might also like