IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

VLAN Significa Virtual Local Area Network, treballen en la capa 2Ethernet i tenen un alt rendiment.

Les VLAN ens permeten tenir diferents segments de xarxa virtuals en una sola interfície de xarxa.

Tipus de VLAN

Hi ha dos tipus de ports en les VLAN:

  • tagged: Es pot anomenar de diferents maneres depenent del fabricant. Cisco també ho anomena Trunk.
  • untagged: Cisco també ho anomena Acces Mode.

Es coneixen els següents tipus de Virtual LANs:

  • Port-Based VLAN: cada port físic es configura amb una ACL, especificant a quines VLAN pertany aquell port.
  • MAC-based VLAN: el commutador es configura amb una ACL que indica segons la mac a quina VLAN pertany un dispositiu. Vegeu macvlan.
  • Protocol-based VLAN: segons el protocol es posa el transit en una VLAN o en un altre...
  • 802.1Q: És el protocol més utilitzat per fer Vlan.
  • ATM VLAN: Utilitza LAN Emulation (LANE protocol) per fer un mapejat de paquets Ethernet a cel·les ATM, es a dir converteix adreces MAC a adreces ATM

switch pla: És un switch que no esta configurat, switch "tonto".

Les Vlan, aporten flexibilitat, per que podem fer que una màquina que no es troba en el nostre segment de xarxa i pugui accedir. Això ho fem amb troncals

Pregunta trampa, si dos Pc's estan en el mateix segment de xarxa, connectats per Vlan, no es poden veure si no passen pel router.

Protocol 802.1Q

  • El protocol més utilitzat per a xarxes VLAN és IEEE_802.1Q, també conegut com VLAN Tagging. És un protocol estàndard d'encapsulació que defineix com inserir el 4 bytes (32 bits) de l'identificador VLAN (VLAN ID) en una capçalera Ethernet.
Davidginovart frame.png

