Bolje od izvirnika
Pri kar nekaj modelih brezžičnih usmerjevalnikov, ki smo jih preizkusili v tokratni številki, si lahko namesto izvirne programske opreme naložimo odprtokodni DD-WRT. O njem smo se pogovarjali z enim izmed samo treh razvijalcev, Alešem Majdičem.
Aleš Majdič, sicer fizik, je eden izmed dveh razvijalcev programske opreme DD-WRT
Na usmerjevalnike večina uporabnikov gleda kot na statične kose strojne opreme, ne pa na nekaj, kar bi se dalo nadgraditi. Kako ste vi sploh prišli do sodelovanja pri takem projektu?
Začelo se je enostavno s tem, da sem naročil usmerjevalnik, star model Buffalo, z Japonske in nanj poizkusil naložiti programski paket DD-WRT. To mi takrat ni uspelo, enostavno je nekaj zablokiralo, prek foruma sem prišel do tega, da sem pisal glavnemu razvijalcu, Sebastianu Gottschallu. Zanimalo me je, kaj spremeniti, da bi zadeva delovala na tem modelu usmerjevalnika. Poslal mi je poizkusno, torej razvojno različico, a še vedno ni delovala, pa me je kar povabil k sodelovanju. Takrat mi je omogočil dostop do strežnika, kjer so gostili kodo, in sem jo sam začel spreminjati in dodajati nove modele usmerjevalnikov. Čez pol leta pa me je povabil k resnejšem sodelovanju.
In koliko vas sploh sodeluje pri tem projektu? Vemo, da so nekateri projekti v svetu odprte kode silno veliki, da se z njimi ukvarja silno veliko ljudi, spet drugi pa so plod nadvse majhnih skupin.
Pri DD-WRTju smo le trije. Glavni je Sebastian, on je tudi začel s tem projektom. Je sicer iz Nemčije, iz Dresdna, od tod tudi črki "DD" v imenu projekta, saj je to koda za mesto Dresden, kot se uporablja na avtomobilskih tablicah. Poleg njega pa sodelujeva še Felix Fietkau (ki sodeluje tudi pri projektu OpenWrt ) in jaz, pred leti je sodeloval še Sylvain Bothorel iz Francije, ki je pomagal narediti uporabniški vmesnik. Je sicer kar nekaj uporabnikov, ki prispevajo prevode. Slovenski prevod pa je moje delo (tega marsikateri veliki izdelovalec še vedno nima). Od uporabnikov dobimo tudi povratni odziv glede kakih pomanjkljivosti oziroma morebitnih varnostnih razpok, največkrat prek foruma. Smo torej majhna ekipa, fizično se vidimo enkrat ali dvakrat na leto, drugače pa potekajo vse komunikacije prek spleta.
Kako oziroma zakaj se je sploh začel tak projekt?
Povod je bil podoben kot pri marsikaterem računalniškem projektu - dokazati, da se kaj takega sploh da. Od tam naprej so se zadeve razvijale, dodajale so se nove funkcionalnosti, podprtih pa je bilo vse več različnih modelov. Seveda je želja iz opreme iztisniti čim več, torej povečati moč, odpreti vse kanale itd.
Si predstavljamo, da za razvoj potrebujete čim več različnih usmerjevalnikov. Vam jih podjetja posojajo?
Seveda sem se trudil dobiti kake usmerjevalnike na izposojo, a izdelovalcev kaj takega večinoma ne zanima. Sem, recimo, stopil v stik s podjetjem Netgear, pa so me napotili na domačega zastopnika, kjer sem jih nekaj tudi dobil. Velikokrat pa gre enostavno za dobro voljo zaposlenih - v evropski podružnici Netgeara je nekaj časa delala prijazna gospa, prek katere sem kdaj dobil kako napravo, po njeni zamenjavi pa niso več želeli sodelovati. Pač nočejo tvegati tistih štirideset ali petdeset dolarjev, sploh ne večji - Linksys nikoli, Asus mi je celo poslal nekaj, kjer sem še sam moral plačati carino. Večji imajo očitno zadosti poceni programerjev na Kitajskem, ki delajo na njihovi programski opremi.
Pa so kakšne izjeme?
Seveda se najdejo, primer je podjetje Buffalo. Tu so celo oni stopili v stik z nami in nas povabili k sodelovanju. Če kupite pri nas, torej v Evropi, njihove zmogljivejše usmerjevalnike, imajo že nameščen DD-WRT.
Enak temu, ki ga dobimo prek spleta?
Da, približno enak, ima seveda malce prilagojen grafični vmesnik, torej zamenjane nekatere napise, kjer pač piše Buffalo. Nekatere privzete vrednosti oziroma nastavitve so prilagojene, se pa modeli s to programsko opremo zaradi licenčnih razlogov prodajajo le v Evropi in Aziji, v ZDA pa ne. Buffalo nam je zaradi tega sodelovanja tudi omogočil, sicer pod zelo strogimi pogoji, dostop do njihove kode. To je bil sicer tudi naš pogoj, da lahko sploh kaj naredimo.
Toda DD-WRT je odprtokoden, jo torej oni uporabljajo brezplačno ali vam kaj plačajo?
Tu je pogodba, o katere podrobnostih seveda ne smem govoriti. Toda da, v teoriji bi lahko kdorkoli vzel našo kodo in jo prilagodil, čeprav še ne poznam primera, da bi se to tudi zgodilo, so le nekateri drobni popravki in dodatki.
Pa sicer preizkusite opremo na vseh usmerjevalnikih? Se med seboj močno razlikujejo?
Ko daš enkrat čez toliko naprav, vidiš, da je veliko takih, ki so pravzaprav enake, vsaj pri elektroniki, razlikujejo se torej le po številu anten in podobno. Doma imam veliko usmerjevalnikov, v katere so vgrajeni Broadcomovi čipi, potem imam prek našega foruma zvezo z določenimi ljudmi po svetu, ki jim zaupam, in testirajo na opremi, ki je sam sicer nimam. Glavni razvijalec, torej Sebastian, ima čez večino drugih čipov, razne Atheros, xScale, tudi različico za PCje, torej x86.
PC?
Da, postavite si navaden računalnik, vstavite vanj nekaj omrežnih kartic, tudi kako brezžično, nanj naložite DD-WRT in imate noro hiter usmerjevalnik. To je sicer bolj za navdušence, ta različica je tudi plačljiva.
Plačljiva?
Pravzaprav je kar nekaj plačljivih različic. Na začetku se je poizkušalo vse mogoče, torej na kakšne načine bi se s tem zaslužilo. Dajali smo noter tudi reklame, a tega ljudje ne marajo. Zdaj se služi s prodajanjem licenc in s tem, ko sodelujemo s podjetji, ki uporabljajo našo programsko opremo na lastnih usmerjevalnikih, recimo internetni ponudniki (nekaj malega pa pride tudi z donacijami prek PayPala). Za plačljive različice je tako, da je treba prek naše strani kupiti licenco, da se omogoči brezžična povezava usmerjevalnika. Licenca sicer velja 20 evrov. DD-WRT, oziroma podjetje NewMedia-NET, ki stoji za njim, ima tudi spletno trgovino, kjer lahko kupite usmerjevalnik, ki ima že naložen in aktiviran DD-WRT.
To so navadni, off-the-shelf usmerjevalniki, na katere naložite vašo programsko opremo?
Tudi, lahko pa si tudi prilagodite usmerjevalnik. Imamo nekaj študentov v Nemčiji, ki vam sestavijo usmerjevalnik po želji, torej dodajo različne module in podobno. Imamo tudi bolj profesionalne usmerjevalnike, tudi take za zunanjo rabo. Sicer pa, če želiš zares zmogljiv usmerjevalnik, je PC najboljša rešitev. Sploh danes, ko se dobi silno poceni matične plošče s kakim vgrajenim procesorjem Atom.
Programska oprema je zasnovana na Linuxu, uporablja navadno jedro?
Jedro je za vsak procesor drugačno, praviloma (vsaj pri vseh profesionalnih modelih) gre za različico Linuxovega jedra 2,6, na nekaterih starejših modelih pa se uporablja tudi še 2,4. User space pa je povsod praktično enak. Pri nekaterih je sicer težava, ker so močno omejeni s prostorom, saj imajo tudi le 2 MB pomnilnika flash, tam smo morali določene funkcije odstraniti. Novejši in zmogljivejši modeli imajo več, tudi po 8 ali 16 MB. Ker je spodaj navaden Linux, pa niti ni nujno, da uporabljamo spletni vmesnik, deluje tudi SSH. Tudi požarni zid je pravzaprav le Linuxov iptables. Programira se v Cju, razen seveda pri uporabniškem vmesniku.
Kakšne pa so razlike med vašim projektom in drugimi podobnimi projekti? V mislih imamo seveda OpenWrt in Tomato.
OpenWrt je začel podobno kot mi, a so šli malce v drugo smer. Linux jedra so bolj ali manj enaka, a imajo drugačen način, kako se zadeva gradi. Pri njih se naloži osnova, nato se dodaja module, pri nas pa je vse skupaj zapakirano. Oni tudi kar dolgo niso imeli grafičnega uporabniškega vmesnika, torej smo usmerjevalnik nadzorovali prek ukazne vrstice. Zdaj to imajo, a se naloži kot modul. Tomato pa bolj izhaja iz objavljene, torej uradne kode. Zaradi tega podpira tudi manj naprav.
Pa je kakšen razlog, zakaj bi podjetje sploh vgrajevalo slabšo programsko opremo, torej svojo? Torej zakaj ne bi neki Linksys ali Asus vgradil DD-WRT, imajo radi vse pod nadzorom ali kako?
Ne poznam politike teh velikih podjetij. Se pa pri proizvajalcih usmerjevalnikov pogosto dogaja, da napake zelo nenavadno popravljajo. Uporabniki se o napaki pritožijo, počasi, včasih tudi po pol leta ali več, se ti hrošči odpravijo. A kasneje izide nov usmerjevalnik z enakimi hrošči, torej se začne vse od začetka. To je nekaj neverjetnega, odzivni čas je res velik, če sploh je. Če se pri nas pokaže napaka, se to objavi na "bug-trackerju", bolj ali manj take napake odpravljamo sproti. Ljudje preizkušajo opremo in se popravki delajo že za naprej. Je pa kar problem, saj imajo ta podjetja zaprte gonilnike, večinoma pa še povsod uporabljajo staro jedro, torej 2.4. Ker nimamo dostopa do nekaterih funkcionalnosti, se pri novih modelih včasih tudi zgodi, da je z DD-WRTjem usmerjevalnik počasnejši kot z izvirno opremo. Primer je recimo Linksys E4200, ki s posebnim gonilnikom omogoča noro hitre prenose med vrati LAN in WAN (to smo izmerili tudi na tokratnem preizkusu, op. ur.), vendar v DD-WRTju tega gonilnika žal nimamo.
Seveda spremljate priljubljenost, recimo, kolikokrat je bil DD-WRT prenesen iz spleta?
Ko pride nova različica, je število tam od petsto tisoč pa do milijon prenosov. Seveda je pri vmesnih, testnih, različicah ta številka precej manjša. Imamo pa skupino ljudi, ki si prenese prav vsako različico in jo takoj naložijo na vse svoje usmerjevalnike.
Se mi zdi kar veliko, pri nas v podjetju imamo, recimo, tri usmerjevalnike, na vseh teče DD-WRT, a smo po prvi namestitvi vse pustili pri miru, torej nismo nadgrajevali z novimi različicami. Enako doma.
Ja, uporabnikov imamo res kar veliko.