És lőn router – lépésről lépésre

A router az a kis lapos izébizé, amin van sok led és villognak serényen, ha internetezik az ember a közelében.

image001Ha ezen a szinten vagy kérlek Most zárd be az ablakot. Vagy görgess tovább és olvasgass másik bejegyzést.

De tényleg.

Mindegy, én szóltam.

 

Szóval. Közvélekedés, hogy ezek a kis szappanosdobozok célszerszámok, beteszik egy halom gép elé, azt’ csodálkoznak, amikor a kis dög lefagy és vehetnek telefonos távkapcsolót/automatikus relékapcsolót/méregdrága routert/árvíztűrő tükörfúrógépet a probléma kiküszöböléséhez / stabil működtetéséhez.

 

Ha nincs kedved elverni 20-25 ezer ft-ot egy már talán jó routerért és akad otthon néhány apróság akkor az alábbi recept neked íródott. A leírás nem tartalmazza a wlan beállításokat. Én erre a célra meghagytam a régi szappanosdobozomat.

Hozzávalók

Végy

  • 1 db legalább 1G ecc rammal működő szervergépet
  • 2 db (lehetőleg már akkor gigabites) hálózati kártyát (későbbiekben interfész)
  • 1 db igényeidnek megfelelő (lehetőleg gigabites) switchet
  • Néhány csipet cat6-os hálózati kábelt (gigabit yeah)

 

Nulladik lépés – rakd össze a gépet

Az én esetemben a microserverben már volt egy gigabites hálókártya, így csak plusz egy tplink pci express csatolós gigás kártyával kellett bővítenem. Fontos ezekre a csatolókra úgy tekinteni, hogy ezek nem csak sima aljzatok, ezek interfészek, ahhoz, hogy internethez csatlakozz és valahogy eloszd több gép között is elég két interfész. Egyik interfész lesz a WAN a másik a LAN csatoló.

Ha a gép elindul telepíts egy ubuntu szervert. Futhat az oprendszer egy pendrive-ról is, de ez potenciális hibaforrás, maradj vinyónál, vagy ssd-nél.

Ha fent van az alaprendszer derítsd ki, hogy melyik interfész melyik csatoló a linux rendszerben. Debianon világ életben eth0, eth1 volt, minap mikor ezzel foglalkoztam meglepődtem, egyedi neveket szeret osztogatni az ubi.

ifconfig -a

paranccsal tudod csekkolni, hogy a gép látja-e mindkét hálókártyát. Ne tévesszen meg, lesz egy “lo” nevű is, ez egy loopback interface, a rendszer működéséhez szükséges, nem fizikai hálókártya.

Ha nem látsz két hálózati csatolót akkor gondban vagy – telepítened kell a hardverhez szükséges firmware-t.

Ebben az esetben:

lspci

Keress hálókártyára utaló sort, árulkodó jelek: RTL, Realtek, Broadcom, Gigabit ethernet, stb. Ebben a sorban kell szerepelnie egy típusnak is, például nálam:

03:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5723 Gigabit Ethernet PCIe (rev 10)

Itt keress rá google-n hátha megkérdezte már valaki, hogy hogyan kell telepíteni 🙂

Máskülönben rá lehet keresni a típusra az ubuntu repository-ban, emígyen:

apt-get update

apt-get upgrade

apt-cache search típusnév

 

Ha dobott legalább egy sort akkor olvasd el miről szól és ha úgy látod, hogy az valóban egy firmware akkor a kötőjel előtti megnevezéssel telepítsd a firmware-t (apt-get install csomagnév). Ezután jöhet egy reboot.

Első lépés – csatlakozz az internetre

Általában az angol nyelvű tutorialok a belső hálózat forwarding és dhcp beállítással szokták kezdeni, de szerintem fontos, hogy internet csatlakozással kezdjünk, mert a pppoe csatlakozású internet külön interfésznek fog látszani.

Az internetcsatlakozással ez a thread foglalkozik, érdemes ebből szemezgetni, ha az én leírásomból nem menne a dolog.

A két hálózati interfészből válaszd ki, hogy melyiket szeretnéd WAN interfésznek kinevezni.

pppoeconf

Itt be fogja kérni az internetkapcsolathoz szükséges adatokat, root jelszót az elején, meg még néhány (haszontalan) kérdést, mindegyikre mehet yes.

Ezután

pon dsl-provider

paranccsal csatlakozik a gép az internetre, ha be van dugva jó helyre a kábel és jól adtad meg az adatokat.

 

Második lépés – lokális hálózat

