Aruba Device Profile – Konfiguracja przełącznika

W dzisiejszym artykule opiszę funkcjonalność Device Profile na przełącznikach Aruby.

Schemat połączeniowy urządzeń (topologia w EVE-NG)
Schemat połączeniowy urządzeń (topologia w EVE-NG)
  • ArubaCX1 – przełącznik podstawowy (konfigurowany Device Profile)
  • ArubaCX2 – przełącznik imitujący podłączane urządzenie wykorzystując Device Profile, np. Access Point.

Czym jest i do czego można zastosować Device Profile?

Funkcjonalność Device Profile pozwala na zdefiniowanie pewnego rodzaju automatyzacji. Możemy zdefiniować regułę, która zostanie automatycznie zastosowana po podłączeniu urządzenia, które zostało wcześniej automatycznie przypisane do zdefiniowanej wcześniej grupy LLDP.

Konfiguracja Device Profile

Zacznijmy od podstawowej konfiguracji interfejsu. Aktywujemy interfejsy, które będziemy wykorzystywać przy połączeniu. W moim przypadku oba urządzenia są połączone interfejsem 1/1/1, dlatego poniższe polecenia wykonujemy na obu przełącznikach.

switch# configure terminal
switch(config)# interface 1/1/1
switch(config-if)# no routing
switch(config-if)# no shutdown
switch(config-if)# exit

Teraz będziemy konfigurować funkcjonalność Device Profile. Cała pozostała konfiguracja odbywać się będzie na przełączniku ArubaCX1.

Konfiguracja reguły

Najpierw zdefiniujemy regułę, która opisuje konfigurację jaka ma zostać zastosowana dla urządzeń, które zostaną do niej przypisane.

switch(config)# port-access role NAP-CX-role
switch(config-pa-role)# description Aruba CX
switch(config-pa-role)# poe-priority high
switch(config-pa-role)# trust-mode dscp
switch(config-pa-role)# vlan trunk native 11
switch(config-pa-role)# vlan trunk allowed 11-13
switch(config-pa-role)# exit

Powyższa reguła o nazwie NAP-CX-role definiuje następujące zasady:

  • poe-priority high – ustawienie wysokiego priorytetu zasilania urządzenia przez PoE
  • trust-mode dscp – ustawienie poziomu zaufania QoS
  • vlan trunk native 11 – przypisanie podłączonego urządzenia natywnie do VLANu 11
  • vlan trunk allowed 11-13 – zmiana trybu sieci na trunk i zezwolenie na ruch przez VLANy 11-13, czyli dla WLANów działających w sieciach VLAN 12-13.

Konfiguracja grupy LLDP

Przed skonfigurowaniem automatycznego przypisania podłączonego urządzenia do grupy sprawdzimy na podstawie jakich danych możemy odfiltrować nasze urządzenie. W celu wyświetlenia informacji, które mogą nam przekazać podłączone urządzenia korzystając z LLDP wykonajmy polecenie show lldp neighbor-info detail. Na poniższym przykładzie widać wynik tego polecenia.

switch(config)# show lldp neighbor-info detail

LLDP Neighbor Information
=========================

Total Neighbor Entries          : 1
Total Neighbor Entries Deleted  : 0
Total Neighbor Entries Dropped  : 0
Total Neighbor Entries Aged-Out : 0

--------------------------------------------------------------------------------

Port                           : 1/1/1
Neighbor Entries               : 1
Neighbor Entries Deleted       : 0
Neighbor Entries Dropped       : 0
Neighbor Entries Aged-Out      : 0
Neighbor Chassis-Name          : switch

Neighbor Chassis-Description   : Aruba ABC123  Virtual.10.06.0110
Neighbor Chassis-ID            : 08:00:09:df:70:25
Neighbor Management-Address    : 08:00:09:df:70:25
Chassis Capabilities Available : Bridge, Router
Chassis Capabilities Enabled   : Bridge, Router
Neighbor Port-ID               : 1/1/1

