24T1 Komunikacja za pomocą wiersza poleceń w Router OS [Konfiguracja Mikrotik]

Więcej miejsc do posłuchania:

Spotify

0:00 Wprowadzenie

1:48 Terminal, rodzaje komend

5:18 Działanie komend

20:02 Podsumowanie

Transkrypcja

Cześć po tylu materiałach w których mieliśmy okazję przetestować różne konfiguracje. Nadeszła pora na chwilę przerwy. Dzisiaj zajmiemy się poruszaniem po routerOS za pomocą terminala. Temat szybki, łatwy i przyjemny ale czy rzeczywiście? Pamiętam jak zaczynałem przygodę w nowej pracy. Koledzy, którzy zjedli zęby na konfiguracji urządzeń w większości po konsoli mieli niezbyt pochlebne opinie o terminalu Mikrotika i na początku rzeczywiście nie wyglądało to na proste i w większości przypadków do konfiguracji używałem WinBoxa. Teraz patrząc przez pryzmat czasu nie podzielam tych opinii. W wielu przypadkach znajomość poleceń choćby pobieżna potrafiła być zbawienna.

Jeżeli spojrzycie sobie na eksport konfiguracji to czasem aż trudno uwierzyć, że to co staramy się wyklikać w GUI w kilka minut, w terminalu zajmuje tylko kilka linijek kodu. Natomiast prawdą jest to, że routerOS ma swój specyficzny interfejs wiersza poleceń i składni więc trzeba się do niego trochę przyzwyczaić. Manual do CLI nie jest za bardzo rozbudowany. Więc najlepiej usiąść do konsoli, konfigurować sobie ustawienia w GUI a następnie patrzeć co się zmieniło w exporcie. Jeżeli jednak trzeba będzie coś zmienić w samym terminalu nieraz natraficie na wielki znak zapytania w waszej głowie i aby to się nie stało właśnie po to jest ten materiał. Zaczynamy.

Przechodzimy sobie od razu do Winboxa i otwieramy nasz terminal. Widzimy tutaj na dole małą instrukcję jak poruszać się po drzewie ustawień, które mamy odwzorowane tutaj. Tylko w zasadzie najpierw powinniśmy wiedzieć jak to drzewo sobie wyświetlić. A robimy to poprzez naciśnięcie Taba. Frazy wyszczególnione kolorem zielonym to nasze katalogi w drzewie ustawień frazy wyszczególnione na czerwono to komendy polecenia. Jeżeli w tym momencie jesteśmy na samej górze drzewa widzimy komendy, których chyba próżno szukać dalej. Na pewno taką komendą będzie Export, ona chyba będzie można ją użyć na każdym etapie. Jednak w znakomitej większości głównymi komendami będą komendy wyświetlone poniżej. Na przykład weźmy sobie do interfejsu.

Jak widzicie nie wpisywałem całości frazy tylko wcisnąłem drugi raz Tab i fraza została uzupełniona automatycznie. Interfejs zostało dopełnione. Natomiast jeżeli będziemy mieli więcej rozpoczynających się tak samo fraz to przyciskiem Tab będziemy mogli się pomiędzy tymi frazami przełączyć. Wchodzę zatem w Interfejs i naciskając znowu Taba mamy takie w interfejsach mamy takie dalej ustawienia. Natomiast mamy komendy, które będą w większości ustawień używane. To znaczy Command, Edit, Export, Print, Set, Find, Enabled, Disabled Co tam jeszcze może być Reset, Unset add, remove, find. get, move to takie takie z podstawowych.

Przygotowując ten materiał starałem się go jakoś tak posegregować aby to było bardziej przystępne i wróćmy może do poruszania się po drzewku wciskając Taba możemy sobie wygenerować kolejne pozycje na drzewie. Powiedzmy, że chcemy wejść w Interfejs Bridge. Tak, tutaj mamy opcję Bridge czyli wchodzimy w interfejs Bridge. Ok, jesteśmy w interfejs Bridge. Natomiast chcemy wrócić poziom niżej czy też poziom wyżej, przepraszam. Zatem wciskamy sobie dwie kropki, jesteśmy znowu w interfejsie. Wracając do Bridge, wpisujemy Bridge. Jeżeli chcemy się cofnąć na sam początek, oczywiście dajemy ukośnik. Jesteśmy na drzewie na samej górze. Znowu będziemy mieli komendy Beep, Blink, Export, Import, password, ping, quit, redo i undo.

Teraz może sprawdzimy co robią poszczególne komendy a zaczniemy chyba od tych najważniejszych. Wejdźmy sobie zatem w interfejs Bridge i pierwszą komendą, która będzie to jest komenda Print, która pokazuje nam jakie są aktualne ustawienia danej opcji na liście ustawień. Tutaj może jest to mało czytelne. Natomiast jeżeli wejdziemy sobie w porty to już pewnie będzie bardziej czytelne. Print. Mamy tutaj dwa interfejsy do bridge dodane. Jeden jest pod ID 0 drugi pod ID 1, oba dodane są do bridge, jeden nazywa się ethernet
drugi nazywa się bonding, oba są dodane do bridge o nazwie Bridge. Jest na nich wsparcie sprzętowe. Jeden jest na pvid 9 i tak dalej i tak dalej. Tak, koszt ścieżki, więc polecenie print pokazuje nam właściwie wszystkie właściwości danego ustawienia natomiast komenda

