Hlavní navigace

Starspeeder Linux MINI-HOWTO

9. 7. 2001
Doba čtení: 10 minut

Sdílet

Jednou z možností připojení k Internetu je využití družicového systému Starspeeder. Z dnešního článku se dozvíte, co to vlastně Starspeeder je, jak funguje a hlavně co obnáší jeho rozběhání pod Linuxem.

Verze 0.5 ze dne 27. 6. 2001

Strávil jsem skutečně mnoho času bádáním nad tím, jak zprovoznit družicový příjem Internetu přes službu Starspeeder. Celá věc se v průběhu oživování dost komplikovala. Bylo to způsobeno jednak použitou kartou (Galaxis, klon Siemensu), jejíž síťová část nových ovladačů je nepoužitelná, a jednak rozcházením VPN tunelu, který služba Starspeeder vyžaduje ke své činnosti. Dost mě také rozladilo osazenstvo konference Linux-DVB, které zcela ignoruje nejen začátečnické, ale i pokročilé dotazy. Avšak konec dobrý – všechno dobré, se Starspeederem jsem nakonec velmi spokojen a rád se s Vámi podělím o své zkušenosti.

Něco málo z teorie

K využití Starspeederu je nutné mít pozemní linku, pevnou nebo vytáčenou, protože satelitní provoz je jednosměrný. Požadavky jdou pozemní cestou přes VPN a vracejí se z družice. Data jsou tak vysílána přes celou Evropu a pouze nastavením naší MAC adresy se odfiltruje zbytek. Je možné nastavit kartu tak, že bude přijímat veškerý provoz všech uživatelů, praktický užitek zde nevidím, naopak výrazné nebezpečí kompromitace.

Družice létá 36 tisíc kilometrů nad zemí, je tedy možné spočítat, že zpoždění paketu zde dosahuje 120 ms a 2×120 ms = 240 ms. Z mé zkušenosti vychází zpoždění mezi 250 – 300 ms, což je pro http/ftp, provoz zanedbatelné, nicméně při navazování spojení nebo přepínání stránek to v konečném důsledku pocítíte.

Existují i služby obousměrného přenosu dat, ale zde se jednak dostáváme na úplně jiné měsíční poplatky, a dále pozemní výbava nepředstavuje parabolu 80 cm, jako v případě Starspeederu, ale spíš něco okolo dvou metrů v průměru.

Družice Starspeederu

Družice, na které je Starspeeder provozován, slouží jako univerzální bod pro distribuci digitálních médií, a to nejen Internetu, ale také dalších broadcastových služeb. Společnost EUROPE*STAR ji nabízí k využití třetím firmám. Družice byla vypuštěna 29. října 2000 a na její domovské stránce naleznete nejen technické parametry, ale také videa se záznamem startu. Družice pokrývá celou Evropu, JAR, blízký východ, Indii a jihovýchodní část Asie.

Jak Starspeeder pořídit a za kolik?

V ČR službu Starspeeder prodává firma Ubcom a její partneři. Registrační poplatek činní Kč 400,– a čtvrtletní předplatné 2 640,– bez DPH 5%. Hardwarová výbava představuje typickou družicovou parabolu do jednoho metru v průměru, satelitní konektor, anténní svod a DVB kartu. Tahle výbavička se dá pořídit okolo deseti tisíc. Nesmíme samozřejmě zapomínat na nutnost pozemního spoje pro posílání požadavků.

Zaměření satelitu

Tohle není zrovna hračka, protože na družici EUROPE*STAR, přes kterou služba Starspeeder funguje, dosud neběží žádná TV stanice a proto budete mít se zaměřením bez spektrálního analyzéru trošku problém. Jinou možností je použít k zaměření utilitu dodávanou ke kartě. Pak se ovšem neobejdete bez PC s Windows. Družici zaměříte na 45 stupních východně (vztaženo k poledníku). Že je potřeba pootočit konvertor o 30 stupňů asi nemusím připomínat. Polarizace je vertikální, downlink frekvence 11.632 GHz, symbol rate 27 500. PID 309, FEC 5/6. Pokud jste nic podobného nikdy předtím nedělali, nechte instalaci provést raději zkušenou firmu, cena za zaměření se pohybuje okolo pěti stovek.

