Configuring Link Bundling

The Link Bundling feature allows you to group multiple point-to-point links together into one logical link and provide higher bidirectional bandwidth, redundancy, and load balancing between two routers. A virtual interface is assigned to the bundled link. The component links can be dynamically added and deleted from the virtual interface.

The virtual interface is treated as a single interface on which one can configure an IP address and other software features used by the link bundle. Packets sent to the link bundle are forwarded to one of the links in the bundle.

A link bundle is simply a group of ports that are bundled together and act as a single link. The advantages of link bundles are as follows:

  • Multiple links can span several line cards to form a single interface. Thus, the failure of a single link does not cause a loss of connectivity.

  • Bundled interfaces increase bandwidth availability, because traffic is forwarded over all available members of the bundle. Therefore, traffic can flow on the available links if one of the links within a bundle fails. Bandwidth can be added without interrupting packet flow.

All the individual links within a single bundle must be of the same type and the same speed.

Cisco IOS XR software supports the following method of forming bundles of Ethernet interfaces:

  • IEEE 802.3ad—Standard technology that employs a Link Aggregation Control Protocol (LACP) to ensure that all the member links in a bundle are compatible. Links that are incompatible or have failed are automatically removed from a bundle.

Limitations and Compatible Characteristics of Ethernet Link Bundles

This list describes the properties and limitations of ethernet link bundles:

  • The router supports mixed speed bundles. Mixed speed bundles allow member links of different bandwidth to be configured as active members in a single bundle. The ratio of the bandwidth for bundle members must not exceed 10. Also, the total weight of the bundle must not exceed 64. For example, 100Gbps link and 10Gbps links can be active members in a bundle and load-balancing on member links is based on bandwidth weightage.

  • The weight of each bundle member is the ratio of its bandwidth to the lowest bandwidth member. Total weight of the bundle is the sum of weights or relative bandwidth of each bundle member. Since the weight for a bundle member is greater than or equal to 1 and less than or equal to 10, the total member of links in a bundle is less than 64 in mixed bundle case.

  • Any type of Ethernet interfaces can be bundled, with or without the use of LACP (Link Aggregation Control Protocol).

  • A single router can support a maximum of 63 bundle interfaces. Link bundles of only physical interfaces are supported.

  • Physical layer and link layer configuration are performed on individual member links of a bundle.

  • Configuration of network layer protocols and higher layer applications is performed on the bundle itself.

  • IPv4 and IPv6 addressing is supported on ethernet link bundles.

  • A bundle can be administratively enabled or disabled.

  • Each individual link within a bundle can be administratively enabled or disabled.

  • Ethernet link bundles are created in the same way as Ethernet channels, where the user enters the same configuration on both end systems.

  • The MAC address that is set on the bundle becomes the MAC address of the links within that bundle.

  • Load balancing (the distribution of data between member links) is done by flow instead of by packet. Data is distributed to a link in proportion to the bandwidth of the link in relation to its bundle.

  • QoS is supported and is applied proportionally on each bundle member.

  • All links within a single bundle must terminate on the same two systems.

  • Bundled interfaces are point-to-point.

  • A link must be in the up state before it can be in distributing state in a bundle.

  • Only physical links can be bundle members.

  • Multicast traffic is load balanced over the members of a bundle. For a given flow, internal processes select the member link and all traffic for that flow is sent over that member.

Configuring Ethernet Link Bundles

This section describes how to configure an Ethernet link bundle.


Note

In order for an Ethernet bundle to be active, you must perform the same configuration on both connection endpoints of the bundle.


SUMMARY STEPS

  1. configure
  2. interface Bundle-Ether bundle-id
  3. ipv4 address ipv4-address mask
  4. bundle minimum-active bandwidth kbps
  5. bundle minimum-active links links
  6. bundle maximum-active links links [hot-standby]
  7. exit
  8. interface HundredGigE interface-path-id
  9. bundle id bundle-id [mode {active | on | passive}]
  10. bundle port-priority priority
  11. no shutdown
  12. exit
  13. bundle id bundle-id [mode {active | passive | on}] no shutdown exit
  14. end or commit
  15. exit
  16. exit
  17. Perform Step 1 through Step 15 on the remote end of the connection.
  18. show bundle Bundle-Ether bundle-id
  19. show lacp Bundle-Ether bundle-id

DETAILED STEPS


Step 1

configure

Example:


RP/0/RP0/CPU0:router# configure

Enters global configuration mode.

Step 2

interface Bundle-Ether bundle-id

Example:


RP/0/RP0/CPU0:router(config)# interface Bundle-Ether 3

Creates a new Ethernet link bundle with the specified bundle-id. The range is 1 to 65535.

This interface Bundle-Ether command enters you into the interface configuration submode, where you can enter interface specific configuration commands are entered. Use the exit command to exit from the interface configuration submode back to the normal global configuration mode.

Step 3

ipv4 address ipv4-address mask

Example:


RP/0/RP0/CPU0:router(config-if)# ipv4 address 10.1.2.3 255.0.0.0

Assigns an IP address and subnet mask to the virtual interface using the ipv4 address configuration subcommand.

Note 
  • Only a Layer 3 bundle interface requires an IP address.

Step 4

