In my previous Junos Basics post I covered configuring an 802.1Q Trunk between a Juniper EX2200C and a Cisco 2960S. This post will expand upon the previous one by bundling two interfaces together on each switch to form an aggregated link for the trunk.
There are a few proprietary standards for aggregating ethernet links, but Juniper uses the IEEE 802.3ad standard and Cisco can also be configured to use this. The 802.3ad standard is known as Link Aggregation Control Protocol (LACP). LACP can be configured in either Active or Passive mode – in Active mode a switch will always try and form an LACP link with the other side, and in Passive mode a switch will form an LACP link if the other side is in Active mode.
On the Cisco side, the config steps are very simple:
- specify the interfaces to be aggregated
- set the protocol to LACP
- create a Channel Group and specify the LACP mode
- set the Port Channel interface as a trunk
- specify which VLAN’s are allowed over the trunk
Cisco2960S(config)#int range gi1/0/47-48 Cisco2960S(config-if-range)#channel-protocol lacp Cisco2960S(config-if-range)#channel-group 1 mode passive Cisco2960S(config)#interface po1 Cisco2960S(config-if)#switchport mode trunk Cisco2960S(config-if)#switchport trunk allowed vlan 100,200
Onto the Juniper side, the first step is to specify the number of aggregated links on the switch:
rich@EX2200C# set chassis aggregated-devices ethernet device-count 1
Next, we have to remove the logical unit configuration from the interfaces that are to be bundled, as logical units are not allowed on aggregated links:
delete interfaces ge-0/1/1 unit 0 delete interfaces ge-0/1/0 unit 0
Next, set the interfaces to use LACP (802.3ad) and to be members of a logical aggregated ethernet port (ports begin with ae):
set interfaces ge-0/1/0 ether-options 802.3ad ae0 set interfaces ge-0/1/1 ether-options 802.3ad ae0
Then we need to set the LACP mode for our new aggregated interface. We’ll make the Juniper side Active, so that it initiates the transmissison of LACP packets:
set interfaces ae0 aggregated-ether-options lacp active
Finally, we need to set the aggregated link to be a trunk, and tell it which VLAN’s to trunk:
set interfaces ae0 unit 0 family ethernet-switching port-mode trunk set interfaces ae0 unit 0 family ethernet-switching vlan members [SALES IT]
To verify our config, we’ll start on the Cisco side and check the Etherchannel summary:
Cisco2960S#show etherchannel summary Flags: D - down P - bundled in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator M - not in use, minimum links not met u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 1 Number of aggregators: 1 Group Port-channel Protocol Ports ------+-------------+-----------+------------------------ 1 Po1(SU) LACP Gi1/0/47(P) Gi1/0/48(P)
Then we can confirm the trunk config:
Cisco2960S#show interfaces trunk Port Mode Encapsulation Status Native vlan Po1 on 802.1q trunking 1 Port Vlans allowed on trunk Po1 100,200 Port Vlans allowed and active in management domain Po1 100,200 Port Vlans in spanning tree forwarding state and not pruned Po1 100,200
And on the Juniper side:
rich@EX2200C> show lacp interfaces Aggregated interface: ae0 LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity ge-0/1/0 Actor No No Yes Yes Yes Yes Fast Active ge-0/1/0 Partner No No Yes Yes Yes Yes Slow Passive ge-0/1/1 Actor No No Yes Yes Yes Yes Fast Active ge-0/1/1 Partner No No Yes Yes Yes Yes Slow Passive LACP protocol: Receive State Transmit State Mux State ge-0/1/0 Current Slow periodic Collecting distributing ge-0/1/1 Current Slow periodic Collecting distributing
From the above output we can see that our individual interfaces are both Active, with the partner end Passive. For a detailed explanation of the output see this article from Juniper, but suffice to say the Mux State of Collecting and Distributing means the LACP protocol is working correctly.
We can also confirm the trunk is up and trunking for VLAN’s 100 and 200:
rich@EX2200C> show ethernet-switching interfaces Interface State VLAN members Tag Tagging Blocking ae0.0 up IT 200 tagged unblocked SALES 100 tagged unblocked
I hope this has been a useful explanation. In my next Junos Basics post I’ll cover first hop redundancy using VRRP.
Thanks for reading.
Rich
Follow Rich on Twitter
very nicely explained…thanks..
Thanks Angad
Completely spot on. Thanks so much for the walk-through.
In Juniper EX4600, If one side interface configured ae but the other side no ae configured. Will trunk still works?
Switch A
set interfaces ge-0/1/0 ether-options 802.3ad ae0
set interfaces ae0 unit 0 family ethernet-switching port-mode trunk
Switch B
set interfaces ge-0/0/1 unit 0 family ethernet-switching port-mode trunk
Good question! I’m not sure, I’d have to test it. maybe someone else can confirm?
what do you mean by
‘Next, we have to remove the logical unit configuration from the interfaces that are to be bundled, as logical units are not allowed on aggregated links: ‘?
does that apply to layer 3 AE interfaces too?
Logical units can only be defined under the aggregated interface. see: https://forums.juniper.net/t5/Ethernet-Switching/Ex4200-logical-unit-is-not-allowed-on-aggregated-links/td-p/13387
Thx, Rich, I understand now, however, is it possible to get the same message on a layer 3 AE interface too?
Like this:
root@Switch1# commit
[edit interfaces ae5]
‘unit 0’
logical unit is not allowed on aggregated links
error: configuration check-out failed
I think that is what i used to get (i might be wrong)
Hey rich,
Do u have any documentation on the mux state.