===== Sieci bezprzewodowe na urządzeniach Mikrotik ===== Mikrotik to łotewska firm produkująca routery, przełączniki, punkty dostępowe i inny sprzęt sieciowy działający pod kontrolą własnościowego oprogramowania (RouterOS/SwOS) [[https://en.wikipedia.org/wiki/MikroTik|wikipedia]], [[https://mikrotik.com/|strona domowa]], [[https://help.mikrotik.com/docs/display/ROS/RouterOS|dokumentacja RouterOS]]. Sprzęt oparty o RouterOS można konfigurować między innymi z [[https://help.mikrotik.com/docs/display/ROS/Management+tools|[1]]]: * z linii poleceń – przez SSH, telnet, konsolę, * przez wbudowaną aplikację webową (WebFig), * aplikację okienkową dla systemu Windows (Winbox). W domyślnej konfiguracji część sprzętu firmy Mikrotik ma ustawiony adres IP [[http://192.168.88.1|192.168.88.1/24]] na interfejsie ''ether1'' oraz aktywne wszystkie narzędzia konfiguracyjne((Informacje o domyślnych ustawieniach w zależności od modelu: https://help.mikrotik.com/docs/display/ROS/Default+configurations)). **W materiałach podane są komendy do CLI i zrzuty ekranu z WebFig; można je stosować wymiennie.** Zrzuty ekranu z WebFig zostały "odchudzone" przez wycięcie w edytorze graficznym opcji z domyślnymi wartościami. RouterOS ma dwie implementacje sieci bezprzewodowych: ''wireless'' i ''wifi'' (wcześniej nazywane ''wifiwave2''). \\ Materiały są przygotowane dla nowszej – ''wifi''. \\ Na razie jednak urządzenia z laboratorium mają wersję oprogramowania używającą wcześniejszej nazwy ''wifiwave2''. **Każda zmiana w konfiguracji jest natychmiast wykonywana i zapisywana na trwałe. \\ Jeśli zmieniając konfigurację odbierzesz sobie dostęp, sprzęt ponowne uruchomiony nie straci błędnych ustawień!** __Po skończonych zajęciach zresetuj konfigurację urządzenia na którym pracowałeś do domyślnej!__\\ Możesz to zrobić komendą ''/system/reset-configuration'' lub analogicznym przyciskiem w GUI. ==== Poruszanie się w CLI ==== ''Tab'' podpowiada i autouzupełnia. Konfiguracja jest zorganizowana hierarchicznie. Np. będąc na poziomie ''/'' można wpisać ''ip'' lub ''/ip'' żeby dostać się do ustawień IP, bądź ''ip/address'' lub ''/ip/address'' żeby dostać się do ustawień adresów IP. Będąc na poziomie ''/ip/address'' można wpisać np. ''/'' lub ''../..'' żeby wrócić do najwyższego poziomu, bądź ''../route'' lub ''/ip/route'' żeby dostać się do tablic tras, bądź ''/interface/wifiwave2/'' żeby dostać się do konfiguracji sieci bezprzewodowych. \\ Zwykle na poziomach na których wykonuje się konfigurację dostępne są m. inn. komendy ''print'' (wyświetla stan), ''add'' / ''remove'' (dodaje nowe pozycje), ''set'' (zmienia ustawienia wskazanej pozycji) i ''enable'' / ''disable'' (włącza / wyłącza działanie wybranej pozycji). Można też wykonywać komendy z innego poziomu poprzedzając go poziomem, np. skądkolwiek można wpisać ''/tools/ping 1.1.1.1'' żeby spróbować wykonać ping do podanego adresu czy ''/ip/address add interface=ether1 address=172.16.0.1/20'' żeby ustawić adres IP. Poza SSH i portem szeregowym można się też dostać do CLI wybierając z WebFiga opcję ''Terminal''. Więcej na: https://help.mikrotik.com/docs/display/ROS/Command+Line+Interface ==== Informacje o interfejsach ==== Lista interfejsów:\\ ''/interface print'' Lista interfejsów bezprzewodowych:\\ ''/interface/wifiwave2 print [detail]'' Możliwości kart:\\ ''/interface/wifiwave2/radio print [detail]'' ++++ Przykład CLI |
[admin@Mikrotik] > /interface/print Flags: X, R - RUNNING Columns: NAME, TYPE, ACTUAL-MTU, L2MTU, MAX-L2MTU, MAC-ADDRESS # NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS 0 R ether1 ether 1500 1568 9214 48:A9:8A:B8:DA:7D 1 ether2 ether 1500 1568 9214 48:A9:8A:B8:DA:7E 2 ether3 ether 1500 1568 9214 48:A9:8A:B8:DA:7F 3 ether4 ether 1500 1568 9214 48:A9:8A:B8:DA:80 4 ether5 ether 1500 1568 9214 48:A9:8A:B8:DA:81 5 X wifi1 wifi 48:A9:8A:B8:DA:82 6 X wifi2 wifi 48:A9:8A:B8:DA:83 [admin@Mikrotik] > /interface/wifiwave2 print Flags: M - MASTER; B - BOUND; X, I, R - RUNNING Columns: NAME # NAME 0 MBX wifi1 1 MBX wifi2 [admin@Mikrotik] > /interface/wifiwave2 print detail Flags: M - master; D - dynamic; B - bound; X - disabled, I - inactive, R - running 0 M BX default-name="wifi1" name="wifi1" mac-address=48:A9:8A:B8:DA:82 arp-timeout=auto radio-mac=48:A9:8A:B8:DA:82 1 M BX default-name="wifi2" name="wifi2" mac-address=48:A9:8A:B8:DA:83 arp-timeout=auto radio-mac=48:A9:8A:B8:DA:83 [admin@Mikrotik] > /interface/wifiwave2/radio print Flags: L - LOCAL Columns: RADIO-MAC, INTERFACE # RADIO-MAC INTERFACE 0 L 48:A9:8A:B8:DA:82 wifi1 1 L 48:A9:8A:B8:DA:83 wifi2 [admin@Mikrotik] > /interface/wifiwave2/radio print detail Flags: L - local 0 L radio-mac=48:A9:8A:B8:DA:82 phy-id=0 tx-chains=0,1 rx-chains=0,1 bands=5ghz-a:20mhz,5ghz-n:20mhz,20/40mhz,5ghz-ac:20mhz,20/40mhz,20/40/80mhz,5ghz-ax:20mhz,20/40mhz,20/40/80mhz ciphers=tkip,ccmp,gcmp,ccmp-256,gcmp-256,cmac,gmac,cmac-256,gmac-256 countries=all 5g-channels=5180,5200,5220,5240,5260,5280,5300,5320,5500,5520,5540,5560,5580,5600,5620,5640,5660,5680,5700,5720,5745,5765,5785,5805,5825,5845,5865,5885 max-vlans=128 max-interfaces=16 max-station-interfaces=3 max-peers=120 hw-type="QCA6018" hw-caps=sniffer interface=wifi1 1 L radio-mac=48:A9:8A:B8:DA:83 phy-id=1 tx-chains=0,1 rx-chains=0,1 bands=2ghz-g:20mhz,2ghz-n:20mhz,20/40mhz,2ghz-ax:20mhz,20/40mhz ciphers=tkip,ccmp,gcmp,ccmp-256,gcmp-256,cmac,gmac,cmac-256,gmac-256 countries=all 2g-channels=2412,2417,2422,2427,2432,2437,2442,2447,2452,2457,2462,2467,2472 max-vlans=128 max-interfaces=16 max-station-interfaces=3 max-peers=120 hw-type="QCA6018" hw-caps=sniffer interface=wifi2++++ ++++ Przykład WebFig | Lista interfejsów bezprzewodowych:\\ {{interface_wifi.png}} Informacje o możliwościach kart bezprzewodowych:\\ {{interface_wifi_radios.png}} ++++ ==== Konfiguracja sieci bezprzewodowej ==== [[https://help.mikrotik.com/docs/display/ROS/Wireless|Wiki RouterOS dla sieci bezprzewodowych]] [[https://help.mikrotik.com/docs/display/ROS/WiFi|Wiki RouterOS ≥7.13 dla wifi]]/[[https://web.archive.org/web/20240807023808/https://help.mikrotik.com/docs/pages/viewpage.action?pageId=46759946|Wiki RouterOS ≤7.12 dla wifiwave2]] Aby skonfigurować kartę bezprzewodową, należy na interfejsie bezprzewodowym ustawić: * konfigurację (''configuration'') — podstawowe ustawienia takie jak tryb pracy, nazwa sieci, … * kanały (''channel'') — ustawienia używanych częstotliwości i standardów bezprzewodowych (802.11a/b/g/n/ac/ax/…) * zabezpieczenia (''security'') — ustawienia uwierzytelniania i szyfrowania w sieci Każdą z tych kategorii można skonfigurować osobno, a potem gotową konfigurację wybrać w ustawieniach interfejsu, bądź w ustawieniach interfejsu podać wszystko naraz. **Uwaga:** Opcja uwierzytelniania ''WPA3-PSK'' konfiguruje – wbrew nazwie – uwierzytelnianie SAE, a nie PSK. Dla konfiguracji istniejącej karty można użyć komendy: \\ ''/interface/wifiwave2 set //nazwa_karty// //nazwa_ustawienia//=//wartość//…'' \\ np: ''/interface/wifiwave2 set wlan1 configuration.ssid=MojaSiec'' Karty bezprzewodowe są domyślnie wyłączone. Żeby wystartowały, należy je włączyć:\\ ''/interface/wifiwave2 enable //nazwa_karty//'' \\ lub ''/interface/wifiwave2 enable //indeks_w_tabelce_wypisanej_przez_print//'' \\ lub ''/interface/wifiwave2 set //nazwa_karty// disabled=no'' \\ np: ''/interface/wifiwave2 enable wifi1'' Dla użycia więcej niż jednej sieci na jednej bezprzewodowej karcie sieciowej należy dodać kolejne interfejsy: \\ ''/interface/wifiwave2 add master-interface=//istniejąca_karta// name=//nowy_interfejs// …'' Do wypisania efektywnej konfiguracji sieci bezprzewodowej służy komenda: \\ ''/interface/wifiwave2/actual-configuration print [detail]'' ++++ Przykład CLI |
[admin@Mikrotik] > /interface/wifiwave2 set wifi1 configuration.ssid=NazwaSieci configuration.country=Poland configuration.mode=ap channel.width=20/40/80mhz channel.frequency=5170-5330 security.authentication-types=wpa2-psk,wpa3-psk security.passphrase=hasloDoSieci [admin@Mikrotik] > /interface/wifiwave2 enable wifi1 [admin@Mikrotik] > /interface/wifiwave2/actual-configuration/print detail 0 ;;; DFS channel availability check (1 min) name="wifi1" mac-address=48:A9:8A:B8:DA:82 arp-timeout=auto radio-mac=48:A9:8A:B8:DA:82 configuration.mode=ap .ssid="NazwaSieci" .country=Poland security.authentication-types=wpa2-psk,wpa3-psk .passphrase="hasloDoSieci" channel.frequency=5170-5330 .width=20/40/80mhz 1 name="wifi2" mac-address=48:A9:8A:B8:DA:83 arp-timeout=auto radio-mac=48:A9:8A:B8:DA:83 [admin@Mikrotik] > /interface/wifiwave2/actual-configuration/print detail 0 name="wifi1" mac-address=48:A9:8A:B8:DA:82 arp-timeout=auto radio-mac=48:A9:8A:B8:DA:82 configuration.mode=ap .ssid="NazwaSieci" .country=Poland security.authentication-types=wpa2-psk,wpa3-psk .passphrase="hasloDoSieci" channel.frequency=5170-5330 .width=20/40/80mhz 1 name="wifi2" mac-address=48:A9:8A:B8:DA:83 arp-timeout=auto radio-mac=48:A9:8A:B8:DA:83++++ ++++ Przykład WebFig | Konfiguracja (zabezpieczonej) sieci bezprzewodowej:\\ {{interface_wifi_setup.png}} ++++ ==== Wyświetlanie listy podłączonych urządzeń ==== Informacje o podłączonych do sieci bezprzewodowej stacjach można wyświetlić komendą: \\ ''/interface/wifiwave2/registration-table print'' ++++ Przykład CLI |
[admin@Mikrotik] > /interface/wifiwave2/registration-table print Flags: A - AUTHORIZED Columns: INTERFACE, SSID, MAC-ADDRESS, UPTIME, SIGNAL # INTERFACE SSID MAC-ADDRESS UPTIME SIGNAL 0 A wifi1 NazwaSieci E0:E1:A9:35:D7:47 1m53s -28 1 A wifi1 NazwaSieci 58:CE:2A:D8:A6:DA 1m24s -35++++ ++++ Przykład WebFig | Lista podłączonych stacji:\\ {{interface_wifi_regs.png}} ++++ ==== Mostkowanie interfejsów ==== Aby podłączyć AP do sieci dystrybucyjnej, należy stworzyć (wirtualny) interfejs mostka (=wieloportowego przełącznika) i podłączyć do niego wiele interfejsów:
[admin@Mikrotik] > /interface/bridge add name=bridge1 [admin@Mikrotik] > /interface/bridge/port add bridge=bridge1 interface=ether3 [admin@Mikrotik] > /interface/bridge/port add bridge=bridge1 interface=ether4 [admin@Mikrotik] > /interface/bridge/port add bridge=bridge1 interface=wifi1 [admin@Mikrotik] > /interface/bridge print Flags: X - disabled, R - running 0 R name="bridge1" mtu=auto actual-mtu=1500 l2mtu=1568 arp=enabled arp-timeout=auto mac-address=48:A9:8A:B8:DA:7F protocol-mode=rstp fast-forward=yes igmp-snooping=no auto-mac=yes ageing-time=5m priority=0x8000 max-message-age=20s forward-delay=15s transmit-hold-count=6 vlan-filtering=no dhcp-snooping=no [admin@Mikrotik] > /interface/bridge/port print Flags: I - INACTIVE Columns: INTERFACE, BRIDGE, HW, PVID, PRIORITY, PATH-COST, INTERNAL-PATH-COST, HORIZON # INTERFACE BRIDGE HW PVID PRIORITY PATH-COST INTERNAL-PATH-COST HORIZON 0 I ether3 bridge1 yes 1 0x80 10 10 none 1 I ether4 bridge1 yes 1 0x80 10 10 none 2 wifi1 bridge1 1 0x80 10 10 none [admin@Mikrotik] > /interface print Flags: X, R - RUNNING; S - SLAVE Columns: NAME, TYPE, ACTUAL-MTU, L2MTU, MAX-L2MTU, MAC-ADDRESS # NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS 0 R ether1 ether 1500 1568 9214 48:A9:8A:B8:DA:7D 1 ether2 ether 1500 1568 9214 48:A9:8A:B8:DA:7E 2 S ether3 ether 1500 1568 9214 48:A9:8A:B8:DA:7F 3 S ether4 ether 1500 1568 9214 48:A9:8A:B8:DA:80 4 ether5 ether 1500 1568 9214 48:A9:8A:B8:DA:81 5 R bridge1 bridge 1500 1568 48:A9:8A:B8:DA:7F 6 RS wifi1 wifi 1500 48:A9:8A:B8:DA:82 7 X wifi2 wifi 48:A9:8A:B8:DA:83++++ ++++ Przykład WebFig | Lista mostków (już po dodaniu jednego): \\ {{bridge1_list.png}} Dodawanie mostka:\\ {{bridge1.png}} Lista portów w mostkach:\\ {{bridge1_ports.png}} ++++ ==== Wiele sieci, mostkowanie interfejsów + VLANy ==== Do uruchomienia wielu sieci bezprzewodowych na jednej karcie, należy stworzyć nowy (wirtualny) interfejs bezprzewodowy powiązany ze wskazanym (zwykłym) interfejsem bezprzewodowym i odpowiednio skonfigurować nowy interfejs. Wiele sieci bezprzewodowych na jednym AP tworzy się po to, by podzielić użytkowników sieci bezprzewodowych na odrębne sieci, np. na pracowników firmy i gości. Zwykle pożądane jest utrzymanie takiego podziału w sieci dystrybucyjnej, tzn. w połączeniu do switchy/routerów tworzących szkielet wewnętrznej sieci. **Do osiągnięcia tego wykorzystuje się wirtualne sieci lokalne – VLANy.** Do wykonania takiej konfiguracji, można: - stworzyć mostek, - włączyć na nim wsparcie VLANów, - podłączyć do niego interfejsy przyporządkowując je do właściwych VLANów, - ustawić reguły wskazujące na których połączeniach poza zwykłym ruchem mają być przekazywane pakiety z innych VLANów z odpowiednimi znacznikami((Port na którym przesyłane są, odpowiednio oznaczone ramki z różnych VLANów, nazywa się portem //trunk//. Ruch / ramki ethernetowe z odpowiednią etykietą (nagłówkiem zgodnym z protokołem 802.1Q) nazywa się po angielsku //tagged//. VLANy były omawiane w ramach laboratoriów Sieci Komputerowe 1.)), - [opcjonalnie] można podłączyć do wybranych VLANów na mostku interfejs typu ''vlan'' dla łączności L3, np. przypisania urządzeniu adresu IP z tej sieci.
[admin@Mikrotik] > /interface/wifiwave2 set wifi2 disabled=no configuration.ssid=SiecZHaslem configuration.country=Poland configuration.mode=ap security.authentication-types=wpa2-psk,wpa3-psk security.passphrase=hasloDoSieci [admin@Mikrotik] > /interface/wifiwave2 add master-interface=wifi2 name=wifi3 disabled=no configuration.ssid=SiecBezHasla configuration.country=Poland configuration.mode=ap security.authentication-types=owe
[admin@Mikrotik] > /interface/bridge add name=bridge2 vlan-filtering=yes [admin@Mikrotik] > /interface/bridge/port add bridge=bridge2 interface=ether5 [admin@Mikrotik] > /interface/bridge/port add bridge=bridge2 interface=wifi2 pvid=20 [admin@Mikrotik] > /interface/bridge/port add bridge=bridge2 interface=wifi3 pvid=21 [admin@Mikrotik] > /interface/bridge print Flags: X - disabled, R - running 0 R name="bridge2" mtu=auto actual-mtu=1500 l2mtu=1568 arp=enabled arp-timeout=auto mac-address=48:A9:8A:B8:DA:7F protocol-mode=rstp fast-forward=yes igmp-snooping=no auto-mac=yes ageing-time=5m priority=0x8000 max-message-age=20s forward-delay=15s transmit-hold-count=6 vlan-filtering=yes ether-type=0x8100 pvid=1 frame-types=admit-all ingress-filtering=yes dhcp-snooping=no [admin@Mikrotik] > /interface/bridge/port print Flags: R - RUNNING Columns: INTERFACE, BRIDGE, HW, PVID, PRIORITY, PATH-COST, INTERNAL-PATH-COST, HORIZON # INTERFACE BRIDGE HW PVID PRIORITY PATH-COST INTERNAL-PATH-COST HORIZON 0 R ether5 bridge2 yes 1 0x80 10 10 none 1 wifi2 bridge2 20 0x80 10 10 none 2 wifi3 bridge2 21 0x80 10 10 none [admin@MikroTik] > /interface/bridge/vlan add bridge=bridge2 vlan-ids=20 tagged=ether5 untagged=wifi2 [admin@MikroTik] > /interface/bridge/vlan add bridge=bridge2 vlan-ids=21 tagged=ether5 untagged=wifi3 [admin@MikroTik] > /interface/bridge/vlan print Flags: D - DYNAMIC Columns: BRIDGE, VLAN-IDS, CURRENT-TAGGED, CURRENT-UNTAGGED # BRIDGE VLAN-IDS CURRENT-TAGGED CURRENT-UNTAGGED 0 D bridge2 1 bridge2 ether5 1 bridge2 20 ether5 wifi2 2 bridge2 21 ether5 wifi3
[admin@MikroTik] > /interface/bridge/vlan set 1 tagged=ether5,bridge2 [admin@MikroTik] > /interface/bridge/vlan print Flags: D - DYNAMIC Columns: BRIDGE, VLAN-IDS, CURRENT-TAGGED, CURRENT-UNTAGGED # BRIDGE VLAN-IDS CURRENT-TAGGED CURRENT-UNTAGGED 0 D bridge2 1 bridge2 ether5 1 bridge2 20 bridge2 wifi2 ether5 2 bridge2 21 ether5 wifi3 [admin@MikroTik] > /interface/vlan add interface=bridge2 name=bridge2.20 vlan-id=20 [admin@MikroTik] > /ip/addr add interface=bridge2.20 address=10.0.20.254/24 [admin@MikroTik] > /ping 10.0.20.1 count=2 Columns: SEQ, HOST, SIZE, TTL, TIME SEQ HOST SIZE TTL TIME 0 10.0.20.1 56 64 663us 1 10.0.20.1 56 64 1ms715us [admin@Mikrotik] > /interface print Flags: X, R - RUNNING; S - SLAVE Columns: NAME, TYPE, ACTUAL-MTU, L2MTU, MAX-L2MTU, MAC-ADDRESS # NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS 0 R ether1 ether 1500 1568 9214 48:A9:8A:B8:DA:7D 1 ether2 ether 1500 1568 9214 48:A9:8A:B8:DA:7E 2 ether3 ether 1500 1568 9214 48:A9:8A:B8:DA:7F 3 ether4 ether 1500 1568 9214 48:A9:8A:B8:DA:80 4 RS ether5 ether 1500 1568 9214 48:A9:8A:B8:DA:81 5 R bridge2 bridge 1500 1568 48:A9:8A:B8:DA:81 9 R bridge2.20 vlan 1500 65531 48:A9:8A:B8:DA:81 6 X wifi1 wifi 48:A9:8A:B8:DA:82 7 S wifi2 wifi 1500 48:A9:8A:B8:DA:83 7 RS wifi3 wifi 1500 4A:A9:8A:B8:DA:83++++ ----- ==== Jeżeli usuniesz sobie IP po którym konfigurowałeś Mikrotika... ==== Zepsułem sobie wszystkie IPv4 na Mikrotiku, używam w trakcie zajęć modelu który nie ma portu szeregowego, co teraz? Użyj istniejącego adresu IPv6: - wykonaj: ''ping ff02::1%//p4p2//'' (gdzie ''//p4p2//'' to nazwa przewodowej karty sieciowej którą jesteś bezpośrednio połączony do routera) - powinny odpowiedzieć dwa urządzenia: twój komputer i router Mikrotik \\ Adres kończący się jak twój MAC jest twój, ten drugi to Mikrotik - wykonaj ''ssh admin@//fe80::4aa9:8aff:feb8:da7d//%//p4p2//'', zmieniając IPv6 LL i nazwę karty na odpowiednie (tzn. skopiuj i wklej z wyników pinga) - naciśnij //Ctrl+C// na prośbie ustawienia hasła - wykonaj ''/interface/bridge/port print'', ''/interface print'' oraz ''/ip/address print'' żeby sprawdzić jak są ustawione interfejsy i adresy - popraw konfigurację, np. przez ''/ip/address add interface=//ether1// address=//192.168.88.1/24//'' Użyj program Winbox: - zainstaluj ''wine'' komendą ''zypper install -y wine'' - ściągnij program [[https://mt.lv/winbox64|Winbox]] - upewnij się że masz jakikolwiek adres IPv4 na przewodowej karcie sieciowej bezpośrednio połączonej do routera - uruchom Winbox komendą ''wine ./winbox64.exe'' - wybierz zakładkę ''Neighbours'' i jeśli nie ma twojego routera, kliknij w ''Refresh'' - sprawdź poprawność loginu i hasła i kliknij ''Connect'' - popraw konfigurację