Itt lefixáljuk, hogy melyik a WAN  és a LAN interfész, majd a LAN interfészre DNS szervert akasztunk. Ezen leírás alapján mesélek.

nano /etc/network/interfaces

Ebben szerkessz az alábbiak szerint, nálam em1 a WAN interfész, p2p1 a LAN interfész:

auto lo

iface lo inet loopback

 

#WAN interfész – én kikommenteltem, hogy bootoláskor ne várjon dhcp szerverre

#auto em1

#iface em1 inet dhcp

#

#LAN interface

allow-hotplug p2p1

iface p2p1 inet static

address 192.168.0..1

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

Nálam még ilyet bepakolt a pppoeconf, benne hagyni érdemes:

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig em1 up # line maintained by pppoeconf
provider dsl-provider

Most pedig telepítsünk DHCP szervert – ez fog IP címet osztani a LAN interfészre lógó cuccoknak.

apt-get install dnsmasq

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old

nano /etc/dnsmasq.conf

Megnyílik editor üres tartalommal ebbe mehet:

interface=p2p1
listen-address=127.0.0.1
domain=valamilyen.domain.hu
dhcp-range=192.168.0.100,192.168.0.254,12h

Interface a LAN interfész, a domain egy tetszőleges (esetleg szerverre mutató) domain, dhcp-range pedig vesszővel elválasztva egy IP tartomány, amiből osztogatni fog a gépeknek.

Ezután engedélyezzük az ipv4 forwardingot

nano /etc/sysctl.conf

Keresd meg az alábbi sort és vedd ki előle a kommentet:

net.ipv4.ip_forward=1

Most tűzfalat konfigurálunk. A célunk eléréséhez az alábbi szükséges:

ifconfig paranccsal nézd meg van-e élő pppoe vonal, ezeknek általában ppp0 a címe, ha nem akkor helyettesítsd be a sajátodat, majd

nano /etc/iptables.rules

Szúrd be az alábbit:

*nat
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT

További route-olási szabályhoz látogasd meg a fenti általam belinkelt weboldalt.

Végezetül aktiváld a tűzfalszabályokat.

iptables-restore < /etc/iptables.rules

Ezután a LAN interfészre kösd a switch-et, majd arra a gépeket. Ekkor a gépeknek ip címet kell kapniuk és internetre kell lássanak.

 

Ezután következik egy kis mókolás. Mert újraindításkor homokszem kerül a gépezetbe.

nano /root/router.sh

Paranccsal nyiss egy editort és vésd bele a következőket

#!/bin/bash
pon dsl-provider;
iptables-restore < /etc/iptables.rules;

Adjunk futtathatósági jogot a fenti script-re:

chmod +x /root/router.sh

Majd telepítsünk webmin-t…:

cd /tmp

wget http://heanet.dl.sourceforge.net/project/webadmin/webmin/1.780/webmin_1.780_all.deb

dpkg -i webmin_1.780_all.deb

apt-get -f install

Ha megvagyunk akkor a LAN-ra dugva https://192.168.0.1:10000/ címre ugorjunk, adatriasztási izébizén lépjünk tovább, jelentkezzünk be root felhasználónkkal. Ezután baloldalt System lenyit majd “Scheduled Cron Jobs”. Fent “Create a new scheduled cron job”.

Itt az űrlapon kitölteni:

Execute…: root

Active? Yes

Command: /root/router.sh

Minden mást úgyhagy, lent create gomb. Ez egy igen szépen elnagyolt megoldás, a scriptünkkel a szerver minden percben csatlakozni akar majd az internetre.

Erre az elmebeteg megoldásra azért van szükség, mert…:

  • A gép bekapcsolásakor hajlamos nem kapcsolódni automatikusan pppoe internethez
  • Mivel nem kapcsolódik nincs ppp0 interfész
  • Mivel nincs ppp0 interfész így az iptables-be tett route-olás nem történik meg
  • Ha megszakad a vonal bármi miatt 1 percen belül újrakonfigurálja magát

 

Ééés íme kész a stabil házi routerünk.

Wifiről az elején is írtam – nem teszek említést. Egy N-es szabványú normális 3 antennás kártya nem olcsó mulatság, én a switch egyik lábára akasztottam a régi routert wifi broadcastolás miatt, mobilhoz, tablethez, apró böngészgetéshez bőven elegendő.

 

Mire jó ez az egész?

  • Alacsonyabb ping-em van (torrent mellett)
  • Megspóroltam egy normális gigabites router árát
  • Úgy konfigolom ahogy akarom
  • A storage szerverem jelen esetben a router szerverem, a legnagyobb adatforgalmat ő viszi el, így a belső hálózat nincs terhelés alatt
  • Just for fun 😀

 

