10 sposobów na łatwiejszą pracę z cli cisco ios

Praca z CLI daje ogromne możliwości konfiguracyjne, jednak mnogość opcji może przytłaczać. Poznaj 10 sprawdzonych sposób jak pracować lepiej z CLI Cisco IOS.
10 tricków na lepszą pracę z CLI

W dzisiejszych czasach większość opcji konfiguracyjnych dostępnych jest z poziomu GUI. Z tego powodu sposób naszej interakcji ze sprzętem oraz systemami cały czas ewoluuje w stronę coraz większego poziomu abstrakcji. Odchodzimy od modelu, w którym administrator definiował jak coś ma działać, do modelu co i z czym ma działać. Jest to oczywiście świetnie skalujące się rozwiązanie, które zmniejsza potrzebne nakłady pracy, niejednokrotnie skracając czas dostarczenia usługi z dni do kilku chwil. Jednak za cenę naszej wygody tracimy w pewnym stopniu wiedze co tak naprawdę dzieje się pod maską. Zawierzamy oprogramowaniu, że robi to co chcemy. Dopóki wszystko działa jak powinno GUI jest ok. Kiedy jednak przychodzi czas na troubleshooting, cóż pora zakasać rękawy i powitać czarne okno terminala jak starego przyjaciela.

Poniżej poznasz moje 10 sposób na szybszą i efektywniejszą pracę z CLI dla systemu Cisco IOS.

Terminal lenght 0

Z pewnością nie raz spotkałeś się z sytuacją gdy wyświetlana konfiguracja nie mieści się na ekranie. Chcąc czy nie chcąc, zmuszony jesteś do miarowego wciskania spacji, do momentu, aż znajdziesz interesujące Cię informacje. Dzieje się tak, ponieważ standardowo urządzenia pracujące pod kontrolą systemu Cisco IOS -nie mylić z Apple iOS- wyświetla tylko 24 linijki. Na szczęście wartość ta może być dowolnie modyfikowana. Stosując więc polecenie terminal lenght 0 całkowicie wyłączamy limitowanie ilości linii tekstu, które mogą pojawić się na ekranie. 

Używaj tcl

Używanie skryptów jest super, każdy o tym wie. Pozwalają na automatyzacje zadań oraz uniknięcie pomyłek. Cisco na większości platform pozwala na korzystanie z powłoki tcl, do której stworzyła własne polecenia. Poniżej prosty skrypt:

foreach address {
1.1.1.1
2.2.2.2
3.3.3.3} { ping $address}

 

W tcl mamy również możliwość przygotowania pliku z alternatywną konfiguracją, którą możemy podmienić w dowolnym momencie

puts [open "flash:nowy_konfig.txt" w+] {
Twoj konfig tutaj
 }

Używaj tabulatora

Wiem, za ten punkt powinienem dostać nagrodę „captain obvious”, ale nadal spotykam osoby, które wpisują całe komendy w wierszu poleceń. Interpreter poleceń IOS po naciśnięcie tabulatora automatycznie dopełnia aktualnie wpisywane polecenie. Warunkiem jest, że istnieje tylko jedna możliwa wersja polecenia do uzyskania z ciągu znaków, które wprowadziliśmy do tej pory.

Używaj skrótów

Switch#sh ip int br
Interface          IP-Address   OK? Method Status    Protocol
GigabitEthernet0/0 192.168.10.1 YES unset  up        up 
GigabitEthernet0/1 192.168.20.1 YES unset  up        up 
GigabitEthernet0/2 192.168.30.1 YES unset  up        up

Kolejny punkt, który dla osób mających już jakieś doświadczenie z pracą z terminalem wydaje się oczywisty. Podobnie jak w przypadku pracy z tabulatorem interpreter poleceń potrafi wykonać każde polecenie, o ile, wprowadzone przez nas skróty wskazują wyłącznie na jedno polecenie.  Użyty w przykładzie skrót sh (-ow) ip int(erfaces) br(ief) wykona się poprawnie. Jednak jeśli „int” skrócimy do „i” to polecenie nie zostanie wykonane, ponieważ skrót in może oznaczać  więcej opcji niż tylko interfaces. 

Używaj znaku „?”

Switch#show ip i? 
igmp interface irdp

Znak zapytania jest swoistym wołaniem o pomoc. Kiedy z niego korzystasz, CLI podpowie Ci wszystkie możliwe do wykorzystania opcje. Jeśli chcesz coś skonfigurować, a nie pamiętasz dokładnej składni polecenia, nic nie stoi na przeszkodzie, aby z użyciem znaku zapytania sprawdzać każdą możliwą opcję po kolei. Zaoszczędzi Ci to mnóstwo czasu, nie musisz już wkuwać na pamięć wszystkich kombinacji poleceń, ani marnować czasu w google na szukaniu odpowiedniej składni.