bundle minimum-active bandwidth kbps

Example:


RP/0/RP0/CPU0:router(config-if)# bundle minimum-active bandwidth 580000

(Optional) Sets the minimum amount of bandwidth required before a user can bring up a bundle.

Step 5

bundle minimum-active links links

Example:


RP/0/RP0/CPU0:router(config-if)# bundle minimum-active links 2

(Optional) Sets the number of active links required before you can bring up a specific bundle.

Step 6

bundle maximum-active links links [hot-standby]

Example:


RP/0/RP0/CPU0:router(config-if)# bundle maximum-active links 1 hot-standby

(Optional) Implements 1:1 link protection for the bundle, which causes the highest-priority link in the bundle to become active and the second-highest-priority link to become the standby. Also, specifies that a switchover between active and standby LACP-enabled links is implemented per a proprietary optimization.

Note 
  • The priority of the active and standby links is based on the value of the bundle port-priority command.

Step 7

exit

Example:


RP/0/RP0/CPU0:router(config-if)# exit

Exits interface configuration submode for the Ethernet link bundle.

Step 8

interface HundredGigE interface-path-id

Example:


RP/0/RP0/CPU0:router(config)# interface HundredGigE 0/1/0/1

Enters interface configuration mode for the specified interface.

Enter the HundredGigE keyword to specify the interface type. Replace the interface-path-id argument with the node-id in the rack /slot /module format.

Step 9

bundle id bundle-id [mode {active | on | passive}]

Example:


RP/0/RP0/CPU0:router(config-if)# bundle-id 3

Adds the link to the specified bundle.

To enable active or passive LACP on the bundle, include the optional mode active or mode passive keywords in the command string.

To add the link to the bundle without LACP support, include the optional mode on keywords with the command string.

Note 
  • If you do not specify the mode keyword, the default mode is on (LACP is not run over the port).

Step 10

bundle port-priority priority

Example:


RP/0/RP0/CPU0:router(config-if)# bundle port-priority 1

(Optional) If you set the bundle maximum-active links command to 1, you must also set the priority of the active link to the highest priority (lowest value) and the standby link to the second-highest priority (next lowest value). For example, you can set the priority of the active link to 1 and the standby link to 2.

Step 11

no shutdown

Example:


RP/0/RP0/CPU0:router(config-if)# no shutdown

(Optional) If a link is in the down state, bring it up. The no shutdown command returns the link to an up or down state depending on the configuration and state of the link.

Step 12

exit

Example:


RP/0/RP0/CPU0:router(config-if)# exit

Exits interface configuration submode for the Ethernet interface.

Step 13

bundle id bundle-id [mode {active | passive | on}] no shutdown exit

Example:


RP/0/RP0/CPU0:router(config)# interface TenGigE 0/1/0/1

RP/0/RP0/CPU0:router(config-if)# bundle id 3

RP/0/RP0/CPU0:router(config-if)# bundle port-priority 2

RP/0/RP0/CPU0:router(config-if)# no shutdown

RP/0/RP0/CPU0:router(config-if)# exit

RP/0/RP0/CPU0:router(config)# interface TenGigE 0/1/0/1

RP/0/RP0/CPU0:router(config-if)# bundle id 3

RP/0/RP0/CPU0:router(config-if)# no shutdown

RP/0/RP0/CPU0:router(config-if)# exit

(Optional) Repeat Step 8 through Step 11 to add more links to the bundle.

Step 14

end or commit

Example:


RP/0/RP0/CPU0:router(config-if)# end

or


RP/0/RP0/CPU0:router(config-if)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes:

    
    Uncommitted changes found, commit them before exiting(yes/no/cancel)?
    [cancel]:
    
  • Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

  • Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

  • Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.

Step 15

exit

Example:


RP/0/RP0/CPU0:router(config-if)# exit

Exits interface configuration mode.

Step 16

exit

Example:


RP/0/RP0/CPU0:router(config)# exit

Exits global configuration mode.

Step 17

Perform Step 1 through Step 15 on the remote end of the connection.

Brings up the other end of the link bundle.

Step 18

show bundle Bundle-Ether bundle-id

Example:

RP/0/RP0/CPU0:router# show bundle Bundle-Ether 3

(Optional) Shows information about the specified Ethernet link bundle.

Step 19

show lacp Bundle-Ether bundle-id

Example:


RP/0/RP0/CPU0:router# show lacp Bundle-Ether 3

(Optional) Shows detailed information about LACP ports and their peers.


Configuring EFP Load Balancing on an Ethernet Link Bundle

This section describes how to configure Ethernet flow point (EFP) Load Balancing on an Ethernet link bundle.

By default, Ethernet flow point (EFP) load balancing is enabled. However, the user can choose to configure all egressing traffic on the fixed members of a bundle to flow through the same physical member link. This configuration is available only on an Ethernet Bundle subinterface with Layer 2 transport (l2transport ) enabled.


Note

If the active members of the bundle change, the traffic for the bundle may get mapped to a different physical link that has a hash value that matches the configured value.


SUMMARY STEPS

  1. configure
  2. hw-module load-balance bundle l2-service l3-params
  3. interface Bundle-Ether bundle-id l2transport
  4. bundle load-balance hash hash-value [auto]
  5. end or commit

