W dzisiejszym artykule opiszę funkcjonalność Device Profile na przełącznikach Aruby.
- 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ą.