Używaj „do”

R4(config)#sh ip int br
           ^
% Invalid input detected at '^' marker.
R4(config)#do sh ip int br
Interface                  IP-Address   OK? Method Status             Protocol
GigabitEthernet0/0         10.3.4.4     YES NVRAM  up                    up     
GigabitEthernet0/1         10.1.4.4     YES NVRAM  up                    up     
GigabitEthernet0/2         148.4.8.4    YES NVRAM  up                    up     
Loopback0                  4.4.4.4      YES NVRAM  up                    up 
R4(config)#

Ogromnym minusem Cisco IOS w porównaniu do konkurencyjnych systemów jest brak możliwości wykonania poleceń typu „show” w trybie konfiguracyjnym. Nie jednokrotnie chcemy natychmiast sprawdzić, czy wprowadzone w konfiguracji zmiany przyniosły oczekiwany skutek. Polecenie „do” pozwala na wykonanie polecenia z trybu użytkownika bezpośrednio w trybie konfiguracyjnym.

Używaj „end”

R4(config)#interface gigabitEthernet 0/0
R4(config-if)#end
R4#

Polecenie „end” nie jest może najważniejszą komendą dostępną w systemie IOS, ale potrafi zaoszczędzić sporo czasu, jeśli musimy często z niej korzystać. Co więc robi end? Otóż to polecenie przenosi nas z trybu konfiguracyjnego natychmiast do trybu enable.

Filtruj informacje

Jeśli korzystałeś wcześniej z terminalowego bash-a z pewnością ucieszy Cię możliwość stosowania pipe – pionowej kreski „|” do filtrowania wiadomości. Ta mała kreska sprawia, że wynik wydanego polecenia jest przekazywany do kolejnego, które wyświetli tylko żądanej przez informacje. 

R4#show version | include register
Configuration register is 0x2102

Opcja include, sprawia, że wyświetlą się, tylko te linie gdzie znajduje się szukany ciąg znaków. Jest to bardzo przydatna opcja gdy szukamy konkretnej informacji. W przykładzie interesuje nas, tylko jak jest skonfigurowany register. 

R4#show  ip int br | exclude unassigned   
Interface                  IP-Address   OK? Method Status               Protocol

GigabitEthernet0/0         10.3.4.4     YES NVRAM  up                    up      

GigabitEthernet0/1         10.1.4.4     YES NVRAM  up                    up      

GigabitEthernet0/2         148.4.8.4    YES NVRAM  up                    up      

Loopback0                  4.4.4.4      YES NVRAM  up                    up

Drugą opcją jest exclude, która jest przeciwieństwem include, czyli otrzymamy wszystkie linie poza tymi, które zawierają wykluczony ciąg znaków.

Stosuj wyrażenia regularne

Wyrażenia regularne to sposób na opisanie pewnego wzorca. Dzięki ich zastosowaniu jesteśmy  w jeszcze bardziej precyzyjny sposób określić jakich informacji szukamy. Stosując takie wyrażenia, możemy uzyskać za pomocą jednego polecenia informacje, które normalnie wymagałby kilku instrukcji.

SW2#show  interfaces status | in 0/[1-2]

Gi0/1                        connected    1            auto   auto unknown

Gi0/2                        connected    trunk        auto   auto unknown

Dzięki stosowaniu nawiasów kwadratowych możemy określić zakres liczb, który ma zostać dopasowany do wzorca.

SW2#show  interfaces status | in Gi./2
Gi0/1                        connected    1            auto   auto unknown
Gi0/2                        connected    trunk        auto   auto unknown

W tym przypadku otrzymamy status wszystkich portów kończących się liczbą 2. Znak _ oznacza spacje, tak więc do dopasowania pasuje tylko liczba 2, wykluczając uzyskanie danych z portów kończących się na liczbach z zakresu 20-29. Dodatkowo kropka przy Gi oznacza dopasowanie pojedynczego znaku.

SW2#show run | i ip route.* 192.168.10.1
ip route 192.168.1.0 255.255.255.0 192.168.10.1

W poprzednim przypadku kropka oznacza dopasowanie pojedynczego znaku. Jeśli do kropki dodamy gwiazdkę, uzyskamy dopasowanie dowolnego ciągu znaków. Dzięki tak skonstruowanemu poleceniu możemy wyszukać wszystkie statycznie skonfigurowane trasy.

SW2#show run | i ^(no_)*ip dhcp snooping
ip dhcp snooping vlan 1-10,12-299,301-398,400-434,436-603,607-679,683-4094
no ip dhcp snooping information option
no ip dhcp snooping verify mac-address
ip dhcp snooping

