Szerkesztő:RostásAttila

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
164. sor: 164. sor:
   
 
Felhasznált irodalom:
 
Felhasznált irodalom:
- Andrew S. Tanenbaum: Számítógép hálózatok
+
* Andrew S. Tanenbaum: Számítógép hálózatok
- Karen Webb: Building Cisco Multilayer Switched Networks (103. oldal *)
+
* Karen Webb: Building Cisco Multilayer Switched Networks (103. oldal *)
- http://en.wikipedia.org/wiki/VLAN
+
* http://en.wikipedia.org/wiki/VLAN
- http://ebtables.sourceforge.net/brnf-faq.html
+
* http://ebtables.sourceforge.net/brnf-faq.html
- man vlan-interfaces
+
* man vlan-interfaces
- google.com
+
* google.com

A lap 2006. október 10., 14:56-kori változata

VLAN a Linux-on, Debian alatt

Mi is az a VLAN? A VLAN (Virtual Local Area Network) az IEEE 802.1Q szabványban definiált. VLAN segítségével a hálózatok fizikai kialakításától függetlenül definiálhatunk logikai (szoftveresen létrejövő) broadcast hálózatokat az egy ugyanazon VLAN hálózatban szereplő host-ok között. A VLAN megvalósítása az OSI modell 2. rétegében, a adatkapcsolati rétegben történik. Gyakorlatilag a hálózati csomagok kapnak még egy 4 bájtos (*) fejlécet amelyben definiálva van egy 12 bites VLAN Identifier (VID), mely 4096 külön logikai hálózatot tenne lehetővé egy ugyanazon hálózati interface-n, vagy kábelen. Ennél a gyakorlatban – implementációtól függően – valamelyest kevesebb érhető el. A 0. és a 4095. VLAN a szabvány szerint foglaltak. Az 1. VLAN pedig a mindenki számára látható forgalmat jelenti. (Átlátszó VLAN.) A VLAN hálózatokban két eszköz akkor van azonos logikai közegben, ha a VID-jük megyegyezik. Különböző VID-ű hálózatok között a kommunikációt az erre kijelölt eszköz (pl. egy router, vagy switch…) végezheti el a 3. – hálózati - rétegben. A VLAN témakör részletes mindenre kiterjedő ismertetésére kitérni nincs lehetőség, a forrásjegyzékben szereplő irodalmakból azonban jól megismerhető.

Linux alatt

VLAN kernel támogatás: A 802.1Q szabvány a kernel 2.4.21-es verziója óta a kernel része, 8021q a modul neve. A VLAN támogatáshoz a hálózati kártya driverének is támogatnia kell az esetlegesen nagyobb, mint 1500 bájt-os MTU-t. (Tapasztalataim alapján a szabvány Debian 2.6.8 kernel e1000 és e100 moduljai tökéletesen működnek. Azért nem a 2.4-es kernel széria lett a kiválasztott, mert ott a VLAN-ok fölötti bridge építése iptables tűzfalas szűréssel nem lehetséges. ld. később )

VLAN utility-k és használatuk:

A VLAN hálózatok létrehozása a vconfig programmal lehetséges a következő szintaxis szerint:

vconfig add interface_name VID

És ekkor létrejön az interface_name.VID interface, amely már a VID hálózatban képes kommunikálni.

Pl. az eth0 interface feletti 150-es VLAN létrehozása a következőféleképpen lehetséges:

vconfig add eth0 150

Ekkor a következő interface jelenik meg:

eth0.150 Link encap:Ethernet  HWaddr 00:02:A5:CE:61:CC
         inet addr:192.168.1.1  Bcast:192.168.255.255  Mask:255.255.255.0
         inet6 addr: fe30::212:a3ff:fdce:61cd/64 Scope:LinkUP
         BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:406783997 errors:0 dropped:0 overruns:0 frame:0
         TX packets:444927484 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:2283210879 (2.1 GiB)  TX bytes:2212731126 (2.0 GiB)

Egy ilyen virtuális eszköz eltávolítása a

vconfig rem interface_name.VID