Remélem tanulságos volt, hiba, észrevételt kommentekben várom!

SSHFS party gigabites vonalon

Damaged-Wire-FireA történet úgy folytatódik, hogy az itthoni HP microserveremből gigabites routert varázsoltam.

Szóval a gép most:

  • Storage szerver
  • Plex médiaszerver
  • Gigabites router (erről egy másik posztban írok)

 

Vettem a kütyübazár című izén…weboldalon…(ebay cache?)…webshopon egy USB 3.0 csatlakozású Gigabit ethernet adaptert ~5000 ezer pénzért. Mivel laptop az laptop és direkt is és praktikussági okokból sem tárolok rajta sok/minden adatot így érthető, hogy a storage szerverrel szoros kapcsolatba szerettem volna maradni. Azért sshfs-re esett a választásom, mert hordozható, itthon és távolról is egy háttérben futó virtuális gép segítségével el tudom hitetni a Windows-zal, hogy samba megosztáson van itt mellette egy nagy tárolókapacitású gép, még akkor is, ha csak mobilneten vagyok a világ végéről.

Tehát a usb-ethernet kártya boldogan – bár szkeptikusan – kicsomagol, bedug, a cucc működik. Nem hoz 1000 mbitet, jó az 700-800 Mbitnek is, de egyből jobb, mint 90 megabittel tötymörögni.

A pofáraesés az volt, hogy az átviteli sebesség továbbra is 9 mb/s volt átlagban. Próbáltam filezillával, belső ip címet használva, egyből hasított. Ekkor két dologra gyanakodtam: mindig a külső webcímen csatolom fel a storage szervert, így itthon is a WAN interfészen keresztül botorkáltak az adatok, az sshfs kliensem nem tudta, hogy helyben van a szerverem és maradjanak a csomagok LAN-on. Ennek érdekében beállítottam a routeremben, hogy a DNS szervere az én külső webcímemet a LAN-on csücsülő ip címre oldja fel.

Újabb teszt következett – minimális eredmény, még mindig messze az igazitól.

Ezután ránéztem a szerver és a laptop processzorterheltségeire, kiderült, hogy ami korábban preferált volt az most hátránnyá vált – a -C kapcsolóval tömörítettem az adatfolyamot és ezzel egyidőben ezzel a sávszélességgel meg is fogtam a storage szerver egyik processzormagját. Így a -C kapcsolót kivettem. A javulás jelentős volt.

De még mindig messze álltam az igazságtól. Ekkor jött gugli és egy kis unszonlás hatására választ adott. A válasz ezen az oldalon olvasható – elfelejtkeztem arról, hogy az sshfs lényege és nagyszerűsége néha pont a hátránya – az adatfolyam titkosítása (amire szükségem is van) gyakorlatilag limitálja a sávszélességet.

Megoldást a -o Ciphers=arcfour kapcsoló jelentette.

Tehát most egy sshfs kapcsolódásom:
sshfs -o allow_other,default_permissions -o IdentityFile=/home/winben/identityfájlom winben@szerverem.hu:/home/winben /home/winben/home -o reconnect -o Ciphers=arcfour;

 

Kellemes száguldozást mindenkinek!

Biztonsági öveket becsatolni 😀

Fusion Drive Windows módra

Seagate_Laptop-SSHD-image-1Régóta idegesített már, hogy van egy 60 gigás ssd-m, amin a Windows és néhány barátja féktelenül dorbézol (és a teljes rendelkezésre álló területet kitölti) és nem tudom azt eléri, hogy maguk a fájljaim gyors elérésűek legyenek és hatékonyan működjön a rendszer, mert mindent az ssd mellé, a vinyóra kell pakolnom, így tennem kellett valamit (csak ezért meg nagyobb ssd-t vegyen az, akinek Imre az anyja).

Mac gépeknél létezik egy külön fogalom, PC-knél pedig állítólag az sshd volna ez, nekem meg van a laptopban egy 750G HDD és egy 60G ssd, mi a francot kezdjek.
Láttam, hogy intel ssd-hez van kiadva egy szoftver, ami cache-nek használja az ssd-t, én pontosan ezt szerettem volna elérni, csak már egy régibb OCZ Agility 3 meghajtóval.

Szóval túrtam a netet és a hőn keresett választ megleltem – van egy csalafinta program, ami lényegében beékelődik a rendszer és a közvetlen diszk közé és magukat a blokkokat cache-eli használat közben.

