A portchannel is a technique used in computer networking to combine multiple physical network links into a single logical link. It is also known as a Link Aggregation Group (LAG), EtherChannel, or NIC Teaming.

Portchannels are commonly used to increase a network connection’s bandwidth, redundancy, and reliability. Port channels increase bandwidth and allow for faster data transfer between network devices by combining multiple physical links into a single logical link. Port channels can also provide redundancy by automatically redirecting traffic to the remaining links if one or more link fails. This helps to ensure that network traffic continues to flow even if there is a hardware failure or other issue.

portchannel

Port channels are used for a variety of purposes, including:

  • Increased Bandwidth: Portchannels increase bandwidth by combining multiple physical links into a single logical link. This allows for faster data transfer and improves network performance, especially in high-demand applications or environments with high traffic.
  • Load Balancing: Portchannels distribute network traffic across the bundled links, distributing the load evenly. This prevents congestion on any single link and optimises network utilisation. Load balancing ensures that no single link is overloaded while others are underutilized.
  • Redundancy and High Availability: Portchannels provide redundancy by allowing multiple links to act as backups for each other. If one link fails or has problems, traffic is automatically redirected to the remaining links, ensuring continuous network connectivity. This redundancy improves network availability and mitigates the impact of link failures.
  • Fault Tolerance: By aggregating multiple links, port channels provide fault tolerance. If a link within the portchannel fails, the network continues using the remaining links. This improves network reliability and reduces the impact of individual link failures on overall network performance.
  • Simplified Network Management: Managing multiple individual links can be complicated and time-consuming. Portchannels simplify network management by treating bundled links as a single logic. Because the port channel is managed as a unified entity, it is easier to configure, monitor, and troubleshoot.
  • Flexibility and scalability: Portchannels enable network administrators to add or remove individual links from the bundle without disrupting overall network connectivity. This adaptability makes it easier to scale the network as it needs change without requiring extensive reconfiguration or downtime.

Bundling – Behind the scenes

Portchannels manage the bundling and operation of physical links behind the scenes using a hashing algorithm and a control protocol (such as LACP or PAgP). Here’s a rundown of how port channels operate in the background:

  • Physical Link Bundling: When configuring a portchannel, you choose which physical interfaces to bundle together. These interfaces are usually linked between two switches but can also be linked to a server or another network device. Bundled links are also known as member links or bundled links.
  • Logical Interface Creation: A logical interface represents the portchannel after selecting the physical interfaces. All member links share a single IP address and MAC address assigned to the logical interface. From the perspective of other network devices, the port channel appears to be a single high-speed link.
  • LACP/PAgP Control Protocol Negotiation: If you use a control protocol like LACP or PAgP, the portchannel is established through switch negotiation. LACP uses LACPDU (LACP Data Unit) messages, whereas PAgP uses PAgP messages. During negotiation, the switches exchange portchannel information such as mode of operation (active or passive) and configuration parameters.
  • Load Balancing: After establishing the portchannel, traffic is distributed across the member links using a load balancing algorithm. The load balancing algorithm employs a hash function that considers variables such as source/destination IP addresses, source/destination MAC addresses, and TCP/UDP port numbers. This ensures that traffic is distributed evenly across the member links, maximising bandwidth utilisation.
  • Redundancy and Failover: Redundancy is provided by port channels, which allow traffic to continue flowing even if one or more member links fail. If a member link fails, traffic is rerouted automatically via the remaining active links. In the event of a link failure, this failover mechanism ensures high availability while minimising disruption.
  • Considerations for the Spanning Tree Protocol (STP):
    When using portchannels, it is critical to configure the Spanning Tree Protocol (STP) correctly. STP prevents network loops by closing redundant paths. STP treats the logical interface with portchannels as a single entity, simultaneously allowing all member links to be active and forward traffic. This eliminates the need for STP to block any member links, maximising available bandwidth.

Port-Channel Control Protocols

There are three available protocols while configuring the Port-Channels:

  • Static PortChannel
  • Link Aggregation Control Protocol (LACP)
  • Port Aggregation Protocol (PAgP)

