Szerkesztő:RostásAttila
(egy szerkesztő 23 közbeeső változata nincs mutatva) | |||
4. sor: | 4. sor: | ||
A VLAN (Virtual Local Area Network) az IEEE 802.1Q szabványban definiált. |
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.) |
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 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. Egy switch egy portja tartozhat egy vagy több VLAN-hoz. Amennyiben egyhez tartozik, lehetőség van rá, hogy a switch elrejtse a porton keresztül kapcsolódó eszköz (leginkább egy számítógép hálózati interface-e) elől, hogy ő valójában egy VLAN-ban van. Amennyiben egy porthoz több VLAN van megengedve, vagy egy VLAN, de nem cél az elrejtése, akkor a portra csatlakozó eszköznek ismernie kell, hogy ő melyik VLAN-ban van és ennek megfelelő VID-et kell a kiküldött csomagjai elé tennie illetve a kapott csomagok tag-jében találnia. Biztonsági szempontból ajánlatos lehet MAC címhez, vagy valamilyen authentikációhoz kötni a VLAN-t, ebben az esetben az adott számítógép csak a neki szánt VID-(ek)en tud kommunikálni. |
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ő. |
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ő. |
||
16. sor: | 16. sor: | ||
A VLAN hálózatok létrehozása a vconfig programmal lehetséges a következő szintaxis szerint: |
A VLAN hálózatok létrehozása a vconfig programmal lehetséges a következő szintaxis szerint: |
||
+ | <pre> |
||
vconfig add interface_name VID |
vconfig add interface_name VID |
||
+ | </pre> |
||
És ekkor létrejön az interface_name.VID interface, amely már a VID hálózatban képes kommunikálni. |
É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: |
Pl. az eth0 interface feletti 150-es VLAN létrehozása a következőféleképpen lehetséges: |
||
+ | |||
+ | <pre> |
||
vconfig add eth0 150 |
vconfig add eth0 150 |
||
+ | </pre> |
||
+ | |||
Ekkor a következő interface jelenik meg: |
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 |
+ | <pre> |
+ | eth0.150 Link encap:Ethernet HWaddr 00:02:A5:CE:61:CC |
||
+ | inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 |
||
inet6 addr: fe30::212:a3ff:fdce:61cd/64 Scope:LinkUP |
inet6 addr: fe30::212:a3ff:fdce:61cd/64 Scope:LinkUP |
||
BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
||
30. sor: | 36. sor: | ||
collisions:0 txqueuelen:0 |
collisions:0 txqueuelen:0 |
||
RX bytes:2283210879 (2.1 GiB) TX bytes:2212731126 (2.0 GiB) |
RX bytes:2283210879 (2.1 GiB) TX bytes:2212731126 (2.0 GiB) |
||
+ | </pre> |
||
+ | |||
+ | Egy ilyen virtuális eszköz eltávolítása a |
||
+ | <pre> |
||
+ | vconfig rem interface_name.VID |
||
+ | </pre> |
||
+ | -rel lehetséges. |
||
− | Egy ilyen virtuális eszköz eltávolítása a vconfig rem interface_name.VID-rel lehetséges. |
||
Esetünkben: |
Esetünkben: |
||
+ | <pre> |
||
vconfig rem eth0.150 |
vconfig rem eth0.150 |
||
+ | </pre> |
||
Debian alatt lehetséges a /etc/network/interfaces fájl használata a VLAN-ok definiálására. |
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: |
A fenti példa így nézhetne ki: |
||
− | iface eth0.150 inet static |
+ | |
− | address 192.168.1.1 |
+ | <pre> |
− | netmask 255.255.255.0 |
+ | iface eth0.150 inet static |
+ | address 192.168.1.1 |
||
+ | netmask 255.255.255.0 |
||
+ | </pre> |
||
,vagy |
,vagy |
||
− | iface vlan150 inet static |
+ | <pre> |
− | vlan-raw-device eth0 |
+ | iface vlan150 inet static |
− | address 192.168.1.1 |
+ | vlan-raw-device eth0 |
− | netmask 255.255.255.0 |
+ | address 192.168.1.1 |
+ | netmask 255.255.255.0 |
||
+ | </pre> |
||
,vagy |
,vagy |
||
− | iface eth0.0150 inet static |
+ | <pre> |
− | address 192.168.1.1 |
+ | iface eth0.0150 inet static |
− | netmask 255.255.255.0 |
+ | address 192.168.1.1 |
+ | netmask 255.255.255.0 |
||
+ | </pre> |
||
,vagy |
,vagy |
||
− | iface vlan0150 inet static |
+ | <pre> |
− | vlan-raw-device eth0 |
+ | iface vlan0150 inet static |
− | address 192.168.1.1 |
+ | vlan-raw-device eth0 |
− | netmask 255.255.255.0 |
+ | address 192.168.1.1 |
+ | netmask 255.255.255.0 |
||
+ | </pre> |
||
A 4 féle megadás mind ugyanazt az eredményt érik el; egymással ekvivalensek. |
A 4 féle megadás mind ugyanazt az eredményt érik el; egymással ekvivalensek. |
||
− | Iptables működik szoksásos szintaxissal a virtuális interface-ekre. |
+ | Iptables működik szokásos szintaxissal a virtuális interface-ekre. |
68. sor: | 82. sor: | ||
A /proc/sys/net/bridge/-ben levő kapcsolók állításával: |
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-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-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-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-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:'' |
''Bridge-ek létrehozása:'' |
||
Linuxokban a brctl programmal lehet létrehozni bridge-eket az interface-ek között. |
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ó. |
+ | <pre> |
− | brctl addif brX device utasítással pedig interface-ket adhatunk a bridge-hez. |
+ | brctl addbr brX |
+ | </pre> |
||
+ | -el létre lehet hozni bridge-eket. Ezekhez ifconfiggal akár IP-cím és routing tábla is |
||
+ | |||
+ | létrehozható. |
||
+ | <pre> |
||
+ | brctl addif brX device |
||
+ | </pre> |
||
+ | utasítással pedig interface-ket adhatunk a bridge-hez. |
||
brctl paraméterezhetősége: |
brctl paraméterezhetősége: |
||
+ | <pre> |
||
addbr <bridge> add bridge |
addbr <bridge> add bridge |
||
delbr <bridge> delete bridge |
delbr <bridge> delete bridge |
||
addif <bridge> <device> add interface to bridge |
addif <bridge> <device> add interface to bridge |
||
delif <bridge> <device> delete interface from bridge |
delif <bridge> <device> delete interface from bridge |
||
− | setageing <bridge> <time> set ageing time |
+ | setageing <bridge> <time> set ageing time |
− | setbridgeprio <bridge> <prio> set bridge priority |
+ | setbridgeprio <bridge> <prio> set bridge priority |
− | setfd <bridge> <time> set bridge forward delay |
+ | setfd <bridge> <time> set bridge forward delay |
− | sethello <bridge> <time> set hello time |
+ | sethello <bridge> <time> set hello time |
− | setmaxage <bridge> <time> set max message age |
+ | setmaxage <bridge> <time> set max message age |
− | setpathcost <bridge> <port> <cost> set path cost |
+ | setpathcost <bridge> <port> <cost> set path cost |
− | setportprio <bridge> <port> <prio> set port priority |
+ | setportprio <bridge> <port> <prio> set port priority |
show show a list of bridges |
show show a list of bridges |
||
showmacs <bridge> show a list of mac addrs |
showmacs <bridge> show a list of mac addrs |
||
− | showstp <bridge> show bridge stp info |
+ | showstp <bridge> show bridge stp info |
stp <bridge> <state> turn stp on/off |
stp <bridge> <state> turn stp on/off |
||
+ | </pre> |
||
Debian alatt lehetséges a /etc/network/interfaces fájl használata a bridge-ek definiálására. |
Debian alatt lehetséges a /etc/network/interfaces fájl használata a bridge-ek definiálására. |
||
+ | <pre> |
||
auto br0 |
auto br0 |
||
iface br0 inet static |
iface br0 inet static |
||
− | address 192.168.0.1 |
+ | address 192.168.0.1 |
− | netmask 255.255.255.0 |
+ | netmask 255.255.255.0 |
− | gateway 192.168.0.1 |
+ | gateway 192.168.0.1 |
bridge_ports eth0 eth1 |
bridge_ports eth0 eth1 |
||
− | bridge_stp on |
+ | bridge_stp on |
+ | </pre> |
||
Amennyiben VLAN interface-k fölött szeretnénk bridge-et létrehozni, egyszerűen a következő szintaxis használható: |
Amennyiben VLAN interface-k fölött szeretnénk bridge-et létrehozni, egyszerűen a következő szintaxis használható: |
||
+ | <pre> |
||
auto br0 |
auto br0 |
||
iface br0 inet static |
iface br0 inet static |
||
− | address 192.168.1.1 |
+ | address 192.168.1.1 |
− | netmask 255.255.255.0 |
+ | netmask 255.255.255.0 |
− | gateway 192.168.1.1 |
+ | gateway 192.168.1.1 |
bridge_ports eth0.150 eth1.150 |
bridge_ports eth0.150 eth1.150 |
||
− | bridge_stp on |
+ | bridge_stp on |
+ | </pre> |
||
Nincs szükség külön VLAN interface definiálásra; elvégzi automatikusan a rendszer. |
Nincs szükség külön VLAN interface definiálásra; elvégzi automatikusan a rendszer. |
||
+ | |||
+ | A létrehozott bridge-ek állapotának lekérdezése: |
||
+ | <pre> |
||
+ | brctl show |
||
+ | |||
+ | bridge name bridge id STP enabled interfaces |
||
+ | br0 8000.0002a5ce61cc yes eth0.150 |
||
+ | eth1.150 |
||
+ | br1 8000.0002a5ce61cc yes eth0.154 |
||
+ | eth1.154 |
||
+ | </pre> |
||
+ | |||
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ő. |
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ő. |
||
124. sor: | 154. 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 jelenlegi, 2006. október 26., 21:40-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. Egy switch egy portja tartozhat egy vagy több VLAN-hoz. Amennyiben egyhez tartozik, lehetőség van rá, hogy a switch elrejtse a porton keresztül kapcsolódó eszköz (leginkább egy számítógép hálózati interface-e) elől, hogy ő valójában egy VLAN-ban van. Amennyiben egy porthoz több VLAN van megengedve, vagy egy VLAN, de nem cél az elrejtése, akkor a portra csatlakozó eszköznek ismernie kell, hogy ő melyik VLAN-ban van és ennek megfelelő VID-et kell a kiküldött csomagjai elé tennie illetve a kapott csomagok tag-jében találnia. Biztonsági szempontból ajánlatos lehet MAC címhez, vagy valamilyen authentikációhoz kötni a VLAN-t, ebben az esetben az adott számítógép csak a neki szánt VID-(ek)en tud kommunikálni. 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.1.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 létrehozott bridge-ek állapotának lekérdezése:
brctl show bridge name bridge id STP enabled interfaces br0 8000.0002a5ce61cc yes eth0.150 eth1.150 br1 8000.0002a5ce61cc yes eth0.154 eth1.154
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:
- Andrew S. Tanenbaum: Számítógép hálózatok
- Karen Webb: Building Cisco Multilayer Switched Networks (103. oldal *)
- http://en.wikipedia.org/wiki/VLAN
- http://ebtables.sourceforge.net/brnf-faq.html
- man vlan-interfaces
- google.com