Ennek neve a Primo Cache, mely 60 napig ingyenesen kipróbálható, egyébként 8000 ft körül áron megvehető. Két opciót is rendelkezésünkre bocsát a program:
* non perzisztens cache ram-ba (L1)
* perzisztens cache egy másik meghajtóra (L2)

Röviden az egész úgy működik, hogy a gyakrabban/legutóbb használt blokkokat beírja a gyorsítótárba, majd a legközelebbi olvasáskor már csak oda nyúl érte.

Szerintem ram-ba menteni ezeket sok értelme nincs, de ssd-re már (mégha nem is kifejezetten kíméli a meghajtót) perzisztensen tárolja az adatokat, ami annyit jelent, hogy újraindítás után sem kapar sokat a disk, szépen hozza az ssd által nyújtott teljesítményt.

Külön füszerezésként (annak, aki szeret veszélyesen élni, és tudja hol szeret a cápa) lehet írást + olvasást is cache-elni perzisztensen az ssd-n. Ahogy figyelem nagyon-nagyon ritka, hogy a gép azon dolgozna, hogy valamit éppen kivakarjon a HDD-re, de ha mégis némi torlódás keletkezik sem áll meg az élet.

1 napja használom még, de ígéretesnek tűnik a dolog – szóval aki eddig fogta a fejét, hogy C: vagy D: meghajtóra telepítsen-e valamit akkor annak jó próbálkozást tud nyújtani a kis program.

Jó szórakozást!

Repost: a Windows 10 visszavág

Annyit nyávognak jutbobon és mindenhol máshol, hogy válts win 10-re, eddig bőszen kitartottam. Aztán volt egy kis ráérős időm, dd-vel lementettem az ssd-m lemezképét és próbaképp egy szűz telepítéssel feltoltam a win10-et.

Azért választottam a nulláról való telepítést, mert a frissítésekkel eddig tapasztalataim szerint mindig csak a baj van, továbbá tele volt a 60 gigás ssd valamivel, múltkor kis hack-ek miatt szanaszét hullott a rendszer frissítés után (ramdisk miatt pl) így gondoltam egy életem egy halálom, kezdjük a rajtvonaltól.

Nézzük először azt, hogy mik is voltak a bajaim tavaly augusztusban a frissen kiadott rendszerekkel.

  1. Lassú, vagy nem működő start menü kereső
    a probléma megoldódott, ugyanúgy működik, mint 8 alatt
  2. Fájlelőzmények
    Fura módon a metrós-ablakos app megnyitáskor egyből bezáródik abban az esetben, ha épp mentést készít a rendszer, de maga a funkció már működik pont annyira, mint a windows 8-ban.
  3. A lassú rendszerindítás nem jellemző, igaz, minden frissen telepített rendszer gyors még eleinte.
  4. A lemezindexelő szolgáltatás, az explorer.exe lehalása és spontán program el nem indulások, hangok pattogása megszűnt
  5. Ki lehetett kapcsolni a OneDrive-ot! 😀

Ami tetszik:

  1. Kicsit amolyan flat design-ra hajaz a megjelenés, dizájnban kb akkora az ugrás, mint mondjuk android 4.4 és 5.0 között. Van, de nem akkora, hogy megcsókolnám érte a képernyőt.
    Kiemelném külön az ablakok nagyításkori animációját – felesleges csicsának tűnik a dolog, de valamiért kellemesebb a szemnek.
  2. 720p monitoron egy fokkal használhatóbbak az ikonok. Nincsenek felesleges pixeleket elfoglaló szegélyek, vagy bazi nagy ikonok. 1080p monitoron pedig kész kánaán van.
  3. Tetszik a régi rendszerüzenetes buborékot kiváltó értesítési sáv. Androidból lopták az ötletet, de végre legalább van. Nem bántam volna, ha csak fehér/fekete buborék helyett valami interaktívabb megoldást találtak volna ki, de ez már jó kezdet.
  4. Start menü
    Vagy mi a túró. Vége a fullscreen-es őrületnek
  5. Csendes háttérben futó rendszerfrissítések. Gép használat közben egyszer csak felbukkan egy értesítés, hogy “frissítéseket telepítettünk” és ennyi. Nem zaklat/zsarol/fenyeget újraindítással.