DETAILED STEPS


Step 1

configure

Example:


RP/0/RP0/CPU0:router# configure

Enters global configuration mode.

Step 2

hw-module load-balance bundle l2-service l3-params

Example:


RP/0/RP0/CPU0:router(config)# hw-module load-balance bundle l2-service l3-params

(Optional) Enables Layer 3 load balancing on Layer 2 link bundles.

Step 3

interface Bundle-Ether bundle-id l2transport

Example:


RP/0/RP0/CPU0:router#(config)# interface Bundle-Ether 3 l2transport

Creates a new Ethernet link bundle with the specified bundle-id and with Layer 2 transport enabled.

The range is 1 to 65535.

Step 4

bundle load-balance hash hash-value [auto]

Example:


RP/0/RP0/CPU0:router(config-subif)# bundle load-balancing hash 1

or


RP/0/RP0/CPU0:router(config-subif)# bundle load-balancing hash auto

Configures all egressing traffic on the fixed members of a bundle to flow through the same physical member link.

  • hash-value —Numeric value that specifies the physical member link through which all egressing traffic in this bundle will flow. The values are 1 through 8.

  • auto —The physical member link through which all egressing traffic on this bundle will flow is automatically chosen.

Step 5

end or commit

Example:


RP/0/RP0/CPU0:router(config-if)# end

or


RP/0/RP0/CPU0:router(config-if)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes: 
Uncommitted changes found, commit them before exiting (yes/no/cancel)?

  • Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

  • Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

  • Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.


Example

This example shows how to configure all egress traffic on the fixed members of a bundle to flow through the same physical member link automatically.


RP/0/RP0/CPU0:router# configuration terminal 
RP/0/RP0/CPU0:router(config)# interface bundle-ether 1.1 l2transport
RP/0/RP0/CPU0:router(config-subif)#bundle load-balancing hash auto
RP/0/RP0/CPU0:router(config-subif)#

This example shows how to configure all egress traffic on the fixed members of a bundle to flow through a specified physical member link.


RP/0/RP0/CPU0:router# configuration terminal 
RP/0/RP0/CPU0:router(config)# interface bundle-ether 1.1 l2transport
RP/0/RP0/CPU0:router(config-subif)#bundle load-balancing hash 1
RP/0/RP0/CPU0:router(config-subif)#

VLANs on an Ethernet Link Bundle

802.1Q VLAN subinterfaces can be configured on 802.3ad Ethernet link bundles. Keep the following information in mind when adding VLANs on an Ethernet link bundle:

  • There is no separate limit defined for Layer 3 sub-interfaces on a bundle. However, an overall system limit of 4000 is applicable for NCS5001 and NCS5002, while a limit of 2000 is applicable for NCS5011.


Note

The memory requirement for bundle VLANs is slightly higher than standard physical interfaces.


To create a VLAN subinterface on a bundle, include the VLAN subinterface instance with the interface Bundle-Ether command, as follows:

interface Bundle-Ether interface-bundle-id.subinterface

After you create a VLAN on an Ethernet link bundle, all VLAN subinterface configuration is supported on that link bundle.

VLAN subinterfaces can support multiple Layer 2 frame types and services, such as Ethernet Flow Points - EFPs) and Layer 3 services.

Layer 2 EFPs are configured as follows:


interface bundle-ether instance.subinterface l2transport. encapsulation dot1q xxxxx 

Layer 3 VLAN subinterfaces are configured as follows:


interface bundle-ether instance.subinterface, encapsulation dot1q xxxxx 

Note

The difference between the Layer 2 and Layer 3 interfaces is the l2transport keyword. Both types of interfaces use dot1q encapsulation .


Configuring VLAN over Bundles

This section describes how to configure a VLAN bundle. The creation of a VLAN bundle involves three main tasks:

SUMMARY STEPS

  1. Create an Ethernet bundle.
  2. Create VLAN subinterfaces and assign them to the Ethernet bundle.
  3. Assign Ethernet links to the Ethernet bundle.

DETAILED STEPS


Step 1

Create an Ethernet bundle.

Step 2

Create VLAN subinterfaces and assign them to the Ethernet bundle.

Step 3

Assign Ethernet links to the Ethernet bundle.


These tasks are describe in detail in the procedure that follows.


Note

In order for a VLAN bundle to be active, you must perform the same configuration on both ends of the bundle connection.


SUMMARY STEPS

  1. configure
  2. interface Bundle-Ether bundle-id
  3. ipv4 address ipv4-address mask
  4. bundle minimum-active bandwidth kbps
  5. bundle minimum-active links links
  6. bundle maximum-active links links [hot-standby]
  7. exit
  8. interface Bundle-Ether bundle-id.vlan-id
  9. encapsulation dot1qvlan-id
  10. ipv4 address ipv4-address mask
  11. no shutdown
  12. exit
  13. Repeat Step 9 through Step 12 to add more VLANS to the bundle you created in Step 2.
  14. end or commit
  15. exit
  16. exit
  17. configure
  18. interface {TenGigE | FortyGigE | HundredGigE}interface-path-id

DETAILED STEPS


Step 1

configure

Example:


RP/0/RP0/CPU0:router# configure