Pogrubioną czcionką zostały zaznaczone 3 elementy, po których można odfiltrować podłączone urządzenia. Poniżej są opisane 3 polecenia, które zadziałają w przedstawionym scenariuszu:

  • sysname – w tym przypadku do parametru sysname pasuje nazwa switch. Pełne polecenie dodawania grupy filtrującej urządzenia po nazwie systemu będzie miało postać:
switch(config)# port-access lldp-group NAP-CX-group
switch(config-lldp-group)# seq 10 match sysname switch
  • sys-desc – w tym przypadku do parametru sys-desc pasuje nazwa ABC123. Jest to model tego urządzenia. W prawdziwym scenariuszu Access Point zwracałby w opisie swój model, np. AP-203R. Co istotne można w tym miejscu podać fragment znajdujący się w opisie. Pełne polecenie dodawania grupy filtrującej urządzenia po opisie będzie miało postać:
switch(config)# port-access lldp-group NAP-CX-group
switch(config-lldp-group)# seq 10 match sys-desc ABC123
  • vendor-oui – w tym przypadku do parametru vendor-oui pasuje nazwa 080009. Jest to najczęściej wybierana metoda, gdyż jednoznacznie wskazuje producenta albo rodzinę urządzeń danego producenta. Pełne polecenie dodawania grupy filtrującej urządzenia po identyfikatorze producenta będzie miało postać:
switch(config)# port-access lldp-group NAP-CX-group
switch(config-lldp-group)# seq 10 match vendor-oui 080009

Poniższy przykład pokazuje przypisywanie do grupy LLDP na podstawie opisu urządzenia:

switch(config)# port-access lldp-group NAP-CX-group
switch(config-lldp-group)# seq 10 match sys-desc ABC123
switch(config-lldp-group)# exit

Łączenie reguły i grupy LLDP w profil urządzenia (Device Profile)

switch(config)# port-access device-profile NAP-CX-prof
switch(config-device-profile)# associate role NAP-CX-role
switch(config-device-profile)# associate lldp-group NAP-CX-group
switch(config-device-profile)# enable
switch(config-device-profile)# exit

Powyższe polecenia tworzą profil urządzenia, a następnie przypisują do niego utworzoną wcześniej regułę i grupę LLDP, dopiero na końcu pojawia się polecenie enable włączające utworzony profil. Kolejność wykonywanych poleceń ma znaczenie szczególnie wtedy, gdy wszystkie polecenia wykonujemy ręcznie i nie wykorzystujemy metody “Copiego-Pasty”. Jeśli najpierw zostanie wykonane polecenie enable i nie zdążymy szybko przypisać reguły i grupy LLDP może się okazać, że w pamięci będzie znajdował się pusty profil bez przypisanej reguły i grupy LLDP. Warto zwrócić uwagę na poniższy wynik polecenia show running-config, w części dotyczącej konfiguracji profilu i tak najpierw znajduje się polecenie enable. Czcionką pogrubioną została zaznaczona konfiguracja wprowadzona do tej pory.

switch(config)# show running-config
Current configuration:
!
!Version ArubaOS-CX Virtual.10.06.0110
!export-password: default
user admin group administrators password ciphertext AQBapQHq4LY0I9V0J+4hULTjY+EB9Q4o8Ex40P/ghADUHMvhYgAAAKuIYR9kmH6olyNdHaE8SmYhoOnVRy+tmhnW+ke9V/LuPUNJz8KO22draEtxixiYulcXx7nllC5rP9p1GlLeDJM/F/ZMWoaiW5fhcKX8BHUfxvWaPvZ8IdPqcDMQkucdzJLt
led locator on
ntp server pool.ntp.org minpoll 4 maxpoll 4 iburst
ntp enable
!
!
!
!
ssh server vrf mgmt
vlan 1
interface mgmt
    no shutdown
    ip dhcp
port-access lldp-group NAP-CX-group
     seq 10 match sys-desc ABC123
port-access role NAP-CX-role
    description Aruba CX
    poe-priority high
    trust-mode dscp
    vlan trunk native 11
    vlan trunk allowed 11-13