Export pokazuje nam całą konfigurację w tym przypadku port na bridge bez dodatkowych ustawień. Print o tyle jest dobry ponieważ pokazuje nam to ID, które będzie nam przydatne w usuwaniu albo zmienianiu danego ustawienia jeżeli wywołamy eksport w bardzo zagnieżdżonym miejscu to oczywiście wyświetli się tylko to, co w tym miejscu się znajduje jeżeli chcemy wyświetlić eksport całej konfiguracji wracamy do początku. Wpisujemy Export i mamy całą konfigurację urządzenia, zaczyna się tutaj, kończy się tutaj tak to są wszystkie ustawienia jakie są na tym urządzeniu i teraz może przejdźmy, wróćmy do tego bridge, czy też do portów bridge czyli interface Bridge port i dodajmy sobie nowy port, tak. Czyli komenda add.

Jeżeli nie wiemy co dalej zrobić możemy nacisnąć Taba i on nam pokażę że żeby dodać interfejs do Bridge potrzebujemy po pierwsze wprowadzić dwa pola jednym polem będzie bridge gdzie wskazujemy do którego bridge podłączyć i pole interface czyli musimy wpisać który interfejs chcemy do tego bridge dodać. Zatem wprowadzamy bridge o nazwie Bridge i interfejs powiedzmy ether 5 bo tego chyba do bridge nie mamy dodanego. Więc klikamy sobie i teraz sprawdzamy czy do bridge dodał się port piąty i jak widzimy port piąty jest nie połączony z niczym ale możemy go w każdej chwili dodać.

No to skoro dodaliśmy sobie nowy port to teraz spróbujemy go usunąć komendą remove więc tak samo wprowadzamy komendę remove i on nam mówi że musimy mu wprowadzić coś co się nazywa numbers pole numbers bierzemy z printa czyli jeżeli jesteśmy w portach używamy sobie komendy print i widzimy, że ether 5 jeżeli chcemy eter 5 zlikwidować zarejestrował się pod numerkiem 2 pod ID 2 tak czyli jeżeli mówimy remove coś z tych portów to ona pyta, który numerek i my wskazujemy sobie dwójkę bo to odnosi się do Ethernetu 5, wciskamy enter i już w bridge nie ma ethernetu 5. Następną komendą, którą możemy sprawdzić jest komenda set.

Czyli możemy powiedzieć, że wracając do interfejsów, może wróćmy sobie do interfejsów, komendą set zmieniamy jakąś właściwość ustawienia czyli powiedzmy wyświetlmy sobie printem co mamy w interfejsach i mamy na przykład tutaj pole name, tak każdy interfejs ma pole name. Czyli jeżeli wpiszemy set i teraz co musimy podać – musimy podać znowu numbers czyli który ID w przedziale tych wszystkich interfejsów chcemy zmienić. Czyli my naciskamy, że chcemy zmienić na przykład ethernet set ethernet 5 czyli 4 i na przykład zmieńmy jego nazwę. Name=eth5, nie ether 5 tylko eth5. Ciach i patrzymy w interfejsy, na listę interfejsów i z ether 5 zrobiło się eth5.

Jakie tutaj mamy jeszcze możliwości, co możemy edytować. Możemy set, reset, counters czyli na przykład możemy… akurat nie ma tutaj reset więc wrócimy… więc może reset pokażemy na switchu. Przechodzimy zatem do Bridge, dodajemy sobie interfejs 20. Interfejs 20 z VLANem też 20. Apply, ok. Przechodzimy na interfejsy. Ok. Do bridge i do portów. Robimy komendę, czy wpisujemy komendę print. Widzimy że nasz ethernet 20 wskoczył pod numerkiem 6 więc mówimy reset. Patrzymy jakie mam opcje, tak i możemy
wcisnąć reset. I tak jak mówiłem wyskakują dwie opcje remove, reset. Bierzemy reset i który numerek? 6. I co się stało w tym momencie? To ta szóstka się zresetowała do ustawień początkowych więc możemy sobie to wyrzucić stąd.

Kolejnymi dwiema komendami jest komenda edit i comment. Komendą Edit
możemy wyedytować nazwę. Wracamy sobie w takim razie trochę wyżej. Jesteśmy na liście interfejsów, robimy sobie printa szukamy naszego ethernetu 20. Patrzymy jakie mamy dostępne polecenia i mamy dostępne polecenie edit czyli robimy edit. Chcemy wyedytować ethernet 20 więc wprowadzamy cyferkę 19, którą on nas pyta, którą wartość chcemy wyedytować. No więc bierzemy sobie wartość name. On nas wprowadza do trybu edycji. Zmieniamy sobie nazwę na eth20 i Save i wychodzimy czyli control o w tym momencie na liście interfejsów nie mam Ethernet 20 tylko eth2. Ok, druga opcja to jest comment czyli możemy dodać komentarz do danego ustawienia.