Enters global configuration mode.

Step 2

interface Bundle-Ether bundle-id

Example:


RP/0/RP0/CPU0:router#(config)# interface Bundle-Ether 3

Creates and names a new Ethernet link bundle.

This interface Bundle-Ether command enters you into the interface configuration submode, where you can enter interface-specific configuration commands. Use the exit command to exit from the interface configuration submode back to the normal global configuration mode.

Step 3

ipv4 address ipv4-address mask

Example:


RP/0/RP0/CPU0:router(config-if)# ipv4 address 10.1.2.3 255.0.0.0

Assigns an IP address and subnet mask to the virtual interface using the ipv4 address configuration subcommand.

Step 4

bundle minimum-active bandwidth kbps

Example:


RP/0/RP0/CPU0:router(config-if)# bundle minimum-active bandwidth 580000

(Optional) Sets the minimum amount of bandwidth required before a user can bring up a bundle.

Step 5

bundle minimum-active links links

Example:


RP/0/RP0/CPU0:router(config-if)# bundle minimum-active links 2

(Optional) Sets the number of active links required before you can bring up a specific bundle.

Step 6

bundle maximum-active links links [hot-standby]

Example:


RP/0/RP0/CPU0:router(config-if)# bundle maximum-active links 1 hot-standby

(Optional) Implements 1:1 link protection for the bundle, which causes the highest-priority link in the bundle to become active and the second-highest-priority link to become the standby. Also, specifies that a switchover between active and standby LACP-enabled links is implemented per a proprietary optimization.

Note 

The priority of the active and standby links is based on the value of the bundle port-priority command.

Step 7

exit

Example:


RP/0/RP0/CPU0:router(config-if)# exit

Exits the interface configuration submode.

Step 8

interface Bundle-Ether bundle-id.vlan-id

Example:


RP/0/RP0/CPU0:router#(config)# interface Bundle-Ether 3.1

Creates a new VLAN, and assigns the VLAN to the Ethernet bundle you created in Step 2.

Replace the bundle-id argument with the bundle-id you created in Step 2.

Replace the vlan-id with a subinterface identifier.

Range is from 1 to 4094 inclusive (0 and 4095 are reserved).

Note 

When you include the .vlan-id argument with the interface Bundle-Ether bundle-id command, you enter subinterface configuration mode.

Step 9

encapsulation dot1qvlan-id

Example:


RP/0/RP0/CPU0:router(config-subif)# encapsulation dot1q 100

Sets the Layer 2 encapsulation of an interface.

Step 10

ipv4 address ipv4-address mask

Example:


RP/0/RP0/CPU0:router#(config-subif)# ipv4 address 10.1.2.3/24

Assigns an IP address and subnet mask to the subinterface.

Step 11

no shutdown

Example:


RP/0/RP0/CPU0:router#(config-subif)# no shutdown

(Optional) If a link is in the down state, bring it up. The no shutdown command returns the link to an up or down state depending on the configuration and state of the link.

Step 12

exit

Example:


RP/0/RP0/CPU0:router(config-subif)# exit

Exits subinterface configuration mode for the VLAN subinterface.

Step 13

Repeat Step 9 through Step 12 to add more VLANS to the bundle you created in Step 2.

(Optional) Adds more subinterfaces to the bundle.

Step 14

end or commit

Example:


RP/0/RP0/CPU0:router(config-subif)# end

or


RP/0/RP0/CPU0:router(config-subif)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes:

    
    Uncommitted changes found, commit them before
    exiting(yes/no/cancel)?
    [cancel]:
    

    - Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

    - Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

    - Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.

Step 15

exit

Example:


RP/0/RP0/CPU0:router(config-subif)# end

Exits interface configuration mode.

Step 16

exit

Example:


RP/0/RP0/CPU0:router(config)# exit

Exits global configuration mode.

Step 17

configure

Example:


RP/0/RP0/CPU0:router # configure

Enters global configuration mode.

Step 18

interface {TenGigE | FortyGigE | HundredGigE}interface-path-id

Example:


RP/0/RP0/CPU0:router(config)# interface TenGigE 1/0/0/0

Enters interface configuration mode for the Ethernet interface you want to add to the Bundle.

Enter the GigabitEthernet or TenGigE keyword to specify the interface type. Replace the interface-path-id argument with the node-id in the rack/slot/module format.

Note 

A VLAN bundle is not active until you add an Ethernet interface on both ends of the link bundle.


LACP Short Period Time Intervals

As packets are exchanged across member links of a bundled interface, some member links may slow down or time-out and fail. LACP packets are exchanged periodically across these links to verify the stability and reliability of the links over which they pass. The configuration of short period time intervals, in which LACP packets are sent, enables faster detection and recovery from link failures.

Short period time intervals are configured as follows:

  • In milliseconds

  • In increments of 100 milliseconds

  • In the range 100 to 1000 milliseconds

  • The default is 1000 milliseconds (1 second)

  • Up to 64 member links

  • Up to 1280 packets per second (pps)

After 6 missed packets, the link is detached from the bundle.

When the short period time interval is not configured, LACP packets are transmitted over a member link every 30 seconds by default.