Vlan's a Linux

  • Fa temps que el nucli de Linux (el kernel) inclou suport per al estàndard 802.1Q, de fet lo més normal és que si utilitzeu un nucli pre-compilat (el més habitual) és que ja tingueu suport per a VLANs.
  • L'eina d'usuari per a crear i configurar les vlan és vconfig que en le cas de les distribucions de la família Debian es troba al paquet vlan (en altres distribucions com Mandriva el paquet s'anomena vlan-utils). Un cop instal·lat el paquet només cal assegurar-se que és té carregat el mòdul 8021q.

Vlan's amb vconfig

  • Aquest és el que es diu que esta obsolet, encara que s'utilitza molt. Aquest tipus d'vlan es de capa tres ip.
  • Instal·lem el paquet:
$ sudo apt-get install vlan
  • Podem veure tot el que instal·la amb:
$ dpkg -L vlan 
/.
/lib
/lib/udev
/lib/udev/rules.d
/lib/udev/rules.d/40-vlan-network-interface.rules
/lib/udev/vlan-network-interface
/usr
/usr/share
/usr/share/doc
/usr/share/doc/vlan
/usr/share/doc/vlan/howto.html
/usr/share/doc/vlan/vlan.html
/usr/share/doc/vlan/TODO.Debian
/usr/share/doc/vlan/copyright
/usr/share/doc/vlan/NEWS.Debian.gz
/usr/share/doc/vlan/changelog.Debian.gz
/usr/share/man
/usr/share/man/man5
/usr/share/man/man5/vlan-interfaces.5.gz
/usr/share/man/man8
/usr/share/man/man8/vconfig.8.gz
/etc
/etc/network
/etc/network/if-pre-up.d
/etc/network/if-pre-up.d/vlan
/etc/network/if-post-down.d
/etc/network/if-post-down.d/vlan
/etc/network/if-up.d
/etc/network/if-up.d/ip
/sbin
/sbin/vconfig

Exemple amb vconfig

  • Primer fem un ifconfig per veure les targetes de xarxa.
$ ifconfig  
eth0      Link encap:Ethernet  HWaddr c8:60:00:11:c2:dd  
         UP BROADCAST MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 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:58 
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:1766 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1766 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:218990 (218.9 KB)  TX bytes:218990 (218.9 KB)
wlan0     Link encap:Ethernet  HWaddr 78:92:9c:80:3c:f8  
         inet addr:192.168.130.134  Bcast:192.168.130.255  Mask:255.255.255.0
         inet6 addr: fe80::7a92:9cff:fe80:3cf8/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:87088 errors:0 dropped:0 overruns:0 frame:0
         TX packets:10162 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:40280485 (40.2 MB)  TX bytes:1829470 (1.8 MB)
  • Executo
$ sudo vconfig add eth0 2
Added VLAN with VID == 2 to IF -:eth0:-
  • Comprovem els mòduls carregats amb:
$ sudo lsmod | grep 802
8021q                  24084  0 
garp                   14602  1 8021q
mac80211              506816  1 iwlwifi
cfg80211              205544  2 iwlwifi,mac80211
  • Torno a comprovar les targetes i veig una de nova:
$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr c8:60:00:11:c2:dd  
         UP BROADCAST MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 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:58 
eth0.2    Link encap:Ethernet  HWaddr c8:60:00:11:c2:dd  
         UP BROADCAST MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
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:1831 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1831 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:226142 (226.1 KB)  TX bytes:226142 (226.1 KB)
wlan0     Link encap:Ethernet  HWaddr 78:92:9c:80:3c:f8  
         inet addr:192.168.130.134  Bcast:192.168.130.255  Mask:255.255.255.0
         inet6 addr: fe80::7a92:9cff:fe80:3cf8/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:91726 errors:0 dropped:0 overruns:0 frame:0
         TX packets:10342 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:41481502 (41.4 MB)  TX bytes:1861818 (1.8 MB)
  • Ara ens fa falta configurar-la, donar-li una adreça ip:
$ sudo ifconfig eth0.2 192.168.2.134
  • Per acabar faig un ping a la vlan del company de classe, estem connectat directament amb un cable, ja que el switch de l'aula no esta configurat per suporta vlans. En un principi tenim un problema de ID de la vlan i no ens responen els pings, ja que jo he configurat la vlan 2 i l'altre equip estava configurat amb la vlan 3, quan els dos configurem la mateixa ID vlan ja ens veiem. Objectiu d'aquesta pràctica es captura els paquets amb el wireshark, i poder veure ID de la vlan.
  • Hem de tenir en compte que per poder veure l'ID de la vlan hem de captura els paquets amb la targeta de xarxa eth0, i no per la que tenim configurada la vlan, ja que amb aquesta targeta ja no es veu ID.
Davidginovart vlan wireshark.png
  • Aquí es pot veure que l'ID capturat és el mateix que hem creat la vlan
Davidginovart vlan wireshark1.png

Conceptes

  • VLAN aware: Per definir 2 tipus de dispositius (amb targeta de xarxa real o virtual). Per saber si un dispositiu és compatible o no amb VLAN. Per exemple, les impressores no són VLAN aware, les estacions de treball tampoc. Els switchos i els servidors sí que treballen amb VLAN. Si un dispositiu que no treballa amb VLAN rep un paquet VLAN el paquet es perdrà i deixarà de funcionar.
  • Tagged/Untagged: El paquet untagged no porta etiquetació VLAN, un paquet tagged és un paquet amb els 4 bytes extra. Independentment de que un dispositiu pugui interpretar VLAN o no, s'ha de poder posar en una xarxa. L'administrador del switch ha de col·locar un dispoditiu que no accepta VLAN com a untagged.
  • Eggres/Inggres Rules: Filtres d'entrada i sortida d'VLAN. Quan un dispositiu tipus switch rep o envia un paquet VLAN, pot actuar de diverses maneres. Els filtres de sortida es troben en una taula.
  • VID: VLAN ID. És el número que identifica la VLAN.
  • PVID: VLAN que es posarà als paquets que arribin sense etiqueta pels ports configurats en tagged. És la VLAN per defecte. El PVID típic és l'1.

Configuració permanent VLAN

$ sudo apt-get install vlan
$ dpkg -L vlan | grep etc
/etc
/etc/network //Configuracions de xarxa de Linux//
/etc/network/if-pre-up.d
/etc/network/if-pre-up.d/vlan
/etc/network/if-post-down.d
/etc/network/if-post-down.d/vlan
/etc/network/if-up.d
/etc/network/if-up.d/ip
$ /etc/network
if-down.d  if-post-down.d  if-pre-up.d  if-up.d  interfaces //directori on es configuren VLAN//

El fitxer if-pre-up.d fa que les configuracions de VLAN siguin efectives a l'iniciar el sistema.

# IP address for VLAN 3:
auto eth6.3 //arranca automàticament a l'inici del sistema//
iface eth6.3 inet static //
       address 10.0.0.1
       netmask 255.255.255.0
       network 10.0.0.0
       broadcast 10.0.0.255


Comanda ip

És una comanda que ens permet configurar tot el relacionat amb la xarxa. La resta de comandes es consideren obsoletes, però encara s'utilitzen i s'utilitzaran durant molt temps.

La comanda ip substitueix ifconfig, route, arp, vlan...

La comanda següent serveix per configurar una VLAN:

$ sudo ip link add link INTERFACE name INTERFACE.VID type vlan id VID

Exemple:

$ sudo ip link add link eth0 name eth0.7 type vlan id 7
$ ip address show
4: [email protected]: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether 00:30:05:eb:38:d6 brd ff:ff:ff:ff:ff:ff
$ ifconfig -a
eth0.7    Link encap:Ethernet  HWaddr 00:30:05:eb:38:d6  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Afegim una ip:

$ sudo ip addr add 192.168.22.7/24 brd 192.168.22.255 dev eth0.7
$ ifconfig -a
eth0.7    Link encap:Ethernet  HWaddr 00:30:05:eb:38:d6  
          inet addr:192.168.22.7  Bcast:192.168.22.255  Mask:255.255.255.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Podem veure que una interfície és de tipus VLAN perquè l'acompanya una @.

$ ip link
 4: eth0.7@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether 00:30:05:eb:38:d6 brd ff:ff:ff:ff:ff:ff