DIY x86 router – szabadulj fel!

A routerem története: mikor jutott először eszembe, miért, hogy és miből, hogyan valósítottam meg. – írta: haddent, 6 éve

Tervezés

Indoklás
Tehát akkor azt hiszem, hogy elég korrektül megindokoltuk, hogy miért az x86 architektúra lehet az egyetlen valós megoldás, ami ráadásul anyagilag is elérhető kategória. Azt gondolom, hogy okosan akár 20-30 ezer forintból is építhetünk egy olyan gateway-t, amit sem tudásban, sem nyers erőben, sem funkcionalitásban nem fog soha utolérni egyetlen kommersz router sem.

Mire lesz szükségünk?
Egy jó alapra. Jelen esetben én az otthoni szerveremet alakítottam át, de bármilyen gép megteszi, aminek van elegendő számítási teljesítménye és rendelkezik legalább 2 db LAN-porttal (RJ45 aljzat szleng). Lehet itt szórakozni 1xRJ45 + Wi-Fi, vagy 1 LAN és 1 WAN meg hasonló felállásokkal, de igazából a lényegét öljük meg a dolognak. Sem stabil, sem erős nem lesz, ne szórakozzunk, ha már nekiálltunk.

Jelen esetben, a cikk egy Intel Pentium G2130 CPU-ról és 4 GB random memóriáról íródott, valamilyen Dell vállalati gépről, amiről a lényeg annyi, hogy rendelkezik egy darab gigabites Intel NIC-kel. Tehát akkor a javaslat / recept valami hasonló "CPU szörnyeteg", hasonlóan borzalmas mennyiségű memória, és a lényeg: vagy 2x integrált Intel Gigabit NIC, vagy 1x integrált + 1 PCI-e hely, vagy 2 PCI-e hely. A lényeg, hogy tudjunk építeni egy olyan gépet, ami rendelkezni fog 2x gigabites Intel NIC-kel.

Természetesen nem kötelező az Intel megoldás, de más gyártó esetén számíthatunk rá, hogy sem a Linux, sem a közösség, sem senki nem garantálja a támogatást és a minőség is megkérdőjelezhető.

Szoftver
Több lehetőségünk is van, de két fő nyomvonal közül kell először is választanunk: fogunk egy direkt firewall disztribúciót, feltelepítjük, webes felületen kattintgatással beállítjuk és örülünk, hogy minden megy és még szép is, vagy vért izzadva mi "programozzuk" (scripteljük) az interfészeket, a tűzfalat, a NAT-ot és minden mást. Az első megoldás nem túl izgalmas – habár a várt eredményt eléri és könnyen –, úgyhogy nem is taglalnám, csak ajánlanék egyet a sok közül.

Kész szoftver, tűzfal disztró: a clearOS

A pfSense vagy az OpenWRT DD-WRT neveket már mindenki ismeri és unja, szóval én egy új versenyzővel készültem: clearOS.

Linux (centOS) alapú, könnyű, grafikus telepítő (konkrétan szebb és egyszerűbb a telepítője, mint az Ubuntué), telepítés után gyönyörű beállítás-varázsló fogad minket a webes interfészen, mindenhez ott helyben van leírás, magyarázat, példa. Jó eséllyel keresnünk sem kell semmit.

Megy, működik, az erőt szolgáltattuk a hardverrel, a szoftverre nem lesz kifogás. Konfigurálható és szép, szebb, mint egy kommersz router, sokoldalú, mint egy 3rd party firmware egy kommersz routeren (sokkal többet tud, mint egy WRT egy routeren).

Van saját "appstore / market" -ja, ahonnan kattintgatással tudunk telepíteni alkalmazásokat, mint pl. webszerver, SMTP (email) szerver, Plex szerver, ilyen-olyan VPN, DynDNS, stb. Valószínűleg konzolt az életben nem fogunk látni, ha nem akarunk.

Többet nem is kell mondjak róla, mindenkinek jó szórakozást, nem kell félni tőle, tetszeni fog!

A mocskos és nehéz út

Na de akkor mégis miért választana bárki mást? Hát azért, mert ez továbbra is egy n+1 absztrakció. Sajnos nincsenek csodák, a clearOS, a pfSense és mindegyik másik disztró, sőt a kommersz router web felülete is pont ugyanazt csinálja: absztrakciót nyújt az olykor ocsmány és keszekusza (a fenti kép egy konkrét, nem is túl bonyolult példa csak az iptables egy konfigurációjára) Linux/BSD konzol felett.

Ez szép és jó, megkönnyíti az életet és működik. De ha lehet máshogy is, akkor miért akarnánk ezt? És legfőképpen honnan tudjuk, hogy a háttérben mi zajlik? Oké, open source, meg minden, de mialatt átnyálazzuk a forrását és kiderítjük, hogy miket csinál, akár meg is tanulhatnánk kezelni az iptablest meg miegyebet, nem? Szinte biztos, hogy minden egyes beállítással felesleges parancsok sora fog végrehajtódni az univerzalitás és kompatibilitás jegyében.

Erre semmi szükség! Szépen tanuljuk meg kezelni, amink van, ne csaljunk. Ezt fogom megpróbálni bemutatni a következőkben, legalábbis egy alapvető konfigurációját, hiszen én is még csak tanulom (meg úgy mindenki, élete végéig kb.).

Szóval a mocskos és nehéz úthoz a hardveren kívül, szoftver szinten, szükségünk lesz egy darab tetszőleges Linux vagy BSD disztribúcióra. Ha már mocskos és nehéz, és próbáljuk elkerülni az overheadet, meg a felesleges bloatware-t, akkor az én személyes példám és javaslatom az Arch Linux.

Igazából az Arch telepítése és konfigurálása egy külön téma, megérne egy külön cikket (készül), szóval a továbbiakban feltételezzük, hogy rendelkezünk egy működő unix-like OS-sel. Kis túlzással tényleg bármi lehet, az se baj, ha maradunk egy ósdi Ubuntunál grafikus felülettel és bloatware-rel együtt.
A példa viszont Arch csomagkezelőre és csomagokra épül, szóval más disztró esetén nektek kell majd megkeresni a megfelelő csomagokat!

Egyéb eszközök
Jelen példa esetén 1 WAN 1 LAN felállás van, tehát a LAN oldalon el kell osztanunk még (fizikailag) a csatlakozókat. Szerintem így egyszerűbb, ezt ajánlom. Ehhez azonban még szükségünk lesz majd egy full duplex (1/1 aszinkron) gigabites switch-re, amit a LAN interfészre csatlakoztatunk, és amihez a kliensek fognak csatlakozni (fizikailag) és/vagy egy Wi-Fi routerre / access pointra Wi-Fi-hez.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

  • DIY x86 gateway v2

    Két évvel ezelőtt íródott bejegyzésem folytatása, melyben lényegében ugyanazt a felépítést (router, tűzfal, gateway, VPN-szerver stb.) próbálom bemutatni egy más absztrakciós szintről.

  • Mercusys MW325R router

    A könnyű használhatóság és a szerény költségvetés miatt esett a választásom erre a filléres Wi-Fi routerre.

  • TP-Link WR741ND újraélesztése

    Avagy hogyan kell a különböző firmware-ek csereberéjével téglásított routert visszahozni az életbe?

Előzmények