image 3 - Cyberhaiku

Let’s look at each type and see how to configure it.

PortChannel: Static

Let’s delve into the specific advantages of static PortChannels:

Simplicity: Static PortChannels are straightforward to configure and maintain. They do not require negotiation or control protocols, making the setup process less complex. Since negotiation is unnecessary, the configuration remains static and doesn’t rely on dynamic protocols or additional overhead.

Predictability: Static PortChannels offer predictable behaviour because the link aggregation configuration remains constant. With static configuration, you can control which physical links are bundled in the PortChannel. This predictability can be beneficial in environments where consistent network behaviour is preferred or required.

Compatibility: Static PortChannels are compatible with many network devices and operating systems. They do not rely on specific protocols or software features, making them more universally applicable. This compatibility allows for easier integration and interoperability within heterogeneous network environments.

Resource Efficiency: Static PortChannels do not consume additional network resources for negotiation or control protocols. The absence of dynamic protocols, such as LACP, reduces the overhead on network devices, freeing up system resources for other tasks. This efficiency can be particularly advantageous in scenarios where resource utilization is a critical factor.

Network Stability: Static PortChannels provide stability in network connectivity. Since the configuration remains static, there is no risk of dynamic changes in link aggregation, which could potentially cause disruptions or interruptions. This stability is beneficial in environments where consistent network connections are crucial, such as in real-time applications or environments with strict service level agreements (SLAs).

Security Considerations: Static PortChannels can be advantageous from a security perspective. With static configuration, it becomes harder for an unauthorized device to join an EtherChannel. The static nature of the configuration allows for more controlled access, reducing the risk of unauthorized link aggregation.

It’s important to note that while static PortChannels offer simplicity and predictability, they lack the dynamic adaptability and fault tolerance provided by protocols like LACP. The choice between static and dynamic EtherChannels should be based on your network environment’s specific requirements, goals, and constraints.

image 4 - Cyberhaiku

Configuration

!--- SW-01 ---
interface range Ethernet0/0-1
 channel-group 5 mode on
!
interface Port-channel5
 switchport trunk encapsulation dot1q
 switchport mode trunk
!--- SW-02 ---
interface range Ethernet0/2-3
 channel-group 15 mode on
!
interface Port-channel15
 switchport trunk encapsulation dot1q
 switchport mode trunk

Verification

SW2(config-if)#do show etherc summ
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      N - not in use, no aggregation
        f - failed to allocate aggregator

        M - not in use, minimum links not met
        m - not in use, port not aggregated due to minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port

        A - formed by Auto LAG


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
15     Po15(SU)         -        Et0/2(P)    Et0/3(P)
SW2#show etherchannel 15 detail
Group state = L2
Ports: 2   Maxports = 4
Port-channels: 1 Max Port-channels = 1
Protocol:    -
Minimum Links: 0


                Ports in the group:
                -------------------
Port: Et0/2
------------

Port state    = Up Mstr In-Bndl
Channel group = 15          Mode = On              Gcchange = -
Port-channel  = Po15        GC   =   -             Pseudo port-channel = Po15
Port index    = 0           Load = 0x00            Protocol =    -

Age of the port in the current state: 0d:00h:01m:01s

Port: Et0/3
------------

Port state    = Up Mstr In-Bndl
Channel group = 15          Mode = On              Gcchange = -
Port-channel  = Po15        GC   =   -             Pseudo port-channel = Po15
Port index    = 0           Load = 0x00            Protocol =    -

Age of the port in the current state: 0d:00h:01m:01s

                Port-channels in the group:
                ---------------------------

Port-channel: Po15
------------

Age of the Port-channel   = 0d:00h:01m:01s
Logical slot/port   = 16/0          Number of ports = 2
GC                  = 0x00000000      HotStandBy port = null
Port state          = Port-channel Ag-Inuse
Protocol            =    -
Port security       = Disabled
Load share deferral = Disabled

Ports in the Port-channel:

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Et0/2    On                 0
  0     00     Et0/3    On                 0