Karty z rodiny Siemens (Galaxis, Technotrend, Hauppauge, Technisat)

Až donedávna jste snad nenarazili na kartu, která by nepocházela od Siemensu. Nyní je již situace lepší a jako nejvhodnější se z hlediska použití i jednoduchosti instalace jeví karty Pentanet a Skymedia. S distribucí firmy Pentamedia to bohužel není zrovna nejlepší, a proto mi nezbylo než použít kartu Galaxis (Siemens), se kterou jsem si užil opravdu hodně vášnivých chvil, viz dále. Nadále budu pro označení karet vycházejících ze Siemensu užívat název siemens s malým s.

Ovladače pro siemensy je možné získat na adrese http://www.li­nuxtv.org/dvb/si­emens_dvb.xml. Při použití je však potřeba si uvědomit celou řadu špatně dokumentovaných nebo spíše vůbec nedokumentovaných skutečností. Pro přehlednost se je pokusím vypsat v několika bodech:

  1. Nejnovější ovladače řady 0.9 mají nedostatečně zpracovanou část zabývající se datovou komunikací (module dvb_net.o), která byla oddělena od hlavního modulu, proto je není možné použít pro přenos Internetu. V praxi to znamená, že program pro inicializaci karty „dbvds“ vyžaduje volání, které mu modul neposkytne. Ralph Metlzer přislíbil někdy v budoucnu tento nedostatek odstranit, ale osobně jsem skeptický. Nic proti Ralphovi, ale kdysi i vývoj bttv ovladače zcela hodil za hlavu. Tato situace je tím horší, že pod jádrem 2.4.3 a výše již nezkompilujete jiné ovladače, než řady 0.9. Je vidět, že pro vývojáře je prioritní DVB jako přenos digitálního TV, ne jako přenos Internetu, škoda.
  2. Poslední verze ovladače použitelná pro Internetové přenosy je 0.8.2. Je možné ji použít na 2.2.x jádrech a dokonce ještě na jádrech nižších než 2.4.3
  3. Distribuce. Red Hat Linux verze 7.0 a 7.1 znamená problém. Nikomu se bez opravdu hluboké znalosti problematiky nepodařilo zprovoznit na těchto verzích ovladače siemensu. Z obliga jsou však SuSE a Mandrake, se kterými jsou problémy při zprovozňování DVB nejmenší.
  4. Po všech těch bádáních mi konfigurace běží na Pentium 120 / 48 MB RAM, DVB karta Galaxis, Redhat 6.2 (všechny opravné balíčky kromě kernelu – používám nadále 2.14), ovladač dvb verze 0.8.2.

Instalace ovladače je jednoduchá. Stačí rozbalit, vlézt do podadresáře /driver a spustit make. Trošku divnější je však zavádění ovladače, které se provádí příkazem make insmod. Všechno by však mělo projít OK a ve výpisu programu ifconfig bychom měli mít zavedeno zařízení dvb0. Síťové zařízení dvb0 musí mít IP adresu, je však jedno jakou, pokud tomu nic nebrání, můžeme nechat defaultní 192.168.4.1.

Dále musíme přidělit kartě MAC adresu podle registrace Starspeederu, což se provádí jednoduše příkazem

ifconfig dvb0 hw ether naše_MAC

Pokud se karta nenechá nastavit, musíme ji přes ifconfig dvb0 down shodit a po nastavení zase nahodit povelem  ifconfig dvb0 up

Následně nás čeká inicializace karty. K tomu slouží program dvbds, jde o modifikovanou verzi dbvbd pro účely služby Starspeeder. S inicializací karty jsem si také užil nevídané. On byl vůbec problém zjistit, že Starspeeder s původním dvbd nespolupracuje, že špatně zobrazuje frekvenci a o kouzelném šému v podobě filtru2 ani nemluvě. Konfigurační soubor dvbds.conf vypadá takto:

# DVB receiver configuration file,
# (c) 2000 data planet international
# standard location in /etc
#
# LNB power on=1/off=0
#
power 1
#
# symbol rate [symbol/sec]
#
symbolrate 27500000
#
# frequency [kHz]
#
# Euro*star TP Starspeeder
#
frequency 11632000
#
# 22 kHz signal on=1/off=0
#
ttk 1
#
# diseqc on=1/off=0
#
diseqc 0
#
# AFC on=1/off=0
#
AFC 1
#
# polarisation H=1/V=0
#
polarisation 0
#
# settings for MPE filter, PID and MAC
# filtering, valid MAC bytes type your MAC
# address instead of XX:XX:XX:XX:XX:XX
filter_2 309 XX:XX:XX:XX:XX:XX