When the short period time interval is configured, LACP packets are transmitted over a member link once every 1000 milliseconds (1 second) by default. Optionally, both the transmit and receive intervals can be configured to less than 1000 milliseconds, independently or together, in increments of 100 milliseconds (100, 200, 300, and so on).

When you configure a custom LACP short period transmit interval at one end of a link, you must configure the same time period for the receive interval at the other end of the link.


Note

You must always configure the transmit interval at both ends of the connection before you configure the receive interval at either end of the connection. Failure to configure the transmit interval at both ends first results in route flapping (a route going up and down continuously). When you remove a custom LACP short period, you must do it in reverse order. You must remove the receive intervals first and then the transmit intervals.


Configuring the Default LACP Short Period Time Interval

This section describes how to configure the default short period time interval for sending and receiving LACP packets on a Gigabit Ethernet interface. This procedure also enables the LACP short period.

SUMMARY STEPS

  1. configure
  2. interface HundredGigEinterface-path
  3. bundle id number mode active
  4. lacp period short
  5. end or commit

DETAILED STEPS


Step 1

configure

Example:


RP/0/RP0/CPU0:router# configure

Enters global configuration mode.

Step 2

interface HundredGigEinterface-path

Example:


RP/0/RP0/CPU0:router(config)# interface HundredGigE 0/1/0/1

Creates a Gigabit Ethernet interface and enters interface configuration mode.

Step 3

bundle id number mode active

Example:


RP/0/RP0/CPU0:router(config-if)# bundle id 1 mode active

Specifies the bundle interface and puts the member interface in active mode.

Step 4

lacp period short

Example:


RP/0/RP0/CPU0:router(config-if)# lacp period short

Configures a short period time interval for the sending and receiving of LACP packets, using the default time period of 1000 milliseconds or 1 second.

Step 5

end or commit

Example:


RP/0/RP0/CPU0:router(config-if)# end

or


RP/0/RP0/CPU0:router(config-if)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes:

    
    Uncommitted changes found, commit them before
    exiting(yes/no/cancel)?
    [cancel]:
    

    - Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

    - Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

    - Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.


Example

This example shows how to configure the LACP short period time interval to the default time of 1000 milliseconds (1 second):


config
interface HundredGigE 0/1/0/1
   bundle id 1 mode active
   lacp period short 
   commit

The following example shows how to configure custom LACP short period transmit and receive intervals to less than the default of 1000 milliseconds (1 second):


config
interface HundredGigE 0/1/0/1
   bundle id 1 mode active
   lacp period short 
   commit

config
interface HundredGigE 0/1/0/1
    lacp period short transmit 100
   commit

config
interface HundredGigE 0/1/0/1
   lacp period short receive 100
   commit

Configuring Custom LACP Short Period Time Intervals

This section describes how to configure custom short period time intervals (less than 1000 milliseconds) for sending and receiving LACP packets on a Gigabit Ethernet interface.


Note

You must always configure the transmit interval at both ends of the connection before you configure the receive interval at either end of the connection. Failure to configure the transmit interval at both ends first results in route flapping (a route going up and down continuously). When you remove a custom LACP short period, you must do it in reverse order. You must remove the receive intervals first and then the transmit intervals.


SUMMARY STEPS

  1. configure
  2. interface Bundle-Ether bundle-id
  3. ipv4 address ipv4-address mask
  4. bundle minimum-active bandwidth kbps
  5. bundle minimum-active links links
  6. bundle maximum-active links links
  7. exit
  8. interface Bundle-Ether bundle-id.vlan-id
  9. dot1q vlan vlan-id
  10. ipv4 address ipv4-address mask
  11. no shutdown
  12. exit
  13. Repeat Step 7 through Step 12 to add more VLANs to the bundle you created in Step 2.
  14. end or commit
  15. exit
  16. exit
  17. show ethernet trunk bundle-ether instance
  18. configure
  19. interface {HundredGigE } interface-path-id
  20. bundle id bundle-id [mode {active | on | passive}]
  21. no shutdown
  22. Repeat Step 19 through Step 21 to add more Ethernet interfaces to the VLAN bundle.
  23. end or commit
  24. Perform Step 1 through Step 23 on the remote end of the VLAN bundle connection.
  25. show bundle Bundle-Ether bundle-id [reasons]
  26. show ethernet trunk bundle-ether instance

DETAILED STEPS


Step 1

configure

Example:


RP/0/RP0/CPU0:router# configure

Enters global configuration mode.

Step 2

interface Bundle-Ether bundle-id

Example:


RP/0/RP0/CPU0:router(config)# interface Bundle-Ether 3

Creates and names a new Ethernet link bundle.

This interface Bundle-Ether command enters you into the interface configuration submode, where you can enter interface-specific configuration commands. Use the exit command to exit from the interface configuration submode back to the normal global configuration mode.

Step 3

ipv4 address ipv4-address mask

Example:


RP/0/RP0/CPU0:router(config-if)# ipv4 address 10.1.2.3 255.0.0.0

Assigns an IP address and subnet mask to the virtual interface using the ipv4 address configuration subcommand.

Step 4

bundle minimum-active bandwidth kbps

Example:


RP/0/RP0/CPU0:router(config-if)# bundle minimum-active bandwidth 580000