port-access device-profile NAP-CX-prof
    enable
    associate role NAP-CX-role
    associate lldp-group NAP-CX-group
interface 1/1/1
    no shutdown
    no routing
    vlan access 1
!
!
!
!
!
https-server vrf mgmt

Testy

Przypomnijmy założenia jakie mieliśmy do zrealizowania. Podłączony switch Aruba ABC123 miał otrzymać następującą konfigurację:

  • wysoki priorytet na zasilaniu przez PoE
  • tryb zaufania QoS
  • przypisany natywnie na trunku do VLANu 11
  • zezwalać na ruch dla VLANów 12-13

Najpierw sprawdzimy stan interfejsów poleceniem show interface brief

switch(config)# show interface brief
--------------------------------------------------------------------------------------------------------------
Port      Native  Mode   Type           Enabled Status  Reason                 Speed   Description
          VLAN                                                                 (Mb/s)
--------------------------------------------------------------------------------------------------------------
1/1/1     1       access --             yes     up                             1000    --
1/1/2     --      routed --             no      down    Administratively down  --      --
1/1/3     --      routed --             no      down    Administratively down  --      --
1/1/4     --      routed --             no      down    Administratively down  --      --
1/1/5     --      routed --             no      down    Administratively down  --      --
1/1/6     --      routed --             no      down    Administratively down  --      --
1/1/7     --      routed --             no      down    Administratively down  --      --
1/1/8     --      routed --             no      down    Administratively down  --      --
1/1/9     --      routed --             no      down    Administratively down  --      --

Jak widać nadal na interfejsie 1/1/1 mamy natywnie VLAN 1 i tryb access. Wygląda na to, że profil nie został zastosowany. Sprawdzimy teraz konfigurację Device Profile poleceniem show port-access device-profile

switch(config)# show port-access device-profile

    Profile Name            : NAP-CX-prof
    LLDP Groups             : NAP-CX-group
    CDP Groups              :
    MAC Groups              :
    Role                    : NAP-CX-role
    State                   : Enabled

Jak widać na powyższym listingu profil urządzenia jest włączony (pogrubiona część), więc nie tu tkwi problem. Sprawdzimy czy urządzenie nadal rozgłasza informacje po LLDP. Otrzymywane informacje możemy sprawdzić poleceniem show lldp neighbor-info

switch(config)# show lldp neighbor-info

LLDP Neighbor Information
=========================

Total Neighbor Entries          : 1
Total Neighbor Entries Deleted  : 0
Total Neighbor Entries Dropped  : 0
Total Neighbor Entries Aged-Out : 0

LOCAL-PORT  CHASSIS-ID         PORT-ID                      PORT-DESC                    TTL      SYS-NAME
-----------------------------------------------------------------------------------------------------------
1/1/1       08:00:09:df:70:25  1/1/1                        1/1/1                        120      switch

Skrócona forma tego polecenia pokazuje tylko podstawowe informacje o podłączonych urządzeniach, ale mimo to wiemy, że nasz switch jest widziany przez LLDP. Teraz sprawdzimy, czy urządzenie zostało przypisane do profilu i jeśli tak to na jakim interfejsie. Do tego celu wykorzystamy polecenie show port-access device-profile interface all

switch(config)# show port-access device-profile interface all
  Port 1/1/1, Neighbor-Mac  08:00:09:df:70:25
    Profile Name:           : NAP-CX-prof
    LLDP Group:             : NAP-CX-group
    CDP Group:              :
    MAC Group:              :
    Role:                   : NAP-CX-role
    State:                  : application-failed
    Failure Reason:         : Failed to assign VLAN

Jak widać na wyniku powyższego polecenia zostało rozpoznane urządzenie pasujące do profilu, ale konfiguracja nie mogła zostać zastosowana, bo nie zostały spełnione lokalne warunki do jej realizacji. Poniżej znajduje się rozwiązanie tego problemu:

switch(config)# vlan 11-13
switch(config-vlan-<11-13>)# exit

Po ponownym sprawdzeniu przypisania widać, że nie ma przeciwwskazań do zastosowania profilu urządzenia:

