Cactus

Alternatív WRT firmware-ek

1 February 2008 (unix gadget) (3 comments)

Nyilván az sosem volt ideális megoldás, hogy itthon egy full számítógép csak azért megy és zajong 24/7-ben, hogy levelezőszerverkedjen az itthoni gépeknek, meg persze NAT-oljon. Lőri hívta fel a figyelmemet a Linksys által gyártott NSLU2-re (becenevén "slug"), amiben az a truváj, hogy normális Linux disztribúció telepíthető fel rá. Szóval elhatároztam, hogy egy ilyennel meg egy Wi-Fi routerrel váltom ki a mostani dobozt. Az NSLU2-vel kapcsolatos információkról majd a következő részben olvashatsz, itt most a routerről lesz szó. Konkrétan a Linksys WRT54GL-ről.

Minek ezen bármit is hackelni?

Ez a kérdés természetesen adja magát, mivel a cucc, háztartási routerhez méltó módon, tényleg Magától Működik: összedugsz mindent, és NAT-ol meg DHCP szerver meg minden. Az viszont nagyon bosszantó, hogy van egy-két nagyon egyszerű feature, amit nem támogat, pedig nem kéne hozzá sok. Számomra a statikus DHCP volt ilyen (persze Dnsmasq-kel), amire mindenképp szükségem volt, de valamiért a router nem tud ilyet. Lehet, hogy ez már enterprise feature, és ilyenért sok pénzt kell elkérni?

Persze megfordult az is a fejemben, hogy a fent említett slugot használjam DHCP szervernek, de akkor meg a Dnsmasq nem az ISP-től kapja az upstream DNS címét, szóval nem ideális. De hát nem is véletlenül ezt a WRT modellt vásároltam, ez ugyanis a leg hackerbarátabb -- így hát nekiálltam megvizsgálni az elérhető alternatív firmware-eket.

Ezek mindegyike Linux alapú, mint ahogy a gyári firmware is az. A különbség a userlandben van, a hobbista csomagok több (lényegesen több) szolgáltatást nyújtanak, viszont nem mindig tökéletes az integráció.

DD-WRT

A wiki nagyon részletes leírást ad mindenről, igazából azért ez volt az első választásom, mert úgy éreztem, azelőtt mindent tudok már a rendszerről, hogy még akár csak letöltöttem volna az image-et. A telepítést a gyári firmware webes interfészén keresztül végeztem, és semmilyen probléma nem adódott. Utána ujraindult a router, és már a DD-WRT felhasználói felülete jön be. Elsőre minden pöpecnek tűnt.

Az első problémám órák múlva jelentkezett: a router nagyon megbízhatatlan volt. Futott egy BitTorrent kliens a gépemen, és ez teljesen megölte a NAT-ot. Namost annakidején az első gép, ami itthon a NAT-olást intézte, egy 100 Mhz-es Pentium volt, 16 mega memóriával, és sosem volt vele gond (persze konkrétan BitTorrent akkor még nem létezett), úgyhogy ezt a békát nem akaródzott lenyelni. A neten keresgélve találtam pár ötletet hogy milyen arkán beállításokat kell megváltoztatni a stabilabb működés érdekében, de eddigre már felfedeztem a másik problémát is:

A statikus DHCP konfigurálása kicsit furcsán működött ahhoz képest, ahogy azt a Dnsmasq lehetőségeit ismerve elképzeltem. Mivel alapvetően ezért cseréltem le a firmware-t, azt találtam ki, hogy hagyom a webes interface-t a francba, és SSH-n keresztül, kézzel bekonfigurálom. Namost ez megoldhatatlan feladat. A filerendszer read-only, a beállítások egy ramfs-ből jönnek, amibe bootkor konfigurációs file-okat generál valami feketemágia az NVRAM-ban lévő kulcs-érték párokból. Ez volt az a pont, amikor kidobtam a picsába az egészet.

(Most látom csak, hogy a website teljesen átalakult az utóbbi pár hétben, és valami fizetős-aktivációs bullshit van. Good riddance.)

OpenWRT

Na ez meg a website-ra vetett gyors pillantás alapján minden, csak nem Magától Működik. Bár az alapelgondolás vonzó volt (írható filerendszer, hagyományos Linux disztribúciókra emlékeztető, csomagokra bontott felépítés), nem éreztem ingerenciát, hogy beletanuljak a részletekbe.

X-Wrt

Ekkor szerencsére ráleltem az X-Wrt-re, ami a gyári firmware-hez, illetve a DD-WRT-hez hasonló webes felületet nyújt, de OpenWRT alapokon. Ez gyakorlatilag pont az, ami nekem kell.

Ráadásul a webes interfész alapból jobb, mint a DD-WRT-é, ezért aztán pont a Dnsmasq bekonfigurálásához nem is volt szükség a kézzel írható filerendszerre -- de kipróbáltam, működik (feelinges volt vi-jal szerkesztgetni az /etc-t). A tűzfal-beállítások, portforward rule-ok létrehozása, stb. is kényelmesen, de mégis flexibilisen végrehajtható böngészőből.

Ami pedig szerintem a legnagyobb a dologban, az a csomagkezelés integrációja a UI-ba. A webes interfészen ugyanis alapból az összes funkció megtalálható, és ha olyan lapra klikkelsz, ami egy nem telepített program beállításait tartalmazná, akkor felajánlja a telepítést -- egyetlen gombnyomással. Jó, jó, én mint ősöreg Debianos, nyilván naponta találkozom ezzel, csak akkor épp apt-get-nek hívják, de mégis, ez az integráció így együtt nagyon kényelmes és meggyőző. Pl. ezen az oldalon látható a használni kívánt NTP szerver textfield-je, eredetileg itt ehelyett egy gomb van, hogy "Ha NTP-t szeretnél használni, klikkelj ide, és telepítsd fel az ntpclient csomagot".

Ráadásul azóta már kb két hete megy, problémáknak a leghalványabb jele nélkül. És igen, azóta is futtatok BitTorrentet. Úgyhogy én az X-Wrt-nél kötöttem ki.

Ami még hátra van: ha elköltözöm, VPN-t akarok kiépíteni a lakásom és anyámék háza között, de úgy, hogy csak a két WRT54GL tudjon róla, a kliensgépek semmit ne vegyenek észre az egészből, csak annyit, hogy az ellenoldali gépek is ott lógnak a 10.0.0.x-en. Állítólag ehhez is minden adott (az X-Wrt-hez van OpenVPN csomag), de ezt az egész kérdést még nem invesztigáltam.


« Look at me, I'm Dr. Zoidberg, home-owner! 
All posts
 Egy nem PC asszociáció »


Árpád 2010-07-29 13:11:21

Szia!

Tetszett az írásod, de érdekelne, hogy az NSLU2-ről hol írtál? Már nézegetem egy ideje a honlapodat és az írásaidat, de nem találtam meg, hogy irtál-e volna a slug-ról.

Most kezdtem neki egy nslu2 konfigolásának és édekelne, hogy Te melyik Firmware-t javasolnád?

üdv:

Árpád

cactus 2010-07-29 14:36:04

Őszintén szólva azt a bejegyzést végül nem írtam meg, biztos lusta voltam, vagy közbejött valami...

Egyébként Debiant tettem végül rá, de már egy ideje egyáltalán nem is használom.

Árpád 2010-07-29 15:28:17

Köszi a választ! :)