(Optional) Sets the minimum amount of bandwidth required before a user can bring up a bundle.

Step 5

bundle minimum-active links links

Example:


RP/0/RP0/CPU0:router(config-if)# bundle minimum-active links 2

(Optional) Sets the number of active links required before you can bring up a specific bundle.

Step 6

bundle maximum-active links links

Example:


RP/0/RP0/CPU0:router(config-if)# bundle maximum-active links 1

(Optional) Designates one active link and one link in standby mode that can take over immediately for a bundle if the active link fails (1:1 protection).

Note 
  • The default number of active links allowed in a single bundle is 8.

  • If the bundle maximum-active command is issued, then only the highest-priority link within the bundle is active. The priority is based on the value from the bundle port-priority command, where a lower value is a higher priority. Therefore, we recommend that you configure a higher priority on the link that you want to be the active link.

Step 7

exit

Example:


RP/0/RP0/CPU0:router(config-if)# exit

Exits the interface configuration submode.

Step 8

interface Bundle-Ether bundle-id.vlan-id

Example:


RP/0/RP0/CPU0:router#(config)# interface Bundle-Ether 3.1

Creates a new VLAN, and assigns the VLAN to the Ethernet bundle you created in Step 2.

Replace the bundle-id argument with the bundle-id you created in Step 2.

Replace the vlan-id with a subinterface identifier. Range is from 1 to 4093 inclusive (0, 4094, and 4095 are reserved).

Note 
  • When you include the vlan-id argument with the interface Bundle-Ether bundle-id command, you enter subinterface configuration mode.

Step 9

dot1q vlan vlan-id

Example:


RP/0/RP0/CPU0:router(config-subif)# dot1q vlan 10

Assigns a VLAN to the subinterface.

Replace the vlan-id argument with a subinterface identifier. Range is from 1 to 4093 inclusive (0, 4094, and 4095 are reserved).

Step 10

ipv4 address ipv4-address mask

Example:


RP/0/RP0/CPU0:router(config-subif)# ipv4 address 10.1.2.3/24

Assigns an IP address and subnet mask to the subinterface.

Step 11

no shutdown

Example:


RP/0/RP0/CPU0:router(config-subif)# no shutdown

(Optional) If a link is in the down state, bring it up. The no shutdown command returns the link to an up or down state depending on the configuration and state of the link.

Step 12

exit

Example:


RP/0/RP0/CPU0:router(config-subif)# exit

Exits subinterface configuration mode for the VLAN subinterface.

Step 13

Repeat Step 7 through Step 12 to add more VLANs to the bundle you created in Step 2.

(Optional) Adds more subinterfaces to the bundle.

Step 14

end or commit

Example:


RP/0/RP0/CPU0:router(config-subif)# end

or


RP/0/RP0/CPU0:router(config-subif)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes: 
Uncommitted changes found, commit them before exiting (yes/no/cancel)?

  • Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

  • Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

  • Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.

Step 15

exit

Example:


RP/0/RP0/CPU0:router(config-subif)# exit

Exits interface configuration mode.

Step 16

exit

Example:


RP/0/RP0/CPU0:router(config)# exit

Exits global configuration mode.

Step 17

show ethernet trunk bundle-ether instance

Example:


RP/0/RP0/CPU0:router# show ethernet trunk bundle-ether 5

(Optional) Displays the interface configuration.

The Ethernet bundle instance range is from 1 through 65535.

Step 18

configure

Example:


RP/0/RP0/CPU0:router # configure

Enters global configuration mode.

Step 19

interface {HundredGigE } interface-path-id

Example:


RP/0/RP0/CPU0:router(config)# interface HundredGigE 0/1/0/1

Enters the interface configuration mode for the Ethernet interface you want to add to the Bundle.

Enter the HundredGigE keyword to specify the interface type. Replace the interface-path-id argument with the node-id in the rack/slot/module format.

Note 
  • A VLAN bundle is not active until you add an Ethernet interface on both ends of the link bundle.

Step 20

bundle id bundle-id [mode {active | on | passive}]

Example:


RP/0/RP0/CPU0:router(config-if)# bundle-id 3

Adds an Ethernet interface to the bundle you configured in Step 2 through Step 13.

To enable active or passive LACP on the bundle, include the optional mode active or mode passive keywords in the command string.

To add the interface to the bundle without LACP support, include the optional mode on keywords with the command string.

Note 
  • If you do not specify the mode keyword, the default mode is on (LACP is not run over the port).

Step 21

no shutdown

Example:


RP/0/RP0/CPU0:router(config-if)# no shutdown

(Optional) If a link is in the down state, bring it up. The no shutdown command returns the link to an up or down state depending on the configuration and state of the link.

Step 22

Repeat Step 19 through Step 21 to add more Ethernet interfaces to the VLAN bundle.

Step 23

end or commit

Example:


RP/0/RP0/CPU0:router(config-subif)# end

or


RP/0/RP0/CPU0:router(config-subif)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes: 
Uncommitted changes found, commit them before exiting (yes/no/cancel)?

  • Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

  • Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

  • Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.

Step 24

Perform Step 1 through Step 23 on the remote end of the VLAN bundle connection.

Brings up the other end of the link bundle.

Step 25

show bundle Bundle-Ether bundle-id [reasons]

