Ethernet, bridging, switching, routing és a Linux router táblája

Először beszélnünk kell arról, hogy mi az az Ethernet. Az Ethernet a LAN (Local Area Network – helyi hálózat) hálózatokra kidolgozott szabvány. Működésének lényege, hogy hallgatózik az összes résztvevő, és ha “csend” van, akkor küldik az adatokat. Beszélünk ma 100 MBit-es (megabit per másodperc) Ethernetről és GBit-es (gigabit per másodperc) Ethernetről is. Ez az elméleti átviteli maximum, tipikusan a 66%-át lehet elérni rajta. 🙂

https://hu.wikipedia.org/wiki/Ethernet

Ez az a hálózat, ami otthonunkban, munkahelyünkön vagy akár egy kórházban használatos. Van az ún. CAT5-ös kábel, ez a 100 MBit/s -os átvitelhez szükséges UTP (Unshielded Twisted Pair – árnyékolatlan csavart érpár) kábel. Azért csavart – és ez már fizika a javából -, mert így kiegyenlítődnek rajta a zajok. Azért 230-as kábeltől a falban legalább 30-40 centiméterre illik vezetni, tipikusan kábelcsatornában. Plusz feladat, hogy mi az a patch- és a keresztkábel. 🙂

https://hu.wikipedia.org/wiki/UTP

Aztán a hálózati rétegek az ISO-OSI modellből. A 2-es, adatkapcsolati rétegen dolgozik a bridge és a switch is (ha nem layer 3 switch). A router pedig a hármas, hálózati rétegben. A bridge-ek hálózati szegmenseket kötnek össze, MAC-táblát tartanak nyilván. Hasonlóak a repeater-ekhez, bár ez utóbbiak csak jelismétlők (erősítők), és nagyobb távolágok áthidalására használják őket. Az UTP ugyanis 100-120 métert tud csak! A switch-ek több portos bridge-eknek tekinthetőek. 🙂

https://hu.wikipedia.org/wiki/Switch_(informatika)

Linux-unkkal akár bridge-elhetünk, akár switch-elhetünk, sőt még route-olhatunk is! Csak megfelelő interfészeket kell a “dobozba” tenni. A gyakorlatban egyébként ez is történik, csak kész eszközöket használunk, amik azért kisebbek egy PC-nél, és kevesebbet is fogyasztanak. Belsejükben Linux dolgozik. 🙂

Az én itthoni hálózatomban egy kábelmodemből egy router-be érkezik a jel. A router GigaBit-es Ethernet interfészekkel, két sávú WLAN-nal (vezeték nélküli hálózat) rendelkezik. Az egyik helységben van egy switch is, ami elosztóként működik, akár egy 230 V-os elosztó. 🙂 Van még egy konnektorba dugható picike Wi-Fi lefedettség növelőm, az emeletre – és nagyjából ennyi. Asztali gépek, hordozható számítógépek, tabletek, okostelefonok és az aktív és passzív hálózati eszközök (kábelek). 🙂

Összességben elmondható, hogy a Layer 2-es eszközök fizikai, Ethernet MAC-cím (Media Access Control) alapján végzik az összekapcsolást, a router-ek pedig IP-címeket adnak, tipikusan DHCP-vel (Dynamic Host Configuration Protocol), azaz automatikusan kiosztanak minden hálózati résztvevőnek egy (helyi) IP-címet, továbbá a Layer 3-ban “operálnak”. Ha megnézzük a tegnapi írást a hálózatról és az IP-címről, akkor volt ott egy ifconfig parancs, ami kíírta, hogy a Wi-Fi interfésznek “ether 5c:e0:c5:5d:e2:01” a fizikai, gyárilag beállított címe. Ez a MAC-cím. 🙂

https://hu.wikipedia.org/wiki/MAC-c%C3%ADm

Nézzük meg ezek után a Debian 10-es Linux-om router tábláját. Ezt root-ként (rendszergazdaként) érhetjük el, a route paranccsal. Mára jobbára automatikusan beállítódik minden Linux-on.

root@gergo1:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 600 0 0 wlp2s0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0