V posledním řádku pochopitelně namísto XX:XX:XX:XX:XX:XX napíšete správnou MAC adresu.

Takže nyní můžeme přistoupit k tomu, že spustíme dvbds. Na obrazovce nám začnou běhat řádky s různými parametry. Pro nás je nejdůležitější Sync, který se musí během několika vteřin ustálit na čísle 127. Pokud tomu tak není, je problém nejčastěji ve špatně natočené parabole, viz sekce zaměření satelitu. Jakmile máme Sync 127, můžeme dvbds ukončit. Ve svém skriptu ukončuji dvbds po pěti vteřinách, což je tak akorát.

dvbds
sleep 5
killall dvbds

Kartu je nutné inicializovat přes dvbds po každém restartu (natažení ovladače dvb).

Karty Pentanet

Jak jsem již dříve uvedl, tato karta je co do instalace i použití jednodušší než siemensy. Ovladače pro Linux naleznete na stránce výrobce. Já bohužel s Pentanetem nemám žádné zkušenosti, proto nemohu sloužit.

Karty Skymedia 200Dxx

Tyto karty mají podporu Linuxu taktéž od výrobce, stejně jako je tomu u Pentamedie. Osobně nemám zkušenost, ale podle ohlasů je její zprovoznění takřka hračka v porovnání se siemensy.

VPN na Starspeeder

Tak a stojíme před posledním krokem, kterým je navázání spojení se serverem Starespeederu. PPP protokol, který naleznete v Linuxu defaultně, nepodporuje microsoftí autentizaci (MSCHAP neboli mppe), a proto je třeba ppp o tuto vlastnost rozšířit, případně stáhnout opatchovanou verzi (třeba rovnou v RPM). Že mluvím o ppp namísto pptp? To není omyl. V Linuxu dostupný pptp klient je postaven právě na balíku ppp. V odkazech na konci tohoto povídání je URL na příslušné soubory a v nich naleznete zase návod na opatchování, proto jej zde nezmiňuji.

Nyní je třeba upravit soubor /etc/ppp/chap-secrets, který by měl vypadat nějak takto:

# client    server    secret        IP
náš_úcet    VPN       naše_heslo    217.151.224.30

A konečně tunel navážeme spuštěním pptp s těmito parametry:

pptp 217.151.224.30 user náš_úcet mppe-40 mppe-128 \
mppe-stateless nodeflate nobsdcomp require-chap \
nodetach noauth refuse-pap lock &

Pokud je vše v pořádku, vytvořilo se nám rozhraní ppp0 a nyní již můžeme veškerý provoz přesměrovat na bránu 10.0.0.1 (druhá strana tunelu u Starspeederu). Naše strana VPN dostala IP adresu přidělenou VPN serverem. Nesmíme však zapomenout zanést do routovací tabulky IP adresu VPN serveru 217.151.224.30 přes naši pozemní bránu, jinak by se nám rozpadl tunel v okamžiku, kdy zrušíme původní pozemní bránu. Příklad:

route add -host 217.151.224.30 gw naše_pozemní_gw
route del default
route add default gw 10.0.0.1

Předpokládám, že adresu 217.151.224.30 Star­speeder nezmění a stále platí jako adresa VPN serveru, stejně jako platí 10.0.0.1 pro vzdálenou IP adresa tunelu. Pokud tomu bude jinak, nahraďte si tyto adresy aktuálními.

Jen tak na okraj, kdyby Vás zajímal operační systém, na kterém běží VPN server Starspeederu, vězte, že se toho času jedná o Windows 200 Professional (?!) build 2128 s těmito otevřeným tcp porty: 53, 135, 139, 445, 1025, 1026, 1030, 1723.

Vychytávky