Example:

RP/0/RP0/CPU0:router# show bundle Bundle-Ether 3 reasons

(Optional) Shows information about the specified Ethernet link bundle.

The show bundle Bundle-Ether command displays information about the specified bundle. If your bundle has been configured properly and is carrying traffic, the State field in the show bundle Bundle-Ether command output will show the number “4,” which means the specified VLAN bundle port is “distributing.”

Step 26

show ethernet trunk bundle-ether instance

Example:


RP/0/RP0/CPU0:router# show ethernet trunk bundle-ether 5

(Optional) Displays the interface configuration.

The Ethernet bundle instance range is from 1 through 65535.


Configuring VPWS Cross-Connects in MC-LAG

Perform this task to configure VPWS cross-connects in MC-LAG.

SUMMARY STEPS

  1. configure
  2. l2vpn
  3. pw-status
  4. xconnect group group-name
  5. p2p xconnect-name
  6. interface type interface-path-id
  7. neighbor A.B.C.D pw-id pseudowire-id
  8. pw-class {class-name}
  9. backup neighbor A.B.C.D pw-id pseudowire-id
  10. pw-class {class-name}
  11. end or commit

DETAILED STEPS


Step 1

configure

Example:


RP/0/RSP0/CPU0:router# configure

Enters global configuration mode.

Step 2

l2vpn

Example:


RP/0/RSP0/CPU0:router(config)# l2vpn

Enters L2VPN configuration mode.

Step 3

pw-status

Example:


RP/0/RSP0/CPU0:router(config-l2vpn)# pw-status

Enables pseudowire status.

Note 
  • When the attachment circuit changes redundancy state to Active, Active pw-status is sent over the primary and backup pseudowires.

    When the attachment circuit changes redundancy state to Standby, Standby pw-status is sent over the primary and backup pseudowires.

Step 4

xconnect group group-name

Example:


RP/0/RSP0/CPU0:router(config-l2vpn)# xconnect group grp_1

Enters the name of the cross-connect group.

Step 5

p2p xconnect-name

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-xc)# p2p p1

Enters a name for the point-to-point cross-connect.

Step 6

interface type interface-path-id

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-xc-p2p)# interface Bundle-Ether 1.1

Specifies the interface type ID.

Step 7

neighbor A.B.C.D pw-id pseudowire-id

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-xc-p2p)# neighbor 10.2.2.2 pw-id 2000

Configures the pseudowire segment for the cross-connect.

Optionally, you can disable the control word or set the transport-type to Ethernet or VLAN.

Step 8

pw-class {class-name}

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-xc-p2p-pw)# pw-class c1

Configures the pseudowire class template name to use for the pseudowire.

Step 9

backup neighbor A.B.C.D pw-id pseudowire-id

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-xc-p2p-pw)# backup neighbor 10.2.2.2 pw-id 2000

Adds a backup pseudowire.

Step 10

pw-class {class-name}

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-xc-p2p-pw-backup)# pw-class c2

Configures the pseudowire class template name to use for the backup pseudowire.

Step 11

end or commit

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-xc-p2p-pw-backup)# end

or


RP/0/RSP0/CPU0:router(config-l2vpn-xc-p2p-pw-backup)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes:

    
    Uncommitted changes found, commit them before
    exiting(yes/no/cancel)?
    [cancel]:
    

    - Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

    - Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

    - Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.


Configuring VPLS in MC-LAG

Perform this task to configure VPLS in MC-LAG.

SUMMARY STEPS

  1. configure
  2. l2vpn
  3. pw-status
  4. bridge group bridge-group-name
  5. bridge-domain bridge-domain-name
  6. interface type interface-path-id
  7. vfi {vfi-name}
  8. neighbor A.B.C.D pw-id pseudowire-id
  9. pw-class {class-name}
  10. end or commit

DETAILED STEPS


Step 1

configure

Example:


RP/0/RSP0/CPU0:router# configure

Enters global configuration mode.

Step 2

l2vpn

Example:


RP/0/RSP0/CPU0:router(config)# l2vpn

Enters L2VPN configuration mode.

Step 3

pw-status

Example:


RP/0/RSP0/CPU0:router(config-l2vpn)# pw-status

(Optional) Enables pseudowire status.

All the pseudowires in the VFI are always active, independent of the attachment circuit redundancy state.

Step 4

bridge group bridge-group-name

Example:


RP/0/RSP0/CPU0:router(config-l2vpn)# bridge group csco
RP/0/RSP0/CPU0:router(config-l2vpn-bg)#

Creates a bridge group so that it can contain bridge domains and then assigns network interfaces to the bridge domain.

Step 5

bridge-domain bridge-domain-name

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-bg)# bridge-domain abc
RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)#

Establishes a bridge domain and enters L2VPN bridge group bridge domain configuration mode.

Step 6

interface type interface-path-id

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd)# interface Bundle-Ether 1.1

Specifies the interface type ID.

Step 7

vfi {vfi-name}

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd-ac)# vfi vfi-east

Enters virtual forwarding instance (VFI) configuration mode.

Step 8

neighbor A.B.C.D pw-id pseudowire-id

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd-vfi)# neighbor 10.2.2.2 pw-id 2000

