Mikrotik hAP ax³

Hálózati fejlesztésként beruháztam egy lentebb látható Mikrotik hAP ax³-ra kíváncsiságból, mivel pár érdekeset tartogat szerintem mindenki számára a szolgáltatásai listája a Mikrotik eszközöknek, számomra a legvonzóbbak a container futtatás illetve a WireGuard támogatás volt.

Fizikai mivoltát tekintve minőségi érzés fogja el az embert, mert nem egy recsegős műanyag dobozt kap a kezébe az ember, formás is, hogy ne kelljen elrejteni, illetve talán praktikus is a perforáció rajta alul-felül, amin keresztül tud szellőzni, mert azért fog termelni némi hőt (nem vészes).
Ami a leggagyibb érzetet az antennák adják, kicsit olyan, mintha bármelyik pillanatban képesek lennének porrá törni.

Az alapokra nem szeretnék kitérni (egyébként is mi vagyunk a legnagyobb technikusok, akik valaha éltek), talán csak arra hívnám fel mindenki figyelmét, hogy:

- használjuk bátran a WinBox-ot
- reset esetén előfordulhat, hogy zero config-os lesz az eszközünk, ekkor MAC alapú kapcsolódást tudunk kezdeményezni az eszközzel (WinBox), vagy esetleg, ha van kéznél másik DHCP szerver, akkor IP-n keresztül is, ugyanis ilyenkor a router-nek még saját IP-je sem lesz
- ha vissza szeretnénk rakni a default config-ot, akkor menüből kezdeményezzünk egy reset-et anélkül, hogy bármelyik opciót is benyomnánk, így biztosan olyan állapotba kerül az eszköz, ahogyan az kijött a gyárból

WiFi

Ugyan tényleg nem akarok belemenni a hétköznapi dolgokba (bár Mikrotik-kel mintha semmi nem lenne az), de a WiFi kapcsán fontos kiemelni, hogy vezeték nélküli teljesítményért senki ne vegyen Mikrotik-et. A 7-es RouterOS-sel már legalább az megváltozik, hogy nem maguk írják a WiFi driver-eket, de ettől még nem lesz acélos a dolog, érezhetően gyengébb a hatósugara, mint az AX86U-nak, amit használtam, vagy épp a UPC ConnectBox-nak.
Kicsit sikerült javítani a helyzeten azzal (korrekt csatorna kiválasztása mellett), hogy:

- átállítottam a adó teljesítményt (TX power) 20 dBi-re (27-re is lehetne, ha jól láttam a használt 100-as csatornával)
- megadtam az antenna gain-t (nyereséget), ami 6 dBi

Magával a sebességgel, illetve az alapvető stabilitással nincs gond.

Pár alap információ

Lentebbi dolgokhoz esetleg jól jöhetnek, ha ezek ismertek:
- RouterOS verzió: 7.13.3
- hálózatom: 192.168.2.0/24
-router-em IP-je: 192.168.2.1

Container - AdGuard

A váltás illetve a kísérletezés egyik célja az volt, hogy kipróbáljam a Mikrotik container futtatási képességét, mert ez kimondottan kényelmessé teheti a reklámok blokkolását DNS alapon anélkül, hogy egy plusz PC/Pi/egyéb kellene.

AdGuard-ot már használtam, így ez volt az alany is, Mikrotik oldalán van teljes leírás PiHole-hoz egyébként, de a kettő végül is teljesen hasonló, de vágjunk is bele.

Amire szükség lesz az egy USB-s drive (bármilyen), System > Disks alatt tudjuk formázni is ext4-re. Amire érdemes figyelni, az egy hiba valahol a RouterOS-ben, mert előfordul, hogy pl. egy USB 3.0-ás meghajtót kétszer is listáz, ebben az esetben azt fogjuk tapasztalni, hogy usb1 hol usb2 alatt találjuk a fájljainkat, így, ha a következőt látjuk magunk előtt, inkább keressünk egy másik meghajtót (USB 2-est vagy olyat, amit csak egyszer listáz):