Time since last port bundled:    0d:00h:01m:01s    Et0/3

Port-Channel: PAgP

image 6 - Cyberhaiku
image 5 - Cyberhaiku

Configuration

!--- SW-01 ---
interface range Ethernet0/0-1
 channel-group 5 mode desirable
!
interface Port-channel5
 switchport trunk encapsulation dot1q
 switchport mode trunk
!--- SW-02 ---
interface range Ethernet0/2-3
 channel-group 15 mode auto
!
interface Port-channel15
 switchport trunk encapsulation dot1q
 switchport mode trunk

Verification

SW2#show etherchannel 15 PRotocol
Protocol:  PAgP
SW2#show etherchannel 15 detail
Group state = L2
Ports: 2   Maxports = 4
Port-channels: 1 Max Port-channels = 1
Protocol:   PAgP
Minimum Links: 0


                Ports in the group:
                -------------------
Port: Et0/2
------------

Port state    = Up Mstr In-Bndl
Channel group = 15          Mode = Automatic-Sl    Gcchange = 0
Port-channel  = Po15        GC   = 0x000F0001      Pseudo port-channel = Po15
Port index    = 0           Load = 0x00            Protocol =   PAgP

Flags:  S - Device is sending Slow hello.  C - Device is in Consistent state.
        A - Device is in Auto mode.        P - Device learns on physical port.
        d - PAgP is down.
Timers: H - Hello timer is running.        Q - Quit timer is running.
        S - Switching timer is running.    I - Interface timer is running.

Local information:
                                Hello    Partner  PAgP     Learning  Group
Port      Flags State   Timers  Interval Count   Priority   Method  Ifindex
Et0/2     SAC   U6/S7   HQ      30s      1        128        Any      6

Partner's information:

          Partner              Partner          Partner         Partner Group
Port      Name                 Device ID        Port       Age  Flags   Cap.
Et0/2     SW1                  aabb.cc80.1000   Et0/1       20s SC      50001

Age of the port in the current state: 0d:00h:01m:18s

Port: Et0/3
------------

Port state    = Up Mstr In-Bndl
Channel group = 15          Mode = Automatic-Sl    Gcchange = 0
Port-channel  = Po15        GC   = 0x000F0001      Pseudo port-channel = Po15
Port index    = 0           Load = 0x00            Protocol =   PAgP

Flags:  S - Device is sending Slow hello.  C - Device is in Consistent state.
        A - Device is in Auto mode.        P - Device learns on physical port.
        d - PAgP is down.
Timers: H - Hello timer is running.        Q - Quit timer is running.
        S - Switching timer is running.    I - Interface timer is running.

Local information:
                                Hello    Partner  PAgP     Learning  Group
Port      Flags State   Timers  Interval Count   Priority   Method  Ifindex
Et0/3     SAC   U6/S7   HQ      30s      1        128        Any      6

Partner's information:

          Partner              Partner          Partner         Partner Group
Port      Name                 Device ID        Port       Age  Flags   Cap.
Et0/3     SW1                  aabb.cc80.1000   Et0/0       23s SC      50001

Age of the port in the current state: 0d:00h:01m:18s

                Port-channels in the group:
                ---------------------------

Port-channel: Po15
------------

Age of the Port-channel   = 0d:00h:01m:21s
Logical slot/port   = 16/0          Number of ports = 2
GC                  = 0x000F0001      HotStandBy port = null
Port state          = Port-channel Ag-Inuse
Protocol            =   PAgP
Port security       = Disabled
Load share deferral = Disabled

Ports in the Port-channel:

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Et0/2    Automatic-Sl       0
  0     00     Et0/3    Automatic-Sl       0

Time since last port bundled:    0d:00h:01m:18s    Et0/3

Port-Channel: LACP

image 8 - Cyberhaiku
image 7 - Cyberhaiku

Configuration

!--- SW-01 ---
interface range Ethernet0/0-1
 channel-group 5 mode active
!
interface Port-channel5
 switchport trunk encapsulation dot1q
 switchport mode trunk