Configures the pseudowire segment for the cross-connect.

Optionally, you can disable the control word or set the transport-type to Ethernet or VLAN.

Step 9

pw-class {class-name}

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd-vfi-pw)# pw-class canada

Configures the pseudowire class template name to use for the pseudowire.

Step 10

end or commit

Example:


RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd-vfi-pw)# end

or


RP/0/RSP0/CPU0:router(config-l2vpn-bg-bd-vfi-pw)# commit

Saves configuration changes.

  • When you issue the end command, the system prompts you to commit changes:

    
    Uncommitted changes found, commit them before
    exiting(yes/no/cancel)?
    [cancel]:
    

    - Entering yes saves configuration changes to the running configuration file, exits the configuration session, and returns the router to EXEC mode.

    - Entering no exits the configuration session and returns the router to EXEC mode without committing the configuration changes.

    - Entering cancel leaves the router in the current configuration session without exiting or committing the configuration changes.

  • Use the commit command to save the configuration changes to the running configuration file and remain within the configuration session.


Information About Configuring Link Bundling

To configure link bundling, you must understand the following concepts:

IEEE 802.3ad Standard

The IEEE 802.3ad standard typically defines a method of forming Ethernet link bundles.

For each link configured as bundle member, the following information is exchanged between the systems that host each end of the link bundle:

  • A globally unique local system identifier

  • An identifier (operational key) for the bundle of which the link is a member

  • An identifier (port ID) for the link

  • The current aggregation status of the link

This information is used to form the link aggregation group identifier (LAG ID). Links that share a common LAG ID can be aggregated. Individual links have unique LAG IDs.

The system identifier distinguishes one router from another, and its uniqueness is guaranteed through the use of a MAC address from the system. The bundle and link identifiers have significance only to the router assigning them, which must guarantee that no two links have the same identifier, and that no two bundles have the same identifier.

The information from the peer system is combined with the information from the local system to determine the compatibility of the links configured to be members of a bundle.

The MAC address of the first link attached to a bundle becomes the MAC address of the bundle itself. The bundle uses this MAC address until that link (the first link attached to the bundle) is detached from the bundle, or until the user configures a different MAC address. The bundle MAC address is used by all member links when passing bundle traffic. Any unicast or multicast addresses set on the bundle are also set on all the member links.


Note

We recommend that you avoid modifying the MAC address, because changes in the MAC address can affect packet forwarding.


Link Bundle Configuration Overview

The following steps provide a general overview of the link bundle configuration. Keep in mind that a link must be cleared of all previous network layer configuration before it can be added to a bundle:

  1. In global configuration mode, create a link bundle. To create an Ethernet link bundle, enter the interface Bundle-Ether command.

  2. Assign an IP address and subnet mask to the virtual interface using the ipv4 address command.

  3. Add interfaces to the bundle you created in Step 1 with the bundle id command in the interface configuration submode.

    You can add up to 32 links to a single bundle.

  4. You can optionally implement 1:1 link protection for the bundle by setting the bundle maximum-active links command to 1. Performing this configuration causes the highest-priority link in the bundle to become active and the second-highest-priority link to become the standby. (The link priority is based on the value of the bundle port-priority command.) If the active link fails, the standby link immediately becomes the active link.


Note

A link is configured as a member of a bundle from the interface configuration submode for that link.


Link Switchover

By default, a maximum of 64 links in a bundle can actively carry traffic. If one member link in a bundle fails, traffic is redirected to the remaining operational member links.

You can optionally implement 1:1 link protection for a bundle by setting the bundle maximum-active links command to 1. By doing so, you designate one active link and one or more dedicated standby links. If the active link fails, a switchover occurs and a standby link immediately becomes active, thereby ensuring uninterrupted traffic.

If the active and standby links are running LACP, you can choose between an IEEE standard-based switchover (the default) or a faster proprietary optimized switchover. If the active and standby links are not running LACP, the proprietary optimized switchover option is used.

Regardless of the type of switchover you are using, you can disable the wait-while timer, which expedites the state negotiations of the standby link and causes a faster switchover from a failed active link to the standby link.

To do so, you can use the lacp fast-switchover command.

Failure Cases

MC-LAG provides redundancy, switching traffic to the unaffected POA while presenting an unchanged bundle interface to the DHD, for these failure events:

  • Link failure: A port or link between the DHD and one of the POAs fails.

  • Device failure: Meltdown or reload of one of the POAs, with total loss of connectivity (to the DHD, the core and the other POA).

  • Core isolation: A POA loses its connectivity to the core network, and therefore is of no value, being unable to forward traffic to or from the DHD.

A loss of connectivity between the POAs leads both devices to assume that the other has experienced device failure, causing them to attempt to take on the Active role. This is known as a split brain scenario and can happen in either of the following cases:

  • All other connectivity remains; only the link between POAs is lost.

  • One POA is isolated from the core network (i.e. a core isolation scenario where the connection between the two POAs was over the core network).

MC-LAG by itself does not provide a means to avoid this situation; resiliency in the connection between the POAs is a requirement. The DHD is given the responsibility of mitigating the problem by setting a limit on the number of links, within the bundle, that can be active. As such only the links connected to one of the POAs can be active at any one point of time.