Én egy 2008-ban vásárolt 2.0-ás meghajtóra tértem át, így már rendben van a dolog:

Container támogatása extra csomagként érhető el, ezt le kell tölteni a router-hez megfelelő verzióban a Mikrotik oldaláról, feltölteni az eszközre (Files-on keresztül), majd újraindítani, hogy települjön a csomag.
Ezek után még pluszban engedélyezni kell a container támogatást, ennek biztonsági okai vannak, irány a Terminal:

/system/device-mode/update container=yes

A parancs kiadása után meg kell nyomnunk egy hardveres gombot a router-en, ennek következtében újra is fog indulni, ne lepődjünk meg.

Miután újra beléptünk a router-be, csak a Terminal-ra lesz szükségünk, állítsuk be az alapokat, mint memória limit és forrás hub:

/container/config/set ram-high=200M

Már a pull directory is az USB meghajtóra kerül, nem a belső flash-re (ami kicsi és lassú):
/container/config/set registry-url=https://registry-1.docker.io tmpdir=usb1/pull

Először szükségünk lesz egy interface-re, amit a container fog használni:

/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1

Majd egy kapcsolódó hálózatra, amin keresztül elérhetővé is válik számunkra:

/interface/bridge/add name=containers
/ip/address/add address=172.17.0.1/24 interface=containers
/interface/bridge/port add bridge=containers interface=veth1

NAT-ot is be kell állítanunk, hogy elérhető legyen a külvilág:

/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24

Következő lépésben állítsuk be a szükséges környezeti változókat és mount-okat, ami szükségünk lehet, esetemben:

/container/mounts/add name=adguard_work src=usb1/adguard/work dst=/opt/adguardhome/work
/container/mounts/add name=adguard_conf src=usb1/adguard/conf dst=/opt/adguardhome/conf

És jöhet is az image pull, illetve a container előkészítése:

/container/add remote-image=adguard/adguardhome:latest interface=veth1 root-dir=usb1/adguard/root mounts=adguard_work,adguard_conf hostname=adguard

Nekem erre a container-re állandóan szükségem lesz, így engedélyezni kell, hogy újraindítás után ez is induljon el:

/container/set 0 start-on-boot=yes

És akkor start:

/container/start 0

Ha minden jól ment, valami ilyesmit kell látnunk összesítve:

Ekkor maga az AdGuard már elérhető kívülről is a 172.17.0.2-es címen, de attól függően, ki mit hogyan szeret, be lehet állítani egy port forward-ot is a router címére, hogy elérjük a GUI-t:

add action=dst-nat chain=dstnat dst-address=192.168.2.1 dst-port=3000 protocol=tcp to-addresses=172.17.0.2 to-ports=3000

Innentől már csak azt kell megoldani, hogy a DNS feloldás megtörténjen, ezt megint, ki hogyan szeretné, én a kliensek felé leküldöm a container IP-jét az első helyen, de másodiknak meghagyom a router-ét, ami a szolgáltató által biztosított upstream DNS szerverekre támaszkodik, így abban az esetben, ha a container megállna, még mindig lesz internet, csak reklámokkal (ehhez természetesen szükséges az AdGuard helyes beállítása, hogy mindenképp adjon vissza találatot a semmibe).

Nem feltétlenül így a legszebb, hogy a container hálózat szabadon elérhető, de nekem megteszi, átlátható, követhető.

WireGuard

Következő megoldandó feladat 2 egymástól távoli hálózat összekötése VPN-nel. Eddig is volt egy félig meddig összehozott megoldás OpenVPN-nel, de az OVPN-t a Mikrotik nem igazán támogatja, valamit össze lehet vele hozni, de nem az igazi, szerencsére a WireGuard már megy vele natívan, amit támogat a másik hálózatban lévő Asus AX86U is.

