ios-xe port channels & switchports

Am avut prin August un mic proiect sa bag niste Layer 2 peste balta la un client. In general, daca nu am constrangeri, folosesc Juniper pe switch-uri managed L2/L3 din motive de obisnuinta, familiaritate etc.

Anul asta, din cauza de pandemie si timpi de livrare mari, peste 4 luni in medie, am pus niste Cisco Catalyst cu IOS-XE.

Mno, pentru redundanta & stuff, sunt mare fan bundle-uri de X x 1GE sau X x 10GE (in functie de nevoi & stuff).

Pe Juniper, la modul cel mai simplu, un port channel se cheama o interfata ae (aggregated ethernet) si se configureaza in doi pasi.

Prima oara ii zici la interfata fizica din ce port-channel face parte:

ge-0/0/0 {
    description "to xyz vmnic0";
    ether-options {
        802.3ad ae1;
    }
}

ge-1/0/0 {
    description "to xyz vmnic1";
    ether-options {
        802.3ad ae1;
    }
}

Si dupa configurezi si interfata de port channel:

description "to xyz";
mtu 9216;
unit 0 {
    family ethernet-switching {
        interface-mode trunk;
        vlan {
            members [ v101, v121 ];
        }
    }
}

Easy peasy lemon squeezy.

Cu Cisco nu prea am avut treaba in ultimii ani, si am zis ca hei, trebuie sa fie la fel din ce mai tineam eu minte de and era la moda sa fac PAgP pe IOS clasic.

E, e cam la fel si pe IOS-XE. La nivel de interfata ii zici:

interface TenGigabitEthernet1/1/3
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!
interface TenGigabitEthernet1/1/4
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!

Si dupa configurezi interfata PortChannel1

interface Port-channel1
 switchport trunk allowed vlan 101-121
 switchport mode trunk
!

E, si te astepti ca la un “sh ru” sa vezi prin configuratie fix acelasi lucru.

Dar nu, IOS-XE e cu “surprise motherfucker”, si zice asa:

interface Port-channel1
 switchport trunk allowed vlan 101-121
 switchport mode trunk
!
interface TenGigabitEthernet1/1/3
 switchport trunk allowed vlan 101-121
 switchport mode trunk
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!
interface TenGigabitEthernet1/1/4
 switchport trunk allowed vlan 101-121
 switchport mode trunk
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!

Cand am vazut asta, zic ma oi fi fost io obosit si am scris gresit, si am bagat configuratia si la interfata si la port channel. Si m-am mancat in cur sa “repar” de la distanta treaba asta. Si am sters configuratie de switchport si trunk de pe te/1/1/3. N-a fost chiar cea mai buna idee a mea.

Dupa ce am reparat printr-o sesiune de TeamViewer problema, in sensul ca am facut de la zero toata configuratie de port channel, m-am dus sa ma culc ca se facuse tarziu la mine.

Fast forward vreo 2-3 saptamani, iar a trebuit sa umblu un pic la switch-uri sa mai adaug ceva VLAN-uri, si bam, iar configuratie de switchport pe interfetele din port chanel. Si eram, ba da am sters si-am pus la loc. Ce mortii ma-sii se intampla. Si atunci mi s-a aprins un pic beculetu, si zic ia sa vad daca adaug un VLAN pe interfata de port channel, se pune si in configuratie la interfetele care formeaza port channel-ul?

Raspunsul e da. Si uite asa am invatat eu ca IOS-XE mirroreaza configuratia de pe PortChanel pe interfetele prinse in port chanel.

Nu e mare inginerie treaba asta cu un port channel intre 2 switch-uri, dar lucrurile par complicate cand nu prea ai parte de experienta pe niste echipamente si lucrezi cu ele doar din joi in pasti. Exista si un termen sa zicem stiintific pentru asta: skill fade. Si problema e ca ti se pare ca stii, da de fapt nu prea :(

2 thoughts on “ios-xe port channels & switchports

  1. E istorică treaba asta la Cisco, în sensul că și IOS-ul chior face așa. N-am avut pe mână CatOS, dar ceva-mi spune că de acolo au copiat-o inițial :D

    Dacă e să o luăm academic, nici la Juniper nu e 100% corect pentru că în momentul când te apuci și faci un 802.3ad, interfețele din agregare nu mai au identitate proprie (standardul pune niște condiții despre cum se pot comporta și cum nu pot diferi una de alta), așa că 100% corect ar fi în momentul în care zici ceva gen:
    interface agregare1 {
    porturi {
    ether2;
    ether3;
    }
    }
    să dispară ether2/3 din config sau să te înjure CLI-ul dacă încerci să discuți direct cu ele — cu unica excepție a ceva de genul shut/no shut.

    1. Posibil, dar nici cu IOS normal nu m-am mai dat de cand eram mic :) Mai mult m-a enervat lipsa mea de practica…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.