Czyli jak jesteśmy na liście interfejsów znowu możemy zrobić comment. On nas pyta która cyferka czy też które ID chcemy zmienić ponieważ nastąpiły zmiany to może przerwiemy. Sprawdzimy jeszcze raz, eth20 gdzie się… eth20 wskoczyło nam na 0 czyli może przywróćmy je we właściwe miejsce czyli zróbmy edit 0. value-name: name I wpiszmy ether20. control C, print jeszcze raz. Coś nam się nie zmieniło to zmieńmy sobie z… ether20, ok. Jeszcze raz dajmy sobie printa i znowu mamy pod 19. Jeżeli weźmiemy sobie comment on nam pyta, który numerek. Numerek 19 i jaki komentarz chcemy wprowadzić? Na przykład wprowadzam sobie komentarz test.

Przechodzimy do interfejsów i mamy komentarz test dodany do ether20. Następne dwie komendy to komendy taki trochę pomocnicze. To znaczy find jedna komenda druga move i jeżeli nie znamy tego numerka lub wiemy jak się nazywa dana właściwość to możemy zastosować… nie wpisywać numerka tylko zastosować coś takiego co się nazywa find. Komenda wygląda następująco: czyli na przykład chcemy zmienić nazwę ethernetu 20, tak ale nie wiemy, który jest to numerek więc wpisujemy set [find name=ether20] czyli wyszukaj nam nazwy gdzie nazwą jest Ethernet 20 czy tam wśród nazw Ethernet 20 i set name=eth20 i on zrobił dokładnie to samo co byśmy napisali set 19, name eth20. Przechodzimy na interfejsy no i mamy znowu to samo tak. Czyli eth20 zamiast ethernet czy też ether20.

Następną komendę czyli move będę mógł wam pokazać na Firewallu. Ponieważ ona nie wszędzie wszędzie działa. Przechodzimy zatem na Firewall i widzimy, że mamy tutaj jakąś regułę, która nic nie wnosi do tematu więc możemy ją teraz… Powinniśmy de facto usunąć ale może nią pobawmy i wykorzystajmy polecenie move i teraz przechodzimy do terminala. Przechodzimy do Firewalla. ip firewall filter. Jesteśmy w środku. Printa możemy sobie printa zrobić żeby wyświetlić wszystkie te reguły.

Wyczyśćmy sobie terminal i teraz zastosujemy sobie komendę move, polecenie move przybiera dwa argumenty. Jest to pole Numbers, które jest wymagane i pole Destination, które jest opcjonalne. Numbers oczywiście mówi nam na którym numerku chcemy operować natomiast Destination mówi nam w które miejsce mamy przenieść dane ustawienie. Jeżeli nie damy sobiem Destination to ta reguła spadnie na sam dół. Więc jeżeli wciskamy sobie polecenie move, on nas pyta, który numerek mówimy, że szósty. To on teraz przerzuci tą szóstkę na samo dno, na sam koniec bo nie podaliśmy mu Destination.

Natomiast wróćmy tutaj z powrotem teraz powiedzmy mu move numbers:6 Destination powiedzmy 1 czyli wpadnij pod 1 i rzeczywiście nasza reguła zmieniła miejsce w szeregu i jest teraz pod 1 i teraz chyba najłatwiejsza para komend. To znaczy enable disable. Ona w paru miejscach działa troszeczkę inaczej bo trzeba wprowadzić enable=yes ale mniej więcej zasada jest taka sama. Wróćmy sobie zatem do naszego switcha. Wyświetmyl sobie interfejsy wszystkie i wyłączmy sobie po prostu Ethernet 21, tak. Czyli robimy disable Numbers i wyłączmy sobie, który mówiłem czyli 20 tak i w tym momencie interfejs 21 jest wyłączony i analogicznie enable i to samo. Numbers… Enable numbers, też 20 i interfejs jest z powrotem włączony i takie właśnie są podstawowe działania w terminalu.

Jak więc widzicie każde CLI ma swoje własne podejście co nie oznacza że gorsze lub lepsze. W przypadku Mikrotika myślę, że tajemnica tkwi w ogarnięciu drzewka ustawień i co w którym miejscu się konfiguruje. Z taką wiedzą o wiele łatwiej poruszać się po terminalu Mikrotika, jak również domyślić mniej więcej jakie ustawienia konfiguruje się w określonych sekcjach nie będę was namawiał do tego aby poruszać się samej konsoli bo nie to było moją intencją. Sam pewnie w większości przypadków pozostanę przy GUI ponieważ jestem wzrokowcem i tak łatwiej mi zapamiętać niektóre rzeczy. Warto natomiast znać wiersz poleceń i typ składni aby poradzić sobie w przypadkach gdy pozostanie nam jedynie konsola. A wy dajcie w komentarzach znać co częściej wybieracie. Do zobaczenia.