Bargel Bulcsú

Szakmai blog

Hálózati Interfészek Konfigurálása Linuxon

| Hozzászólások

A hétköznapi életben a legtöbb időt valamely Linux disztribúció előtt töltöm el, ha éppen gépközelben vagyok. Jó pár éve nem használok saját célra asztali gépet, mert laposra cseréltem a hordozhatóság miatt. Számomra egy jól konfigurált és átlátható otthoni hálózat is fontos, kezdve a logikai címzésnél és át a biztonságon. Ráadásul a mobilis eszközöknek van egy olyan velejárója, hogy az ember cipeli őket magával. Itt jön elő az a probléma, hogy bizony az interfészeket be kell állítani az adott hálózathoz mérten, amiről tulajdonképpen ez az írás szólni szeretne.

Korábbi ISR eszközömön (Integrated Services Routers, közérthetőbben: router) nem volt lehetőségem statikus DHCP-vel egy géphez egy adott címet automatikusan kiosztani, de jó lett volna mindig fix címmel mozogni a hálózaton a többi kliens érdekében (értsd: webszerver a gépemen, minecraft szerver stb.). Így csak odaszóltam, hogy fut és már csatlakozhattak is az otthoniak.

A lényeg, hogy kliensgépként is rengeteg lehetőséged adott, akár ideiglenesen, akár végérvényesen szeretnéd midezeket megtenni a hálózati interfészek beállásánál.

Ideiglenes címváltoztatás ifconfig segítségével

Itt kezdeném a sort, mivel az ifconfig kimenete paraméterek nélkül információkat szolgáltat az interfészekről.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
eth0      Link encap:Ethernet  HWaddr 11:22:33:44:55:66
          inet addr:192.168.2.53  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::5a94:6bff:fe55:4934/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:4099390 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2496073 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Memory:f6900000-f6920000 
          
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:22754 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22754 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2569958 (2.5 MB)  TX bytes:2569958 (2.5 MB)

Nemes egyszerűséggel megtekinthetjük az aktív interfészekről kívánt információkat a -a kapcsolóval, de konkrétan szűkíthetjük azt az eszköz nevével.

1
2
$ sudo ifconfig -a # aktív interfészek
$ sudo ifconfig eth0 # első ethernet interfész

Egyszerűen le- és visszakapcsolhatjuk a kívánt interfészeket is. (Innentől root jogokra lesz szükségünk!)

1
2
$ sudo ifconfig eth0 up # első ethernet interfész felkapcsolása
$ sudo ifconfig eth0 down # első ethernet interfész lekapcsolása

Nos, akkor állítsunk is azon az interfészen. Fontos, hogy ezek a beállítások elvésznek újraindítást követően. Hosszas használat esetén ajánlott tovább olvasni!

1
2
3
4
$ sudo ifconfig eth0 192.168.2.2 # beállítjuk az IP címet
$ sudo ifconfig eth0 192.168.2.2 netmask 255.255.255.0 # alhálózati maszkkal
$ sudo ifconfig eth0 192.168.2.2/24 # alhálózati maszkkal másképp
$ sudo ifconfig eth0 192.168.2.2 netmask 255.255.255.0 up # egyből fel is kapcsoljuk

192.168.2.2 az IP cím és a /24 szolgál az alhálózati maszk azonosítására. (24 bit a hálózaté, tehát ebben az esetben 3 oktett csupa egyes, azaz 255)

  • 255.255.255.0 → /24
  • 255.255.0.0 → /16
  • 255.0.0.0 → /8

Annyi a bökkenő ennél az esetnél, hogy az alapértelmezett átjárót nekünk kell külön megadni:

1
$ sudo route add default gw 192.168.2.1 eth0

Hálózati interfészek tartós konfigurálása

Ebben a fejezetben arról írok pár sort, hogyan lehet végérvényesen hozzárendelni egy-egy interfészhez a beállításainkat. Ez azon a ponton jelentős, hogy több helyen is használtam huzamosabb ideig a Wi-Fi hálózatot párhuzamosan, és az igényeimnek akkor is a statikus címkiosztás felelt meg, mely nem volt garantálható minden eszközön. Így magam oldottam meg a problémát.

Szerkesztjük a tetszőleges szerkesztővel root jogokkal
1
/etc/network/interfaces

Nézzünk is egy általános beállítást, ahol már az alapértelmezett átjárót is meg tudjuk adni.

1
2
3
4
5
 auto wlan0 # kapcsoljuk fel automatikusan
 iface wlan0 inet static # statikusan konfiguráljuk
     address 192.168.2.2 # IP cím
     netmask 255.255.255.0 # alhálózati maszk
     gateway 192.168.2.1 # átjáró

Ettől függetlenül még van egy statikus konfigurációnk, ami nem éppen dinamikus, ahogyan említettem, ez nem állná meg a helyét két aktív hálózaton, melyek eltérő konfigurációval rendelkeznek. Nos, erre is van megoldás. Kihasználjuk a wpa-roam opciót. Mivel ez a blog nem éppen egy man page, álljon itt inkább a példám.

wpa_supplicant .conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
network={
        ssid="Osztály"
        id_str="iskola"
        key_mgmt=NONE
        }

    network={
        ssid="Otthon"
        id_str="home"
        psk=2b9d65f8d883782950a8cec0f27c3116b2ac2835fca1cfa288921b33e9ac42e8
        }

    network={
        ssid=""
        key_mgmt=NONE
        }

Könnyedén generálhatunk ilyen konfigurációkat a következőképpen:

1
2
3
4
5
6
$ wpa_passphrase SSID_neve jelszo_a_halozathoz
network={
  ssid="SSID_neve"
  #psk="jelszo_a_halozathoz"
  psk=2b9d65f8d883782950a8cec0f27c3116b2ac2835fca1cfa288921b33e9ac42e8
}

Ezután visszatérhetünk az interfaces konfigurációs fájlunkhoz, és állítsuk manuálisra az interfészünket, adjuk meg a wpa_supplicant.conf fájlunkat és máris beállíthatunk mindent nevesítve, ahogyan szeretnénk.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
iface wlan0 inet manual
   wpa-driver wext
   wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

  iface default inet dhcp

  iface iskola inet static
          address 192.168.2.150
          netmask 255.255.255.0
          network 192.168.2.0
          broadcast 192.168.2.255
          gateway 192.168.2.1

  iface home inet static
          address 192.168.1.100
          netmask 255.255.255.0
          network 192.168.1.0
          broadcast 192.168.1.255
          gateway 192.168.1.254

Látható tehát, hogy a felhasználó ezek után észre sem veszi majd, hogy másik hálózathoz csatlakozott és ráadásul azt a címet is kapja, amit szeretne úgy, hogy nincs függésben a hálózat konfigurációjával.

A bejegyzés a teljesség igénye nélkül készült, sok minden nincs megmagyarázva, rengeteg lehetőség nincs kifejtve. Útmutatásnak szántam első soron, kérdésekre válaszolok, ha tudok.

Hozzászólások