!--- SW-02 ---
interface range Ethernet0/2-3
 channel-group 15 mode passive
!
interface Port-channel15
 switchport trunk encapsulation dot1q
 switchport mode trunk

Verification

SW2#show etherc 15 protocol
Protocol:  LACP
SW2#show etherc 15 detail
Group state = L2
Ports: 2   Maxports = 4
Port-channels: 1 Max Port-channels = 4
Protocol:   LACP
Minimum Links: 0

                Ports in the group:
                -------------------
Port: Et0/2
------------

Port state    = Up Mstr Assoc In-Bndl
Channel group = 15          Mode = Passive         Gcchange = -
Port-channel  = Po15        GC   =   -             Pseudo port-channel = Po15
Port index    = 0           Load = 0x00            Protocol =   LACP

Flags:  S - Device is sending Slow LACPDUs   F - Device is sending fast LACPDUs.
        A - Device is in active mode.        P - Device is in passive mode.

Local information:
                            LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Et0/2     SP      bndl      32768         0xF       0xF     0x3         0x3C

Partner's information:
                  LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
Et0/2     SA      32768     aabb.cc80.1000  12s    0x0    0x5    0x2     0x3D

Age of the port in the current state: 0d:00h:00m:55s
Port: Et0/3
------------
Port state    = Up Mstr Assoc In-Bndl
Channel group = 15          Mode = Passive         Gcchange = -
Port-channel  = Po15        GC   =   -             Pseudo port-channel = Po15
Port index    = 0           Load = 0x00            Protocol =   LACP

Flags:  S - Device is sending Slow LACPDUs   F - Device is sending fast LACPDUs.
        A - Device is in active mode.        P - Device is in passive mode.

Local information:
                            LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Et0/3     SP      bndl      32768         0xF       0xF     0x4         0x3C

Partner's information:
                  LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
Et0/3     SA      32768     aabb.cc80.1000  13s    0x0    0x5    0x1     0x3D

Age of the port in the current state: 0d:00h:00m:56s

                Port-channels in the group:
                ---------------------------
Port-channel: Po15    (Primary Aggregator)
------------
Age of the Port-channel   = 0d:00h:00m:58s
Logical slot/port   = 16/0          Number of ports = 2
HotStandBy port = null
Port state          = Port-channel Ag-Inuse
Protocol            =   LACP
Port security       = Disabled
Load share deferral = Disabled
Ports in the Port-channel:

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Et0/2    Passive            0
  0     00     Et0/3    Passive            0

Time since last port bundled:    0d:00h:00m:55s    Et0/2

L3 Port-channels

STP treats a layer 2 EtherChannel as a single link, enabling the use of all member links for improved performance. A layer 2 EtherChannel is typically configured as a trunk and can carry multiple VLANs or broadcast domains (802.1Q is more frequently used).

Layer 2 EtherChannels are ideal for connecting L2 LAN switches because they simultaneously offer better performance and link fault tolerance.

There is no concept of VLANs in a Layer 3 EtherChannel, similar to a single port configured in a routed mode without a switchport. An IP address is assigned to the port-channel logical interface, but no IP addresses are configured under member interfaces. To increase performance and link fault tolerance, Layer 3 port channels are used to connect routers to other routers or routers to multilayer switches. On Layer 3 port channels, no L2 signalling protocol, including STP, is involved.

The Layer 3 SVI (Switch Virtual Interface) is created for a Layer 3 EtherChannel before the physical ports are added to an EtherChannel group connected to the Layer 3 SVI.

interface range Ethernet0/2-3
 channel-group 15 mode passive
!
interface Port-channel15
 no switchport
 ip address 192.168.12.2 255.255.255.0

SW2#ping 192.168.12.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/7 ms
SW2#show etherchannel 15 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      N - not in use, no aggregation
        f - failed to allocate aggregator

        M - not in use, minimum links not met
        m - not in use, port not aggregated due to minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port

        A - formed by Auto LAG


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
15     Po15(RU)        LACP      Et0/2(P)    Et0/3(P)

To read more about port channels in Cisco