Ennek a kis leírásnak a címe szólhatott volna úgyis, hogy BSD hálózatkezelés, ám a helyzet az, hogy a FreeBSD egy kicsit más szemléletet követ hálózatkezelés (IP beállítás, routing,s tb. )terén, mint két testvére, az OpenBSD és NetBSD. Ez nem jelenti azt, hogy bonyolultabb volna mindezeket beállítani, egyszerűen csak: más. Nézzük meg, hogyan is történik ez!
FreeBSD hálózatkezelés
Természetesen itt is működnek a UNIX vagy Linux világában megismert parancsok, melyekkel informácókat szerezhetünk a hálózati beállításokról:
# ifconfig
Egy szokványos ifconfig parancs a fenti kimenetet fogja nekünk adni. Láthatjuk, hogy van egy em0 és lo0 interface-ünk, kitalálható, hogy az em0 a hálózati kártyát, a lo0 pedig a localhost. Az em0 interface-nek pedig van egy konfigurált IP címe is, mely statikus,tehát kézzel állítottuk be. Honnan tudhatjuk ezt? FreeBSD esetén hiába keressük a pl. Solaris vagy OpenBSD esetén megszokott filet az /etc könyvtárban, ami /etc/hostname.<interface><interface number> formátumú. Itt ugyanis, kicsit külön, ám nem kényelmetlen módon a /etc/rc.conf fileban találhatjuk meg a hálózati interfacenk konfigját.
# cat/etc/rc.conf
Ide pontosan úgy írhatjuk be a változó értékét, ahogyan azt kiadnánk parancssorban is, az egyetlen különbség, hogy az ifconfig és az interface neve között szóköz helyett alávonás lesz.
freebsd# ifconfig em0 inet 192.168.55.22 netmask 255.255.255.0
Egyszóval, bármiféle hálózati konfiguráció, melyet újraindítás után is szeretnénk aktiválni, ebbe a fájba fog kerülni, az egyetlen kivétel a DNS szerverek konfigurációja, mely itt is hagyományosan a /etc/resolv.conf filebe fog kerülni.
IP alias:
Mi a teendőnk, amennyiben egy meglevő hálózati kártya meglevő IP címe mellé IP aliast szeretnénk beállítani? Nagyon egyszerű: adjuk ki a következő parancsot!
freebsd# ifconfig em0 inet 192.168.55.23 netmask 255.255.255.0 alias
Az IP alias máris aktív. Ha ezt szeretnénk eltávolítani, akkor sem kell kétségbe esnünk:
freebsd# ifconfig em0 inet 192.168.55.23 netmask 255.255.255.0 –alias
És az IP alias eltávolítva. IP aliast természetesen többet is adhatunk egy adott interface-hez. Ha szeretnénk, hogy ez újraindítás után is aktív legyen, akkor itt is a már megismert /etc/rc.conf fileba fogjuk írni, így:
Így reboot után is aktiválódni fog az IP alias. Ha az /etc/rc.conf-ba írjuk ezt be, akkor újraindítás nélkül a következő paranccsal aktiválhatjuk ezt:
freebsd# /etc/netstart
Ez, mint fentebb látjuk újraindítja a hálózatot, beleértve a route táblát is. Ha csak az interfaceket szeretnénk, akkor a
/etc/rc.d/netif restart ill. ha csak a routingot akkor: /etc/rc.d/routing restart
Routing
Mi a helyzet a routinggal? gateway nélkül nem lesz internet, erről is kell tehát szólnunk. Itt most csak a static routingról írunk, ámbár, megérne egy misét, hogy hogyan tudunk egy BSD-ből egy multi-interface-s dinamikus routing protokollt is használó routert építeni…hm, ki tudja, talán egyszer 🙂 Nézzük most a static routingot és gateway kezelést.
Adjunk egy alapértelmezett átjárót a hálózati konfighoz:
# route add default 192.168.55.1
Lehetne ennél egyszerűbb? Nézzük meg, sikeres volt-e ?
Szóval igen. Mi a teendő, ha ezt szeretnénk rendszerindítás után is ílyennek látni? A már megismert /etc/rc.conf-ba írjuk be, a következőképpen:
És reboot vagy /etc/rc.d/routing restart máris él a default gatewayunk. Mi van akkor, ha szeretnénk custom routeokat is alkalmazni?
freebsd# route add -net 192.168.2.0/24 192.168.55.1
Ha pedig szeretnénk ezt is automatikussá tenni, akkor az rc.confba írjuk, így:
DHCP:
Ha DHCP-től szeretnénk IP-t kapni, akkor a dolgunk mindössze annyi, hogy az rc.conf-ot a következőre módosítjuk:
Majd a hálózat újraindítása után ennyit: #dhclient em0 (vagy reboot).
És megkaptuk az IP-t.
Nézzük még meg, hogy a hálókártya duplexitását hogyan tudjuk kézzel állítani:
VLAN konfiguráció:
Ez vlan interface beállításával történik:
freebsd# ifconfig vlan0 create
freebsd# ifconfig vlan0 192.168.55.24 netmask 255.255.255.0 vlan 1 vlandev em0
Permanenssé tétele (bejegyzés az /etc/rc.conf fileba):
Ha pedig nincs vlan-ra tovább szükségünk, akkor:
# ifconfig vlan0 destroy
Hálózati forgalom monitorozása:
# tcpdump –i em0 –v[n] (az –n kapcsolót használva nem próbálkozik reverse névfeloldással)
Összegzés:
Szerintem a FreeBSD (de általában is a BSD) hálózati konfigurálása nagyon egyszerű és letisztult. A konfigurációs fileban jól követhetően, logikusan szerepelnek a megfelelő bejegyzések.