switch(config)# show port-access device-profile interface all
  Port 1/1/1, Neighbor-Mac  08:00:09:df:70:25
    Profile Name:           : NAP-CX-prof
    LLDP Group:             : NAP-CX-group
    CDP Group:              :
    MAC Group:              :
    Role:                   : NAP-CX-role
    State:                  : applied
    Failure Reason:         :

Teraz możemy ponownie sprawdzić konfigurację interfejsów poleceniem show interface brief

switch(config)# show interface brief
--------------------------------------------------------------------------------------------------------------
Port      Native  Mode   Type           Enabled Status  Reason                 Speed   Description
          VLAN                                                                 (Mb/s)
--------------------------------------------------------------------------------------------------------------
1/1/1     11      trunk  --             yes     up                             1000    --
1/1/2     --      routed --             no      down    Administratively down  --      --
1/1/3     --      routed --             no      down    Administratively down  --      --
1/1/4     --      routed --             no      down    Administratively down  --      --
1/1/5     --      routed --             no      down    Administratively down  --      --
1/1/6     --      routed --             no      down    Administratively down  --      --
1/1/7     --      routed --             no      down    Administratively down  --      --
1/1/8     --      routed --             no      down    Administratively down  --      --
1/1/9     --      routed --             no      down    Administratively down  --      --

Jak widać natywny VLAN został zmieniony na 11 a tryb sieci z access zmienił się na trunk. Teraz sprawdzimy, czy zostało zastosowane założenie związane z PoE poleceniem show power-over-ethernet brief

switch(config)# show power-over-ethernet brief

  Power Status
    Available: 0.00 W  Reserved: 0.00 W  Remaining: 0.00 W
    Always-on PoE Enabled:1/1
    Quick PoE Enabled:None

PoE      Pwr Power    Pre-std Alloc         PSE Pwr PD Pwr PoE Port     PD     Cls Type
Port     Ena Priority Detect  Act           Rsrvd   Draw   Status       Sign
-------- --- -------- ------- ------------- ------- ------ ------------ ------ --- ----
1/1/1    Yes high     Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/2    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/3    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/4    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/5    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/6    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/7    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/8    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A
1/1/9    Yes low      Off     usage         0.0 W   0.0 W  searching    N/A    N/A N/A

Zgodnie z założeniem priorytet zasilania przez PoE zmienił się na wysoki, ale w tym przypadku nie doszło do zasilenia urządzenia z tego względu, że jest to switch zwirtualizowany i nie potrzebuje on dodatkowego zasilania, mimo to priorytet na porcie posiada. Sprawdźmy jeszcze jak ma się sytuacja z QoS. To sprawdzamy bezpośrednio na interfejsie poleceniem show interface 1/1/1. Ta informacja została zaznaczona czcionką pogrubioną na poniższym listingu.

switch(config)# show interface 1/1/1

Interface 1/1/1 is up
 Admin state is up
 Link state: up
 Link transitions: 0
 Description:
 Hardware: Ethernet, MAC Address: 08:00:09:b2:b7:d9
 MTU 1500
 Type --
 Full-duplex
 qos trust dscp
 Speed 1000 Mb/s
 Auto-negotiation is off
 Flow-control: off
 Error-control: off
 MDI mode: none
 VLAN Mode: native-untagged
 Native VLAN: 11
 Allowed VLAN List: 11-13
 Rx
           21 total packets                 2856 total bytes
            0   unicast packets
            0   multicast packets
 -- MORE --, next page: Space, next line: Enter, quit: q

Podsumowanie

Wykorzystanie funkcjonalności Device Profile pozwala zautomatyzować proces konfiguracji przełącznika, ale należy upewnić się, że podstawowa konfiguracja samego przełącznika jest kompletna. Jak pokazałem na testach wystarczy nie zdefiniować VLANu/VLANów i cały profil urządzenia nie zostanie zastosowany. Bez świadomości tego problemu możemy długo dochodzić do powodu występowania jakiegoś problemu związanego z tą funkcjonalnością.