Budete-li mít zájem dělit provoz na zahraniční (přes Starspeeder) a tuzemský (přes pozemní linku), můžete použít markování paketů v kombinaci s proxy serverem (nejlépe Squid). To znamená, že ve Squidovi nastavíme tcp_outgoing_ad­dress na VPN rozhraní, kterému přiřadíme záznam v rt_tables a necháme routovat na bránu Starspeederu. Pokud bychom podobnou vychytávku chtěli aplikovat na proxy server Oops, jedná se o direktivu nazvanou connect-from. K tomu je však nutné mít zakompilovanou podporu:

IP: advanced router
IP: policy routing
IP: use netfilter MARK value as routing key

Což nejsou zrovna běžné volby při překladu jádra. Více o markování paketů naleznete v Advanced routing howto.

Docela zajímavé je řešení založené na použití veřejných proxy serverů ze sítě IRcache. Ve Squidovi nastavíme, že zahraniční provoz (.com, .net, atd) má jít na nadřazený server ze sítě IRcache, kterému do routovací tabulky nastavíme jako bránu VPN tunel. Použití IRcache je bezplatné, nutná je pouze registrace, při které získáme heslo ke svému loginu (emailu). Tuzemský provoz necháme jít běžnou linkou.

route add -host pb.us.ircache.net gw 10.0.0.1
cache_peer pb.us.ircache.net parent 3128 3130 \
login=muj@email:heslo
cache_peer_domain pb.us.ircache.net .com .net \
.org .edu .mil

Samozřejmě, že můžete v kombinaci s kešováním nebo bez kešování použít třeba jen překlad adres (maškarádu). Použití Starspeederu není omezeno na určité služby (protokoly), takže ICQ, IRC apod. je vhodné provozovat přes maškarádu.

Další možnost je rozjet současně Squida bez satelitního spoje a Sock démona nebo další proxy server s markovanými pakety na VPN rozhraní pro satelitní stahování. Zkrátka se nám nabízí hned několik různých řešení a je na každém zvolit jednodušší nebo vychytanější.

Určitě se však kvůli zpoždění satelitu nevyplatí přistupovat na DNS servery přes VPN tunel, proto je vhodné do routovací tabulky zanést adresy DNS serverů přes pozemní spoj. Pokud z nějakého nepochopitelného důvodu přeci jen chcete přistupovat na DNS přes satelit, použijte server 10.0.0.1 (VPN rozhraní na straně Starspeederu), na kterém jeden DNS server také běží.

Problémy

Možných problémů může vyvstat několik. Nejčastěji jsou však způsobeny nekompatibilitou ovladače dvb (v případě siemensu) s verzí použitého jádra a chybami související s překladem driveru nebo příslušných programů vůbec. Tohle je každého linuxáka denní chlebíček, takže netřeba rozebírat.

Dále je třeba mít na paměti, že musíme linuxu povolit, aby přijímal pakety z jiného (dvb0) síťového rozhraní, než přes které byly vyslány (například ppp0 nebo eth0). Toho docílíme zanesením „0“ do /proc/sys/net­/ipv4/conf/dvb0/rp_fil­ter

Je nutné si také dát pozor na timeout. VPN server Starspeederu po určité době nečinnosti ukončuje spojení, takže můžete do cronu nastavit pravidelné propingnutí tunelu.

Slovo závěrem

Při rozcházení Starspeederu na siemensech jsem se skutečně dost zapotil a osobně jsem na tyto DVB karty zanevřel. Nyní se snažím získat kartu Pentanet, protože, jak jsem již uvedl výše, má podporu pro Linux od výrobce. Až se mi to podaří, rozšířím toto howto o další zkušenosti.

root_podpora

Odkazy

Snažil jsem se do textu zapracovávat co nejméně URL, protože z vlastní zkušenosti vím, že za chvilku jich polovina nebude existovat. Proto jen zde na konci uvedu adresy, na kterých byste měli nalézt zmiňované programy a jiné věci související s danou problematikou.

UBCOM CZ, s.r.o.
Starspeeder UK
EUROPE*STAR
Ovladače siemens
Karty Pentamedia
Karty Skymedia
Sat HOWTO
PPP&MSCHAP
PPtP
Hauppauge (součástí ovladačů 2.0 je dvbds)
Proxy server Squid
Veřejná síť cache serverů IRcache
FAQ IRcache
Avanced routing howto

Byl pro vás článek přínosný?

Autor článku