Így néz ki a dolog:

Báránd (szerver): 192.618.1.0/24 - barand.vpn.server.hu DDNS beállítva előre a dinamikus public IP miatt
Budapest (kliens): 192.168.2.0/24

Asus a VPN szerver, next-next-finish módon be lehet állítani, egy dologra figyeljünk, hogy ne maradjon ki a távoli hálózat az server oldali allowed listából, különben nem lesz működő routing-unk:

Routing:

A végén mutat nekünk egy QR kódot, de nekünk a részletek kellenek:

[Interface]
PrivateKey = PRIVATE_KEY
Address = 10.6.0.2/32
DNS = 10.6.0.1

[Peer]
PublicKey = PUBLIC_KEY
AllowedIPs = 0.0.0.0/0
Endpoint = barand.vpn.server.hu:44444
PersistentKeepalive = 25

Jöhet a Mikrotik oldalán a kliens beállítása, van gyári leírás is, nekem az annyira nem segített, de érdemes lehet megnézni.

Első lépésekben meg kell adni a WireGuard beállításait, a szerver oldalán kiköpött adatokat megadva tudjuk ezt összehozni, mindent onnét értelem szerűen használjunk fel:

/interface/wireguard/add name=barand-wg-client listen-port=44444 private-key="PRIVATE_KEY" comment="wg: barand"

/interface/wireguard/peers add interface=barand-wg-client public-key="PUBLIC_KEY" allowed-address=0.0.0.0/0 endpoint-address=barand.vpn.server.hu endpoint-port=44444 persistent-keepalive=25 comment="wg: barand"

/ip/address/add interface=barand-wg-client address=10.6.0.2/24 comment="wg: barand"

Szükségünk lesz egy route-ra, hogy elérjük a kliens oldaláról a szerveroldali hálózatot:

/ip/route add dst-address=192.168.1.0/24 gateway=barand-wg-client comment="wg: barand"

Következő lépésben vagy berakjuk a LAN listába a WireGuard interface-t, vagy tűzfalszabályokat állítunk; előbbi egyszerűbb, de nem feltétlenül akarja mindenki, hogy bármelyik kliens mázkáljon a túlvilágra, nekem az első opció végül is megteszi, mert szinte csak saját felhasználásra kell az egész:

/interface list member add interface=barand-wg-client list=LAN comment="wg: barand"

Utolsó mozdulat egy újabb NAT beállítása, enélkül nem fogjuk tudni elérni a távoli hálózatot, illetve semmi nem fog visszatalálni:

/ip firewall nat add action=masquerade chain=srcnat ipsec-policy=out,none out-interface=barand-wg-client comment="wg: barand"

Ha ezekkel végeztünk, el kell tudnunk élni a 192.168.1.0/24-es hálózatot a Mikrotik-es kliensünk keresztül bármelyik eszközről, ami a Mikrotik-en lóg:

Asus oldalról is megy szépen a távoli hálózat elérése:

Elképzelhetőnek tartom, hogy nem a legjobb beállításokkal megy ez most nekem, ha valakinek van valami tippje még, mit hogyan kellene, jelezze bátran, jelen pillanatban száguldanak a bitek rendesen.

Még van, amit be akarok állítani, például DDNS szolgáltatás, amit a Mikrotik csak script-en keresztül tud, amennyiben nem a gyártó saját megoldását akarjuk használni, szóval a kaland még nem fejeződött be.

Nagyjából egy hete használom az eszközt, eddig hibátlan.

Hirdetés

3 pénzügyi döntés, amit minden kisvállalkozónak érdemes átgondolnia az év végéig

PR Ahogy az év vége közeledik, itt az ideje, hogy egy pillanatra megálljunk és áttekintsük vállalkozásunk pénzügyi helyzetét. Ne hagyjuk, hogy az év utolsó hónapjai elússzanak a sürgető feladatok és elfeledett határidők között!

Tovább a fórumba.