Látható a cél, a gateway, a netmaszk, pár adat és az interfész. Ami itt van az egy “sima” hálózatba kötés, Wi-Fi-n keresztül. A netmaszkról lehetne beszélnünk. Binárisan ÉS kapcsolattal az egy IP-alhálózathoz való tartozást fejezi ki, egyszerűen hozzá kell ÉS-elni az IP-címhez. A gateway-ról is szóljunk. Ez nem más, mint az átjárónk, azaz a router-ünk. IP-címe jelen esetben 192.168.0.1. Ezt ki is deríthetjük egyrészt a route -n, másrészt a traceroute parancs kimenetéből – miután apt-get install paranccsal felinstalláltuk. Keressük meg tehát a nic.bme.hu-t, a BME elsődleges DNS szerverét (Domain Name System). 🙂

root@gergo1:~# traceroute 152.66.115.1
traceroute to 152.66.115.1 (152.66.115.1), 30 hops max, 60 byte packets
1 _gateway (192.168.0.1) 7.562 ms 7.526 ms 7.575 ms
..
7 tg0-2-0-3-1110.rtr.bme.hbone.hu (195.111.103.205) 22.009 ms 25.032 ms 25.496 ms
8 xge0-0-0-0.rax.net.bme.hu (152.66.0.124) 32.333 ms 32.308 ms 32.283 ms
9 hge1-0-49.rio.net.bme.hu (152.66.0.67) 26.305 ms 27.216 ms 26.405 ms
10 nic.bme.hu (152.66.115.1) 29.336 ms 29.489 ms 30.286 ms

A DNS egyébként a névfeloldást végzi az Interneten. Egy szervernévhez szolgáltatja a hozzá tartozó IP-címet elosztott adatbázisból.

Általában igaz, hogy egy számítógép hálózatba kacsolásához IP-cím, netmaszk (ebből jön a hálózat-cím, ÉS kapcsolattal), a gateway és egy-két DNS-szerver szükséges. 🙂

Hálózat, IP-címek

A tegnapihoz tartozok még egy magyarázattal. A hálózati szereplőknek egyedi címük van, úgynevezett IP címük. Ez a korábban említett IP protokoll a TCP/IP-ből, az ISO-OSI modell harmadik, hálózati rétegéből.

A világot korábban az IPV4 szerint osztották fel. Az egyetemek többek között úgynevezett autonóm zónákat kaptak. A BME például a 152.66.XXX.XXX úgynevezett B osztályú hálózatot. Azért B osztályú, mert az az első két szám kitöltött, és 256×256 számítógépnek van rata hely. 4 oktet. 4 byte-os cím. Vannak A osztályú, illetve C osztályú hálózatok is ezen terminológia szerint. 🙂

https://hu.wikipedia.org/wiki/IP-cím

http://www.vlsm-calc.net/ipclasses.php

Egy idő után azonban kifogytak ezek az IPV4-es címek, ezért van mára IPV6. Ez jóval több számítógép világhálóra (Internetre) kötését teszi lehetővé. Az IPV6 címek 128 bit hosszúak. Ez sose fog kifogyni, pláne, hogy jelenleg is ún alhálózatokba vannak szervezve a gépek, ahol az egyes végpontoknak pl. egy kábel-hálózatnál csak belső IP-címük van – ezért nem lehet az otthoni gépből többek között webszervert csinálni. Elvileg az adatátviteli technológia szimmetrikus is lehetne, de erősen a letöltési sávszélesség nagyobb az otthoni gépünkön. A sok-sok web, játék és egyéb szervert az úgynevezett “gerinchálózatra” kötik, “szerverfarmokon”. Jelenleg egyébként a két címzési mód keverve van jelen a világban. 🙂

https://hu.wikipedia.org/wiki/IPv6

Ezek után nézzük meg a Debian 10-es Linux-unk hálózati interface konfigurációját. Az ifconfig paranccsal írhatjuk ki a hálózati interfészeinket root-ként (rendszergazdaként). Régebben a hálózatot manuálisan kellett beállítani, ma már pl. az otthoni wifi hálózatot teljesen automatikusan konfigurálja a rendszer. 🙂

root@gergo1:~# ifconfig
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 27044 bytes 2149063 (2.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27044 bytes 2149063 (2.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163 mtu 1500
inet 192.168.0.173 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::60da:3b20:dfeb:9fe0 prefixlen 64 scopeid 0x20
ether 5c:e0:c5:5d:e2:01 txqueuelen 1000 (Ethernet)
RX packets 1241841 bytes 1315097554 (1.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 593763 bytes 132026415 (125.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Jól látható a wlp2s0 interface konfigurációja, a “lo” – localhost, konfigurációja után. A belső hálózati IP-címünk a 192.168.0.173. 🙂