W tym przykładzie interesuje nam wyłącznie globalna konfiguracja dhcp snooping, bez konfiguracji interfejsów. Dlatego używamy ^ co oznacza, że linia musi się zaczynać od szukanego wzorca. W naszym przypadku stosujemy (no_) co oznacza, że linia może się zaczynać od negacji – słówko „no” razem ze spacją. * mówi nam, że poprzednio użyty fragment może wystąpić 0 lub więcej razy.
Poniżej lista dostępnych modyfikatorów:_ – spacja^ – początek$ – koniec. – pojedynczy znak* – 0 lub więcej znaków+ – Musi wystąpić pojedynczy znak lub wzorzec? – Może wystąpić 0 lub 1 znak lub wzorzec

Stosuj skróty klawiszowe

Skróty klawiszowe przydają się nie tylko w pracy z edytorami tekstu. Pomagają i znacznie ułatwiają pracę bez korzystania z myszki, dzięki czemu możemy pisać praktycznie bez odrywania rąk od klawiatury. Poniżej przykłady najpopularniejszych skrótów klawiszowych dla Cisco IOS.

  • Ctrl+T: Zamienia pozycjami dwa ostatnie znaki w linii.
  • Ctrl+K: Usuwa wszystko od kursora do końca linii
  • Ctrl+X: Usuwa wszystko od kursora do początku linii
  • Ctrl+C: Wychodzi z trybu konfiguracji
  • Ctrl+W: Usuwa dane słowo
  • Ctrl+U: Usuwa całą linijkę
  • Ctrl+Shift+6+X: Przerywa obecne zadanie

Podsumowanie

Właśnie poznałeś moje 10 sposób na szybszą i efektywniejszą pracę ze sprzętem Cisco. Z pewnością nie są to wszystkie tricki, możliwe do zastosowania.

Jestem ogromnie ciekawy, z jakich tricków Ty korzystasz? Zostaw swoje najlepsze sposoby na pracę z CLI w komentarzu.

19 aplikacji, które musi znać każdy sieciowiec

Blog wspiera partner diamentowy

Borg5 - Diamentowy partner bloga

Narzędziownik sieciowca

19 aplikacji newsletter

Grupa na Facebooku

Pierwsze kroki w sieciach

Najnowsze artykuły

Model referencyjny ISO/OSI

Model referencyjny ISO/OSI

Maszyny, podobnie jak ludzie, do skutecznej komunikacji potrzebują pewnych zasad. My przestrzegamy zasad gramatyki oraz używamy słownictwa zrozumiałego dla odbiorcy, urządzenia natomiast wykorzystują standardy i protokoły. Na tym nie kończą się podobieństwa. Zwróć...

Automatyzacja sieci z Netmiko

Automatyzacja sieci z Netmiko

Netmiko to biblioteka napisana w Pythonie przez Kirka Byersa. Jest jedną z najłatwiejszych opcji wejścia w świat automatyzacji sieci. Dlaczego? Ponieważ Netmiko wykorzystuje Pythonową bibliotekę Paramiko do łączenia się poprzez SSH do CLI. Wszystkie przekazywane przez...

13 sposobów na zabezpieczenie sieci

13 sposobów na zabezpieczenie sieci

Zabezpieczanie infrastruktury to niekończący się proces, który polega na ciągłym testowaniu i ulepszaniu. Warto podchodzić do tego skrupulatnie i metodycznie – idealnie sprawdzi się tutaj proponowana poniżej 13-punktowa checklista bezpieczeństwa dla sieciowca.1....

Protokoły FHRP – HSRP, VRRP i GLBP

Protokoły FHRP – HSRP, VRRP i GLBP

Jest takie angielskie powiedzenie "Two is one, one is none". Mówi ono o konieczności stosowania redundacji, czyli zapewnienia nadmiarowości. Kiedy mamy dwa urządzenia, awaria jednego zwykle nie jest problemem i daje nam czas na naprawę. Posiadanie w momencie awarii...

Hot Standby Router Protocol

Hot Standby Router Protocol

HSRP, czyli Hot Standby Router Protocol to protokół  z grupy FHRP (first-hop redundancy protocol) opatentowany przez Cisco w 1994r. Jego zadaniem jest zapewnienie redundancji bramy domyślnej w przypadku awarii, bez potrzeby zmiany w konfiguracji urządzeń końcowych. W...

Jesteśmy parterem miedialnym konferencji 

PLNOG

O autorze

Rafał Rudewicz

Specjalizuję się w rozwiązaniach Enterprise oraz Service Provider. Projektuję, wdrażam oraz naprawiam sieci dla największych firm na świecie.

Komentarze

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany.

Powiązane posty

Zapisz się na newsletter