DIY x86 router – szabadulj fel!

A routerem története: mikor jutott először eszembe, miért, hogy és miből, hogyan valósítottam meg. – írta: haddent, 6 éve

Elkészületek

Hardveres építés
Mivel semmilyen konkrét elvárás nincs, ezért ezt nem részletezném. Érjük el, hogy 2db NIC-ünk van (magamat ismételve javasolt, hogy 2 db gigabites Intel NIC legyen!). Hogy ezek közül hány integrált és/vagy milyen, lényegtelen.

Szoftveres ellenőrzés
Ha megvagyunk a hardverrel, és feltelepítettük a Linuxot is, akkor gyorsan ellenőrizzük le, hogy minden támogatás adott-e, látja-e a kernel a NIC-eket, stb.

su root
Értelemszerűen minden parancsot root-ként kell végrehajtanunk, ezért érdemes egyből egy
$ sudo su
-val kezdeni, megadva a jelszavunkat, átlépünk rootba, vagy minden parancsot "sudo"-val adjunk meg.

NIC -ek tesztelése, beazonosítása
ip link
Parancs kiadása után valami hasonlót várunk:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 90:b1:1c:72:c2:98 brd ff:ff:ff:ff:ff:ff
3: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:1b:21:52:49:0a brd ff:ff:ff:ff:ff:ff

Ha minden jó, akkor a legtöbb disztró esetén min. 3 rekordot fogunk visszakapni, jelen esetben:
lo: loopback, saját magunk címzésére használt nem valós hardveres interfész (127.0.0.1)
eno1: 1. hardveres interfész, jó eséllyel az integrált lesz elöl, ha van ilyen
enp1s0: 2. hardveres interfész, jelen esetben ez egy PCI-e csatolón lógó Intel NIC

Ha van a gépünkben Wi-Fi kártya vagy egyéb NIC, akkor azok is meg fognak itt jelenni. Az a lényeg, hogy itt felismerjünk 2 NIC-et, amit használni fogunk: WAN és LAN. A beazonosításhoz jó ötlet lehet egyesével rádugni a NIC-eket egy DHCP szerverre (kommersz router?) és figyelni a változásokat az
ip addr
kimenetén, melyből kiolvashatjuk, hogy melyik interfész kapott címet:
3: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1b:21:52:49:0a brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 brd 10.0.0.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::21b:21ff:fe52:490a/64 scope link
valid_lft forever preferred_lft forever

A fenti kimenet-részleten láthatjuk, hogy az enp1s0 interfész kapott inet címet: 10.0.0.1.

Ha megvan mind a kettő interfész, illetve be is azonosítottuk őket, jegyezzük fel a neveiket, később fontos lesz!

Ha valamiért nem jelennek meg az interfészek, nem kapnak IP-címet a DHCP-szervertől vagy egyéb probléma merülne fel, ellenőrizzük először, hogy egyáltalán a kernel észlelte-e, hogy rá van dugva valami:
lspci | grep Ethernet
Valami hasonló lesz a kimenet:
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) (rev 04)
01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Ha nem látjuk a két kontrollert itt sem, akkor valami hardveres probléma van. Megpróbálhatjuk a következő parancsokat, de sajnos sanszos, hogy vagy nem támogatott a vezérlő vagy rossz:
modprobe e1000
modprobe e1000e

A következőkben már tényleg elkezdjük megtervezni a routert.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

  • DIY x86 gateway v2

    Két évvel ezelőtt íródott bejegyzésem folytatása, melyben lényegében ugyanazt a felépítést (router, tűzfal, gateway, VPN-szerver stb.) próbálom bemutatni egy más absztrakciós szintről.

  • Mercusys MW325R router

    A könnyű használhatóság és a szerény költségvetés miatt esett a választásom erre a filléres Wi-Fi routerre.

  • TP-Link WR741ND újraélesztése

    Avagy hogyan kell a különböző firmware-ek csereberéjével téglásított routert visszahozni az életbe?

Előzmények