-rel lehetséges.

Esetünkben:

vconfig rem eth0.150

Debian alatt lehetséges a /etc/network/interfaces fájl használata a VLAN-ok definiálására. A fenti példa így nézhetne ki:

        iface eth0.150 inet static
              address 192.168.1.1
              netmask 255.255.255.0

,vagy

        iface vlan150 inet static
	      vlan-raw-device eth0
	      address 192.168.1.1
	      netmask 255.255.255.0

,vagy

        iface eth0.0150 inet static
	      address 192.168.1.1
              netmask 255.255.255.0

,vagy

        iface vlan0150 inet static
	      vlan-raw-device eth0
	      address 192.168.1.1
	      netmask 255.255.255.0

A 4 féle megadás mind ugyanazt az eredményt érik el; egymással ekvivalensek.

Iptables működik szokásos szintaxissal a virtuális interface-ekre.


Bridge VLAN fölött Debian Linux-on

Kernel támogatás bridge-hez: Patch-ként a 2.4-es szériához is elérhető, de a 2.6-os kernel széria része a bridge képesség, a bridge modul által. Nagy különbség a két változat között, hogy a 2.4-ben nincs lehetőség a bridge-elt forgalom tűzfalazására, ugyanis a bridge-ben nem kerül kibontásra a 4 bájttal megnövelt (beágyazott) csomag, így az iptables nem ismeri fel. A 2.6.1-től kezdve azonban van lehetőség tűzfalazásra.

A /proc/sys/net/bridge/-ben levő kapcsolók állításával:

  • bridge-nf-call-arptables - pass (1) or don't pass (0) bridged ARP traffic to arptables' FORWARD chain.
  • bridge-nf-call-iptables - pass (1) or don't pass (0) bridged IPv4 traffic to iptables' chains.
  • bridge-nf-call-ip6tables - pass (1) or don't pass (0) bridged IPv6 traffic to ip6tables' chains.
  • bridge-nf-filter-vlan-tagged - pass (1) or don't pass (0) bridged vlan-tagged ARP/IP traffic to arptables/iptables

Bridge-ek létrehozása: Linuxokban a brctl programmal lehet létrehozni bridge-eket az interface-ek között.

brctl addbr brX

-el létre lehet hozni bridge-eket. Ezekhez ifconfiggal akár IP-cím és routing tábla is

létrehozható.

brctl addif brX device 

utasítással pedig interface-ket adhatunk a bridge-hez.

brctl paraméterezhetősége:

addbr		<bridge>			add bridge
delbr		<bridge>			delete bridge
addif		<bridge> <device>		add interface to bridge
delif		 <bridge> <device>		delete interface from bridge
setageing	<bridge> <time>		set ageing time
setbridgeprio	<bridge> <prio>		set bridge priority
setfd		<bridge> <time>		set bridge forward delay
sethello	<bridge> <time>		set hello time
setmaxage	<bridge> <time>		set max message age
setpathcost	<bridge> <port> <cost>	set path cost
setportprio	<bridge> <port> <prio>	set port priority
show						show a list of bridges
showmacs	<bridge>			show a list of mac addrs
showstp	<bridge>			show bridge stp info
stp		<bridge> <state>		turn stp on/off

Debian alatt lehetséges a /etc/network/interfaces fájl használata a bridge-ek definiálására.

auto br0
iface br0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
	bridge_ports eth0 eth1
bridge_stp on

Amennyiben VLAN interface-k fölött szeretnénk bridge-et létrehozni, egyszerűen a következő szintaxis használható:

auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.1
	bridge_ports eth0.150 eth1.150
bridge_stp on

Nincs szükség külön VLAN interface definiálásra; elvégzi automatikusan a rendszer. A számítógép elérhető marad távolról, ugyanis a bridge örökli az egyik interface MAC address-ét és ehhez mint felül látszik IP cím is rendelhető.

Így Linux-szal létrehozhatunk switch-eket, routereket, átlátszó tűzfalakat VLAN, ill. nem VLAN fölött.



Felhasznált irodalom:

Személyes eszközök