Amit észrevettem:

  1. Több ramot eszik. Alap dolgok megnyitva és 1 napos használat után 8.8 giga ram foglalt. És még el sincs indítva a munkához a fejlesztőkörnyezet.
  2. Még mindig kettős személyiséget alkot maga a rendszer a metrós és nem metrós appok között. Az alap dolgokat be lehet állítani a metrós appokban, de ha valami speciálisabb van egyből átirányít a régi megszokott vezérlőpult jellegű rendszerbe. Ez olyan érzés, mintha fogták volna a win7-et, csináltak volna egy api-t a rendszerbeállításokhoz és felvettek volna x gyakornokot, akikkel betanítás jelleggel megcsináltatták volna ezeket a kezelőszerveket. Merthogy valami csak a régi felületen állítható, valami csak az újon, valami meg mindkettőn. So logic.
  3. Furcsa dolog és nem egzakt megállapítás, de kevesebbet zúg a gép ventilátora. Valahogy eléri a rendszer, hogy kevésbé melegedjen az alap használat közben.

Ezért érdemes sshfs-t -C kapcsolóval használni

1445465012_Database-CloudVan ugye az a protokoll – remélem ismerős -, hogy “sftp”. Tegyük fel, hogy van egy linuxos adattároló szervered és egy linuxos géped. Közvetlen fel tudod csatolni sshfs-el a távoli gép valamely mappáját, ha van rajta unix felhasználói fiókod és hozzáférésed.
Namost az sshfs-nek van egy -C, mint compression kapcsolója, ami a két gép közötti átviteli sebesség növelésében játszhat szerepet, mivel a két gép közötti adatfolyamot képes tömöríteni. Ehhez persze némi processzor kell mindkét oldalon, de egy HP microservernek sem konnyan meg a dolog (nálam az érintett adattároló gép).
Tehát ha linuxot használsz az alábbi paranccsal felcsatolhatod a távoli gép könyvtárát a helyi gépedre:

 sshfs -o allow_other,default_permissions -o IdentityFile=/helyi_szerver/publikus_kulcs winben@szerverem.hu:/tavoli_szerver/csatolasi_pont /helyi_szerver/csatolasi_pont -C -o reconnect;

 

Mi az eset akkor, ha Windows használok?

Igen, sokan vagyunk így, kipróbálhatunk egy csomó sshfs-t megvalósító alkalmazást. Ilyen a fizetős expandrive, vagy az ingyenes win-sshfs.

Részemről egyik sem nyerte el a tetszésemet többek között azért, mert instabilak voltak, suttyomban a program files-ba cache-eltek és nem is a valós állapotot mutatták sokszor…és legfőbb problémám volt, hogy láthatólag egyik sem szolgált a tömörítős megoldással, ami miatt (vagy még mellett) dög lassú volt az adatátvitel.

Nos, ha van egy kis memóriád fölösen a gépben akkor van egy szuper jó hírem – a probléma baromi jól orvosolható.

  1. Készíts egy linuxos virtuális gépet localhoston, ami NATolva csatlakozik a hálózatra, tehát a te géped oszt neki IP címet.
  2. Ha megvan a telepítés csatold fel a távoli mappát a virtuális géped egy helyi mappájába.
  3. Ezután telepíts sambát a virtuális gépre és oszd meg a felcsatolt mappa tartalmát.
  4. Tallózd be Windows Intézőben a sambán megosztott tartalmat és örülj. Az adatátvitel gördülékeny lesz és megfelelő tartalom esetében gyors.

Ha olyan kontentről van szó, ami jól tömöríthető akkor sokszoros sebességet érhetsz el “logikailag”, mint egyébként “fizikailag”, tehát a fizikai vonalon.

 

Bizonyításként hadd mutassam a feladatkezelőmet:

aa99259e10b2a668d37f45b32ea9d906

Itt éppen egy lemezképfájlt másoltam. A képen az látható, hogy a Total Commander 176 Mb/s-al tölti felfelé az adatot, a VMware NAT Service pedig a virtuális gépet jelképezi és látszik, hogy 47,5 Mb/s a “fizikai” adatfolyam. Tudni kell azt is, hogy a mérés idején a laptopom céges wifi routerre volt csatlakozva vezetéknélküli hálózaton és nem egy irodában lévő másik gépre, hanem az otthoni szerveremre tolta át az adatot – ennek köszönhető, hogy csak ~50 Mbit környékén történt az adatátvitel. A másolás idején 50-70% között volt a 1.5 GHz-es HP microserverem cpu terheltsége (mivel kétmagos így 200%-ból), és 0,93-as volt a 15 perces átlag load.

 

Akik kicsi internetsebességgel rendelkeznek (100 Mbit alatt) és távoli szerverre dolgoznak bőven megfelel és tűrhetően is működik az ExpanDrive. Ha viszont helyi 100 megás hálón (vagy azzal egyenértékű neten) szeretnénk Windows-on sshfs kapcsolódást érdemesebb efféle perverzióhoz folyamodnunk.