É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!