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)

IMPORTANT: Llegiu la introducció!!!. Sembla ser que l'ordre vconfig i infinitat de documentació que hi ha a Internet sobre les VLAN és documentació obsoleta! Es poden configurar vlans amb l'ordre ip (consulteu l'apartat Ordre IP) sense la necessitat d'utilitzar l'ordre vconfig la qual és considerada obsoleta pels seus propis desenvolupadors. Per la mateixa raó no cal instal·lar el paquet vlan. Dit això cal dir però que també funciona correctament vconfig i que hi ha molta més documentació sobre vlans amb vconfig que amb l'ordre IP. L'ordre IP ve de sèrie i per tant sembla més lògic utilitzar aquesta ordre.

Contingut

Introducció

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 precompilat (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.

Sembla que inicialment el suport per a vlans es feia amb el paquet vlan, del qual podeu trobar més informació a:

http://www.candelatech.com/~greear/vlan.html

Però fixeu-vos en el comentar de la web:

802.1Q VLANs and MAC-VLANs can be created with the 'ip' utility (vconfig works for vlans, but is crufty and deprecated).

ip link add link eth0 name eth0.5 type vlan id 5
ip link add link eth0 name eth0#1 address 00:aa:bb:cc:dd:ee type macvlan

Consulteu doncs l'apartat:

Linux_VLAN#Ordre_IP

La resta de la documentació de la wiki és obsoleta!

Recursos:

Paquets

Si veu una cerca de paquets per la paraula clau vlan:

$ apt-cache search vlan
vlan - user mode programs to enable VLANs on your ethernet devices
ifupdown-scripts-zg2 - Zugschlus' interface scripts for ifupdown's manual method
lldpd - implementation of IEEE 802.1ab (LLDP)
vde2 - Virtual Distributed Ethernet
yersinia - Network vulnerabilities check software
nova-network - OpenStack Compute - Network manager

vlan

Els el paquet que ofereix les eines d'usuari per a treballar amb VLANs. Vegeu Instal·lació

vlan-utils

En alguns sistemes operatius Linux el nom del paquet és vlan-utils però en Ubuntu és simplement vlan.

Requeriments

Cal tenir una targeta de xarxa que suporti 802.1q. Algunes targetes suporten 802.1q però després tenen problemes amb la MTU (TODO: algún exemple?).

Després cal un kernel que suporti VLANs. La majoria de kernels moderns ( kernel 2.6 o superior, --acacha 13:13, 10 abr 2012 (UTC)) suporten vlan. Es pot consultar amb:

$ grep CONFIG_VLAN_8021Q /boot/config-`uname -r`
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y

El suport és pot tenir incrustat al nucli o per mòdul carregable. A l'anterior comanda la m indica que està disponible carregant un mòdul. El mòdul és el 8021q. Per carregar el mòdul és pot utilitzar modprobe

$ sudo modprobe 8021q

I per a fer-ho permanent cal afegir la línia 8021q al fitxer /etc/modules.

Per depurar problemes amb el mòdul utilitzeu dmesg:

$ sudo dmesg | grep -i 802.1q
[ 1801.171046] 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>

L'anterior línia indicaria que tot és correcte. També es pot utilitzar lsmod per veure si el mòdul està carregat:


$ sudo lsmod | grep 8021q
8021q                  22168  0

Recursos:

Instal·lació

Per tenir suport per a VLAN cal dos coses:

  • Tenir el mòduls (drivers) del nucli del sistema operatiu carregats per tal de tenir suport per maquinari
  • Tenir instal·lades les eines de gestió

Les eines de gestió s'instal·len amb:

$ sudo apt-get install vlan

El suport del nucli del sistema per a vlans el proporciona el mòdul 8021q. Per activar-lo

$ sudo modprobe 8021q

Per comprovar si el teniu carregat:

$ lsmod | grep 8021q
8021q                  24173  0 

Fitxers instal·lats

$ dpkg -L vlan
/.
/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.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-up.d
/etc/network/if-up.d/ip
/etc/network/if-post-down.d
/etc/network/if-post-down.d/vlan
/sbin
/sbin/vconfig

Fitxers de configuració

/etc/network/interfaces

Consulteu el manual:

$ man vlan-interfaces

Es poden definir de diverses formes. Alguns exemples:

  iface eth0.1 inet static
           address 192.168.1.1
           netmask 255.255.255.0

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

       iface eth0.0001 inet static
           address 192.168.1.1
           netmask 255.255.255.0

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

       # We don't have br support out of the box
       iface br0.2 inet static
           vlan-raw-device br0
           address 192.168.1.1
           netmask 255.255.255.0

       # Aliases are ignored
       iface br0.2:1 inet static
           address 192.168.1.1
           netmask 255.255.255.255

La clau està en utilitzar o no l'opció vlan_raw-device. Si no s'utilitzar l'opció aleshores la interfície ha de tenir la forma:

INTERFICIE_FíSICA.VLAN_ID

Tant si s'utilitza com no el VLAN_ID forma part del nom de la interfície i es pot utilitzar un número com 1,2,4, 4... o 001, 002, etc...

Els scripts dels següents apartats són els encarregats de que això funcioni correctament amb ifupdown.

Amb vlan_raw_device

TODO

IMPORTANT: Cuando se configura una interfaz en modo manual no se requiere definir una dirección IP estática.

Exemple de fitxer de configuració interfaces:

# Interfaz VLAN 802.1q (Trunk)
auto eth1
iface eth1 inet manual

# Interfaz VLAN 100 - ROUTING
auto vlan100
iface vlan100 inet static
 address 192.168.100.254
 netmask 255.255.255.0
 vlan_raw_device eth1

# Interfaz VLAN 110 - SWITCH
auto vlan110
iface vlan110 inet static
  address 192.168.110.254
  netmask 255.255.255.0
  vlan_raw_device eth1

# Interfaz VLAN 120 - SERVERS
auto vlan120
iface vlan120 inet static
 address 192.168.120.254
 netmask 255.255.255.0
 vlan_raw_device eth1

# Interfaz VLAN 130 - PCS
auto vlan130
iface vlan130 inet static
address 192.168.130.254
netmask 255.255.255.0
vlan_raw_device eth1

# Interfaz VLAN 140 - VOIP
auto vlan140
iface vlan140 inet static
address 192.168.140.254
netmask 255.255.255.0
vlan_raw_device eth1

# Interfaz VLAN 150 - WIFI
auto vlan150
iface vlan150 inet static
address 192.168.150.254
netmask 255.255.255.0
vlan_raw_device eth1

Hooks del paquet ifupdown

Els següents scripts són hooks per al paquet ifupdown, per tal que les ordres ifup i ifdown (i per tant també el fitxer /etc/network/interfaces) suportin vlans.

/etc/network/if-pre-up.d/vlan

En distribucions de la família Debian (sembla ser que en altres distribucions com Red Hat no és així) no cal configurar cap fitxer extra (més enllà del fitxer /etc/network/interfaces) per tal de crear les VLANs durant l'arrancada del sistema.

Cal tenir en compte que el fitxer interfaces només defineix la configuració IP de les interfícies virtuals però no es creen pas les vlan que són creades amb l'ordre vconfig. A Debian però el fitxer:

/etc/network/if-pre-up.d/vlan

és un fitxer que forma part del paquet vlan i que com podeu veure és un script que s'executa automàticament abans (pre) de configurar les interfícies de xarxa.

El contingut del fitxer a una Ubuntu 10.10 és el següent:

#!/bin/sh

# Most of this stuff is to enable vlans

case "$IFACE" in
  # Ignore any alias (#272891) which uses <interface>:<alabel>
  *:*)
    exit 0
  ;;
  vlan0*)
    vconfig set_name_type VLAN_PLUS_VID
    VLANID=`echo $IFACE|sed "s/vlan0*//"`
  ;;
  vlan*)
    vconfig set_name_type VLAN_PLUS_VID_NO_PAD
    VLANID=`echo $IFACE|sed "s/vlan0*//"`
  ;;
  eth*.0*|bond*.0*|wlan*.0*)
    vconfig set_name_type DEV_PLUS_VID
    VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*\.0*//;s/wlan[0-9][0-9]*\.0*//"`
    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
  ;;
  eth*.*|bond*.*|wlan*.*)
    vconfig set_name_type DEV_PLUS_VID_NO_PAD
    VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*\.0*//g;s/wlan[0-9][0-9]*\.0*//g"`
    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
  ;;
  *.0*)
    # Silently ignore interfaces which we do not (know how to) support
    [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0
    vconfig set_name_type DEV_PLUS_VID
    VLANID=`echo $IFACE|sed "s/[^.]*\.0*//g"`
  ;;
  *.*)
    # Silently ignore interfaces which we do not (know how to) support
    [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0
    vconfig set_name_type DEV_PLUS_VID_NO_PAD
    VLANID=`echo $IFACE|sed "s/[^.]*\.0*//g"`
  ;;

  *)
    exit 0
  ;;
esac

if [ -n "$IF_VLAN_RAW_DEVICE" ]; then
    if [ ! -x /sbin/vconfig ]; then
        exit 0
    fi
    if ! ip link show dev "$IF_VLAN_RAW_DEVICE" > /dev/null; then
        echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $IFACE"
        exit 1
    fi
    ip link set up dev $IF_VLAN_RAW_DEVICE
    vconfig add $IF_VLAN_RAW_DEVICE $VLANID
fi

# This is not vlan specific, and should actually go somewhere else.
if [ -n "$IF_HW_MAC_ADDRESS" ]; then
    ip link set $IFACE address $IF_HW_MAC_ADDRESS
fi

/etc/network/if-post-down.d/vlan

$ cat /etc/network/if-post-down.d/vlan
#!/bin/sh

# If IFACE is an automagic vlan interface (without the vlan-raw-device
# parameter) then let's try to discover the magic here..  Another way would be
# to just probe for the right device name in /proc/net/vlan

case "$IFACE" in
  # Ignore any alias (#272891)
  *:*)
    exit 0
  ;;
  eth*.0*|bond*.0*|wlan*.0*)
    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
  ;;
  eth*.*|bond*.*|wlan*.*)
    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
  ;;
  # Test for vlan raw device (#196890, #292648)
  *)
    [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0
  ;;
esac

if [ ! -x /sbin/vconfig ]; then
    exit 0
fi

vconfig rem $IFACE

/etc/network/if-up.d/ip

Permet afegir el suport de per a arp-proxy i rp-filter de les interfícies vlan.

$ cat /etc/network/if-up.d/ip
#!/bin/sh
#!/bin/sh
# This should probably go into ifupdown
# But usually only those with lots of interfaces (vlans) need these
if [ -d "/proc/sys/net/ipv4/conf/$IFACE" ]
then
	if [ -n "$IF_IP_PROXY_ARP" ]; then
		if [ "$IF_IP_PROXY_ARP" -eq "1" ]; then
			echo 1 > "/proc/sys/net/ipv4/conf/$IFACE/proxy_arp"
		else
			echo 0 > "/proc/sys/net/ipv4/conf/$IFACE/proxy_arp"
		fi
	fi
	if [ -n "$IF_IP_RP_FILTER" ]; then
		if [ "$IF_IP_RP_FILTER" -eq "0" ]; then
			echo 0 > "/proc/sys/net/ipv4/conf/$IFACE/rp_filter"
		else
			echo 1 > "/proc/sys/net/ipv4/conf/$IFACE/rp_filter"
		fi
	fi
fi

Comandes linux

vconfig

L'ordre /sbin/vconfig és l'encarrega de definir i configurar les interfícies virtual de tipus VLAN. Una interfície Virtual VLAN és crea sobre una interfície real.


Així per exemple per a configurar la VLAN amb ID 2 a la interfície real eth0:

$ sudo modprobe 8021q
$ sudo vconfig add eth0 2
Added VLAN with VID == 2 to IF -:eth0:-

Ara ja podem configura a nivell IP la interfície virtual per exemple utilitzant ifconfig:

$ sudo ifconfig eth0.2 192.168.20.20 up
$ sudo ifconfig eth0.2
eth0.2    Link encap:Ethernet  HWaddr 00:C0:26:27:0B:D8
          inet addr:192.168.20.20  Bcast:192.168.20.255  Mask:255.255.255.0
          inet6 addr: fe80::2c0:26ff:fe27:bd8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:1494 (1.4 KiB)

També podríeu utilitzar l'ordre ip.

NOTA: Recordeu que cal utilitzar el paràmetre -a de ifconfig per tal de visualitzar

La notación por defecto supone que el adaptador de red virtual tendrá el nombre del adaptador de red físico con sufijo ".id_vlan" (por ejemplo, eth0.2 es el adaptador virtual de eth0 que está en la VLAN 2). A partir de este punto, el adaptador de red virtual se puede utilizar como cualquier otra targeta de red. Por ejemplo se puede configurar su dirección de red con el comando ifconfig.

Incluso es posible definir IP Aliasing sobre la interfaz virtual:

$ sudo ifconfig eth0.2:0 192.168.20.21 up
$ ifconfig
br0       Link encap:Ethernet  HWaddr 00:00:00:00:00:00
         inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:0 (0.0 b)  TX bytes:4140 (4.0 KiB)

eth0      Link encap:Ethernet  HWaddr 00:C0:26:27:0B:D8
         inet addr:192.168.100.101  Bcast:192.168.100.255  Mask:255.255.255.0
         inet6 addr: fe80::2c0:26ff:fe27:bd8/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:4805 errors:0 dropped:0 overruns:0 frame:0
         TX packets:9140 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:3171548 (3.0 MiB)  TX bytes:1196180 (1.1 MiB)
         Interrupt:11 Base address:0xc000

eth0.2    Link encap:Ethernet  HWaddr 00:C0:26:27:0B:D8
         inet addr:192.168.20.20  Bcast:192.168.20.255  Mask:255.255.255.0
         inet6 addr: fe80::2c0:26ff:fe27:bd8/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:0 (0.0 b)  TX bytes:3995 (3.9 KiB)
eth0.2:0  Link encap:Ethernet  HWaddr 00:C0:26:27:0B:D8
         inet addr:192.168.20.21  Bcast:192.168.20.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth1      Link encap:Ethernet  HWaddr 00:90:D1:06:60:87
         inet6 addr: fe80::290:d1ff:fe06:6087/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:0 (0.0 b)  TX bytes:2628 (2.5 KiB)
         Interrupt:10 Base address:0xec00

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:1544 errors:0 dropped:0 overruns:0 frame:0
         TX packets:1544 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0
         RX bytes:85904 (83.8 KiB)  TX bytes:85904 (83.8 KiB)

Noms suportats per a les interfícies VLAN

IMPORTANT: Amb l'ordre ip el nom de la interfície de xarxa vlan dona igual! Es pot posar qualsevol nom. CAl tenir en compte que a més si pel que sigui teniu una interfície de xarxa física amb un nom especial, és a dir diferent dels habituals ethX, wlanX, etc aleshores la configuració al arrancar de les vlan del paquet vlan i l'ordre vconfig no funcionarà.

Es pot consultar els formats suportats per vconfig amb:

$ sudo vconfig
Expecting argc to be 3-5, inclusive.  Was: 1
...
* name-type:  VLAN_PLUS_VID (vlan0005), VLAN_PLUS_VID_NO_PAD (vlan5),
             DEV_PLUS_VID (eth0.0005), DEV_PLUS_VID_NO_PAD (eth0.5)
...

Com podeu veure les opcions són:

Es pot establir el tipus de noms amb:

$ sudo vconfig set_name_type   [name-type]

Documentació

Manuals

vconfig

$ man vconfig
VCONFIG(8)                                                                                                                                                        VCONFIG(8)

NAME
      vconfig - VLAN (802.1q) configuration program.

SYNOPSIS
      vconfig [lots of long options]

DESCRIPTION
      The  vconfig  program  allows  you to create and remove vlan-devices on a vlan enabled kernel. Vlan-devices are virtual ethernet devices which represents the virtual
      lans on the physical lan.

OPTIONS
      add [interface-name] [vlan-id]
             Creates a vlan-device on [interface-name]. The resulting vlan-device will be called according to the nameing convention set.

      rem [vlan-device]
             Removes the named vlan-device.

      set_flag [vlan-device] 0 | 1
             When 1 (the default since 2.6.18), ethernet header reorders are turned on.  Dumping the device will appear as a common ethernet device without vlans.  When  0
             however,  ethernet  headers  are  not reordered, which results in vlan tagged packets when dumping the device. Usually the default gives no problems, but some
             packet filtering programs might have problems with it.

      set_egress_map [vlan-device] [skb-priority] [vlan-qos]
             This flags that outbound packets with a particular skb-priority should be tagged with the particular vlan priority vlan-qos. The default vlan priority is 0.

      set_ingress_map [vlan-device] [skb-priority] [vlan-qos]
             This flags that inbound packets with the particular vlan priority vlan-qos should be queued with a particular skb-priority. The default skb-priority is 0.

      set_name_type VLAN_PLUS_VID | VLAN_PLUS_VID_NO_PAD | DEV_PLUS_VID | DEV_PLUS_VID_NO_PAD
             Sets the way vlan-device names are created. Use vconfig without arguments to see the different formats.

      NOTES  VLAN will use Broadcom's NICE interface when the network device supports it. This is necessary, since usually the hardware of these  devices  already  removes
             the  vlan  tag  from  the  ethernet  packet.  The set_flag option on vlan-devices created on such a physical network device will be ignored.  Dumping the net‐
             work-device will show only untagged(non-vlan) traffic, and dumping the vlan-devices will only show traffic intended for that vlan, without the tags.

FILES
      /proc/net/vlan/config
      /proc/net/vlan/[vlan-device]

SEE ALSO
      ip(8), ifconfig(8)

AUTHORS
      This manual page was written by Ard van Breemen <ard@kwaak.net>
      The vlan patch is written by Ben Greear <greearb@candelatech.com>

                                                                                                                                                                 VCONFIG(8)

vlan-interfaces

$ man vlan-interfaces
VLAN-INTERFACES(5)                                                              File formats                                                              VLAN-INTERFACES(5)

NAME
      /etc/network/interfaces (vlan) - vlan extensions for the interfaces(5) file format

DESCRIPTION
      /etc/network/interfaces  contains  network interface configuration information for the ifup(8) and ifdown(8) commands.  This manpage describes the vlan extensions to
      the standard interfaces(5) file format.

      Primary extensions exist to make and destroy vlan interfaces, secondary extensions exist for ipv4 interface manipulation which are generally needed when using (a lot
      of) vlans.

VLAN CREATION
      Vlan interface definitions exist of the vlan interface name, and an optional ´raw-device´ parameter.  Vlan interfaces are numbered 1 to 4095.  You have the option to
      have interface names zero-padded to 4 numbers, or just the plain digits without leading zero.  The following example shows four ways to create a vlan with  id  1  on
      interface eth0.  They all result in different names.

       iface eth0.1 inet static
           address 192.168.1.1
           netmask 255.255.255.0

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

       iface eth0.0001 inet static
           address 192.168.1.1
           netmask 255.255.255.0

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

       # We don't have br support out of the box
       iface br0.2 inet static
           vlan-raw-device br0
           address 192.168.1.1
           netmask 255.255.255.0

       # Aliases are ignored
       iface br0.2:1 inet static
           address 192.168.1.1
           netmask 255.255.255.255

EXTRA IFACE OPTIONS
      Usually someone who uses vlans also wants to do some other manipulations with the ip stack or interface.

      vlan-raw-device devicename
             Indicates the device to create the vlan on.  This is ignored when the devicename is part of the vlan interface name.

      ip-proxy-arp 0|1
             Turn proxy-arp off or on for this specific interface.  This also works on plain ethernet like devices.

      ip-rp-filter 0|1|2
             Set the return path filter for this specific interface.  This also works on plain ethernet like devices.

      hw-mac-address mac-address
             This sets the mac address of the interface before bringing it up.  This works on any device that allows setting the hardware address with the ip command.

AUTHOR
      This manpage was adapted from interfaces(5) by Ard van Breemen <ard@kwaak.net>

SEE ALSO
      vconfig(8) interfaces(5)

vlan                                                                          September 30 2007                                                           VLAN-INTERFACES(5)

NOTA: Observeu que els aliases són ignorats al fitxer interfaces però es poden crear amb vconfig

$ locate vlan-interfaces 
/usr/share/man/man5/vlan-interfaces.5.gz
$ dpkg -S /usr/share/man/man5/vlan-interfaces.5.gz
vlan: /usr/share/man/man5/vlan-interfaces.5.gz

/usr/share/doc/vlan/howto.html

El podeu consultar amb:

$ firefox /usr/share/doc/vlan/howto.html

/usr/share/doc/vlan/vlan.html

El podeu consultar amb:

$ firefox /usr/share/doc/vlan/vlan.html

Consultar les VLAN

/proc/net/vlan

A la carpeta proc el nucli de Linux mostra informació sobre les VLAN definides al sistema. Concretament la informació referent a les VLAN es troba a la carpeta /proc/net/vlan

Per exemple es pot consultar la configuració a:

$ sudo cat /proc/net/vlan/config
VLAN Dev name	 | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
bond0.1        | 1  | bond0
bond0.11       | 11  | bond0
bond0.12       | 12  | bond0
bond0.102      | 102  | bond0
bond0.126      | 126  | bond0
bond0.132      | 132  | bond0
bond0.135      | 135  | bond0
bond0.1209     | 1209  | bond0
bond0.10       | 10  | bond0

I per veure la informació de cada VLAN:

$ sudo cat /proc/net/vlan/bond0.1
bond0.1  VID: 1	 REORDER_HDR: 1  dev->priv_flags: 1
        total frames received      9823127
         total bytes received    585106085
     Broadcast/Multicast Rcvd      8747173

     total frames transmitted        32209
      total bytes transmitted      2125866
           total headroom inc            0
          total encap on xmit            0
Device: bond0
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
 EGRESS priority mappings:

Exemples de configuració

Afegir una interfície vlan

Cal utilitzar l'ordre vconfig

$ sudo vconfig add eth0 5

En aquest exemple creem la interfície eth0.5 que correspon a la VLAN amb VLAN_ID=5 sobre la interfície real eth0.

Eliminar una interfície vlan

Cal utilitzar l'ordre vconfig

$ sudo vconfig rem eth0.5

Consultar les vlan

Hi ha múltiples formes. Per exemple es pot consultar el fitxer especial de la carpeta /proc:

$ sudo cat /proc/net/vlan/config
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_PLUS_VID_NO_PAD
vlan100        | 100  | eth1
vlan110        | 110  | eth1
vlan120        | 120  | eth1
vlan130        | 130  | eth1
vlan140        | 140  | eth1
vlan150        | 150  | eth1

Per a obtenir detalls de cada vlan concreta:

$ sudo cat /proc/net/vlan/intranet.11
intranet.11  VID: 11	 REORDER_HDR: 1  dev->priv_flags: 1
         total frames received        23678
         total bytes received     22920003
     Broadcast/Multicast Rcvd           50

     total frames transmitted        20900
      total bytes transmitted      3354310
           total headroom inc            0
          total encap on xmit            0
Device: intranet
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
EGRESS priority mappings: 



Configuració permanent

Amb l'ordre IP

Al fitxer interfaces cal definir la interfície física com a manual:

auto eth0
iface eth0 inet manual

Al posar manual d'interfície física està disponible per a la seva gestió amb el paquet ifupdown, però no es configura al fitxer interfícies. La configuració la farem als hooks de configuració de la xarxa. Editeu el fitxer:

$ sudo joe /etc/network/if-up.d/vlans
#! /bin/sh
# CONFIGURACIO VLANS

set -e

if [ "$IFACE" = eth0 ]; then
        /sbin/ip addr add 0.0.0.0/0 dev eth0
        /sbin/ip link set dev eth0 up
        /sbin/ip link add link eth0 name eth0.2 type vlan id 2
        /sbin/ip addr add 192.168.1.145/24 brd 192.168.100.255 dev eth0.2
        /sbin/ip link set dev eth0.2 up
        /sbin/ip route flush cache  
  
        exit 0
fi


Exemple a archlinux:

https://wiki.archlinux.org/index.php/VLAN

Amb vconfig

Hooks de ifupdown

En teoria només configurant les VLAN al fitxer interfaces no caldria utilitzar vconfig add, ja que els fitxers de configuració del paquet vlan com:

/etc/network/if-pre-up.d/vlan

Fan aquesta feina.

NOTA: A mi no m'ha funcionat a una Ubuntu Server 10.10. Els scripts no identifiquen la nova interfície de xarxa a la variable $IFACE

Manual

Per tal que el mòdul sempre estigui carregat, afegiu la línia:

8021q 

Al fitxer /etc/modules.

IMPORTANT: És gràcies al fitxer /etc/network/if-pre-up.d/vlans que es carreguen automàticament les vlan (ordre vconfig add)

I per fer permanent la configuració de les vlan cal posar-les al fitxer /etc/network/interfaces (la comanda vconfig de forma similar al que passa amb ifconfig no fa canvis de forma permanent):

# The primary network interface
auto eth6
iface eth6 inet dhcp

# VLAN AMB VLANID=2
auto eth6.2
iface eth6.2 inet static
       address 192.168.6.1
       netmask 255.255.255.0
       network 192.168.6.0
       broadcast 192.168.6.255
# VLAN AMB VLANID=3 
# IP address for VLAN 3:
auto eth6.3
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

Ordre ifconfig

Un cop creades les interfícies VLAN amb l'ordre vconfig, aleshores aquestes interfícies es poden configurar com qualsevol altre interfície utilitzant l'ordre ifconfig. Vegeu un exemple a l'ordre vconfig.

Vegeu també ifconfig.

Recordeu que ifconfig és una ordre que no fa els canvis permanents. Per aplicar canvis permanents cal modificar fitxers de configuració com /etc/network/interfaces. El fitxer interfaces està gestionat pel paquet ifupdown i les ordres ifup i ifdown. El paquet vlan introdueix modificacions que permeten utilitzar vlans al fitxer interfaces tot i que segurament és millor utilitzar l'ordre ip i evitar l'ordre vconfig. Vegeu la introducció d'aquest article.

Ordre IP

L'ordre ip és una de les grans desconegudes i encara més ho és algunes de les seves habilitats com per exemple la de la configuració de VLANs. L'ordre forma part del paquet iproute que a diferència del paquet vlan ve inclòs per defecte a qualsevol distribució Linux moderna.

La sintaxi és:

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

On:

  • INTERFACE: és el nom de la targeta de xarxa física/real on volem crear la VLAN. Per exemple eth0
  • INTERFACE.VID: és el nom de la interfície virtual de tipus vlan. Per exemple ether0.2, que correspondria a la VLAN amb VLAN_ID=2
  • VID: és l'identificador de la VLAN. Ha de ser un número enter.

Es pot utilitzar l'ordre ip link per configurar les VLAN. Per exemple:

$ sudo ip link add link eth0 name eth0.2 type vlan id 2

On configurem una interfície virtual de tipus VLAN amb VLAN_ID=2 a la interfície física eth0. Amb l'ordre anterior substituiriem l'obsoleta ordre vconfig:

$ sudo vconfig add eth0 2

Per consultar la interfície de xarxa cal utilitzar l'opció -a de l'ordre "obsoleta" ifconfig:

$ ifconfig -a

O utilitzar:

$ ip link

Per fer la configuració lògica a nivell IP podeu utilitzazr també ifconfig o ip, com si fos una interfície de xarxa qualsevol. La sintaxi de la comanda IP és:

$ ip addr add IP/NETMASK brd BROADCAST-ADDR dev INTERFACE.VID
$ ip link set dev INTERFACE.VID up

Un exemple:

$ sudo ip addr add 192.168.100.1/24 brd 192.168.100.255 dev eth0.100
$ sudo ip link set dev eth0.100 up

Per desconfigurar-la:

$ sudo ip link set dev eth0.100 down

A més de suportar la nomenclatura típica de les vlan (interfície_real.VLAN_ID) també es pot utilitzar altres noms com:

$ sudo ip link add link eth0 name myvlan type vlan id 2 loose_binding on

Per esborrar una interfície de xarxa:

$ sudo ip link delete myvlan type vlan

Podeu consultar l'ajuda amb:

$ ip link add foo type vlan help
Usage: ... vlan id VLANID [ FLAG-LIST ]
                          [ ingress-qos-map QOS-MAP ] [ egress-qos-map QOS-MAP ]

VLANID := 0-4095
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG := [ reorder_hdr { on | off } ] [ gvrp { on | off } ]
        [ loose_binding { on | off } ]
QOS-MAP := [ QOS-MAP ] QOS-MAPPING
QOS-MAPPING := FROM:TO

Pendent...

TODO L'opció loose_binding flag stops the VLAN interface from tracking the line protocol status of the underlying device.

Al manual de l'ordre ip es fan diverses referències a les vlans:

$ man ip | grep -n vlan
23:       TYPE := [ vlan | maclan | can ]
38:               vf NUM [ mac LLADDR ] [ vlan VLANID [ qos VLAN-QOS ] ] [ rate TXRATE ]
320:                      vlan - 802.1q tagged virrtual LAN interface
322:                      macvlan - virtual interface base on link layer address (MAC)
397:                      vlan VLANID - change the assigned VLAN for the specified VF. When specified, all traffic sent from the VF will be tagged with the specified  VLAN    ID. 
403:                      ity bits in the VLAN tag. If not specified, the value is assumed to be 0. Both the vf and vlan parameters must be specified. Setting both vlan and qos

Però està tristement documentat.

Consulteu també ordre ip.

Recursos:

Obtenir informació d'una interfície vlan

Suposem que la interfície VLAN està creada o la creeu amb vconfig:

$ sudo vconfig add eth0 5
Added VLAN with VID == 5 to IF -:eth0:-

Ara consulteu el fitxer:

$ sudo cat /proc/net/vlan/eth0.5
eth0.5  VID: 5	 REORDER_HDR: 1  dev->priv_flags: 1
        total frames received            0
         total bytes received            0
     Broadcast/Multicast Rcvd            0

     total frames transmitted            0
      total bytes transmitted            0
Device: eth0
INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
EGRESS priority mappings:

Exemple de configuració amb Ubuntu Server. Trunk

TODO

Exemple de fitxer de configuració interfaces:

# Interfaz VLAN 802.1q (Trunk)
auto eth1
iface eth1 inet manual

# Interfaz VLAN 100 - ROUTING
auto vlan100
iface vlan100 inet static
 address 192.168.100.254
 netmask 255.255.255.0
 vlan_raw_device eth1

# Interfaz VLAN 110 - SWITCH
auto vlan110
iface vlan110 inet static
  address 192.168.110.254
  netmask 255.255.255.0
  vlan_raw_device eth1

# Interfaz VLAN 120 - SERVERS
auto vlan120
iface vlan120 inet static
 address 192.168.120.254
 netmask 255.255.255.0
 vlan_raw_device eth1

# Interfaz VLAN 130 - PCS
auto vlan130
iface vlan130 inet static
address 192.168.130.254
netmask 255.255.255.0
vlan_raw_device eth1

# Interfaz VLAN 140 - VOIP
auto vlan140
iface vlan140 inet static
address 192.168.140.254
netmask 255.255.255.0
vlan_raw_device eth1

# Interfaz VLAN 150 - WIFI
auto vlan150
iface vlan150 inet static
address 192.168.150.254
netmask 255.255.255.0
vlan_raw_device eth1

MACVLAN

http://kerneltrap.org/mailarchive/linux-netdev/2009/3/7/5116004

macvlan o MACVLAN és un mòdul del kernel Linux que permet donar una segona adreça MAC a un adaptador de xarxa i poder-lo veure com un nou dispositiu en nivell superiors com el nivell IP. És útil per ta de pretendre que és tenen múltiples màquines o una màquina amb multihoming.

TODO: or in my case, to implement your own TCP stack without interference from the kernel IP code.

Aquest mòdul quasi no està documentat. Només es pot configurar amb l'ordre ip i no pas amb vconfig.

Un exemple de com crear un macvlan:

$ ip link add link eth0 name vmaclan0 address 00:aa:bb:cc:dd:dd' type macvlan
$ ifconfig -a vmaclan0
vmaclan0  Link encap:Ethernet  HWaddr 00:aa:bb:cc:dd:dd  
         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)

Com podeu veure no es pot identificar d'una targeta diferent, però amb:

$ sudo ip link show
....
12: vmaclan0@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
   link/ether 00:aa:bb:cc:dd:dd brd ff:ff:ff:ff:ff:ff


Sembla ser que també hi ha una eina anomenada multimac ([1]). Sembla ser però que aquesta eina no suport iptables.

TODO:

My ugly scars thus far:

   There is nearly no documentation.
   What there is, is inaccurate.
   Just because your iproute ip command doesn't have any help or documentation for "link add", doesn't mean it won't work. Lenny's will.
   You create a new interface thusly (note eth0, missing in most docs): 
   ip link add link eth0 address 00:19:d1:29:d2:58 macvlan0 type macvlan
   You can leave out the macvlan0 and it will allocate one.
   The Debian Lenny kernels do not have macvlan turned on.
   make-kpkg is broken in Lenny. Badly broken. But if you specify the architecture and revision on the command  
   line and turn off Xen support in your config you can get it to work.

Not macvlan's fault, but if you are working on a user space TCP stack and you are wondering why it seems to be sending RST packets... make sure you aren't accidentally sharing the link with the kernel.


Recursos:

Assignar múltiples adreces MAC a una sola interfície

Bridging vlans

# vconfig add eth0 7
# ip addr add dev eth0.7 192.168.30.254/24 brd +
# ip link set dev eth0.7 up
      

VLAN acceleration

Troubleshooting. Resol·lució de problemes

Consulteu:

http://www.microhowto.info/howto/configure_an_ethernet_interface_as_a_vlan_trunk_on_debian.html

VLANs etiquetades i bridges

Consulteu Bridging#VLANS_etiquetades_i_bridges

udev canvia el nom de les interfícies de xarxa virtuals

NOTA: A una Ubuntu 10.10 no m'ha passat

Un problema pot ser que udev provi de modificar el nom de les targetes virtuals ignorant.les. Per exemple:

$ sudo ip link add link eth0 name eth0.100 type vlan id 100
$ sudo ip link show 
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
   link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
3: rename1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN 
  link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff

Vegeu que udev la ha modificat a rename1!. Això no passat si al fitxer /etc/udev/rules.d/70-persistent-net.rules té al final de cada línia:

DRIVERS=="?*" 

Per exemple:

SUBSYSTEM=="net", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0", DRIVERS=="?*"

Recursos

Quina adreça IP posar a la interfície física sobre la que corre una VLAN?

S'utilitza sovint la IP especial 0.0.0.0:

# ifconfig eth0 0.0.0.0
# ifconfig eth0 up

NOTA: Observeu la similitud entre la VLAN per defecte que sovint té el VLAN_ID 1 de molts commutadors i la interficie física sobre la que es configura una interfície vlan virtual a Linux

Amb l'ordre IP:

   ip link set eth0 up $IF_HW_MAC_ADDRESS

On

Als scripts d'inici de ifupdown cal posar:

ip link set $IFACE address $IF_HW_MAC_ADDRESS

Cal tenir en compte que ifupdown només carregarà durant l'arrancada de la màquina aquelles targetes de xarxa que estiguin al fitxer /etc/network/interfaces. Podeu utilitzar l'opció manual:

auto eth0
iface eth0 inet manual

IMPORTANT: Amb manual no cal indicar cap adreça IP, de fet a la interfície pare no li posarem adreça IP

No oblideu tampoc de posar la línia amb el auto:

auto interface.vlanid

Per exemple:

auto eth0.1

Per a cada vlan per tal que arranquin durant l'inici del sistema! S'ha de posar tant a la interfície física com a totes les vlan que voleu carregar durant l'inici del sistema.


No es carreguen les VLAN al arrancar la màquina

IMPORTANT: Això només us pot passar amb l'ús de vconfig i el paquet vlan. Amb l'eina ip no caldria però aleshores és un altre tema com configurar la xarxa durant l'arrancada del sistema amb l'ordre ip

NOTA: A Debian/Ubuntu hauria de ser automàtica l'execució de les ordres vconfig add per afegir les vlan segons el nom de la targeta de xarxa (interficisfisica.tagvlan) (fitxer hook de ifupdown: /etc/network/if-pre-up.d/vlan)

En el meu cas no funcionava l'arrancada per tenir noms d'interfícies de xarxa modificats amb udev:

$ cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key. 

# PCI device 0x11ab:0x4364 (sky2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:18:a0:7e:d7", ATTR{dev_id}=="0x0",  
ATTR{type}=="1", KERNEL=="eth*", NAME="alumnat"
...

El fitxer:

/etc/network/if-pre-up.d/vlan

Busca patrons de noms habituals com ethX i per això no funciona. Hi ha dos opcions:

1) Modificar el fitxer vlan --> Problema al actualitzar el paquet vlan

Per exemple podem posar un case extra com el següent:

intranet*.*)
     echo "Intranet..."
     vconfig set_name_type DEV_PLUS_VID_NO_PAD
     VLANID=`echo $IFACE|sed "s/intranet*\.0*//g;"`
     echo "VLANID:$VLANID"
     IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth*\)\..*/\1/;"`
;;

Per carregar les vlan de les targetes de xarxa en les que el nom comenci per intranet.

2) Fer un script propi de configuració de les vlan

Que hauria de carregar les vlans segons la configuració del fitxer /etc/network/interfaces.

M'ha calgut posar un fitxer per carrega implícitament les vlan:

$ sudo joe /etc/network/if-pre-up.d/vlans

Amb el següent codi:

 #!/bin/bash
 #Rutes que surten per la intranet
 if [ "$IFACE" = informatica ]; then
      ip link set $IFACE address $IF_HW_MAC_ADDRESS   
      /sbin/vconfig add informatica 14  2> /dev/null
      /sbin/vconfig add informatica 15  2> /dev/null
      /sbin/vconfig add informatica 16  2> /dev/null
 fi
 
 exit 0

I fer-lo executable:

$ sudo chmod /etc/network/if-pre-up.d/vlans

NOTA: El fitxer no està actualitzar, consulteu el real del sistema, només està aquí a mode d'exemple

Consulteu: https://moodle.iesmontsia.org/maninfo/index.php/VLAN#No_es_carreguen_les_VLAN_al_arrancar_la_m.C3.A0quina

WARNING: Could not open /proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe you are not using PROCFS??

Normalment aquest missatge és degut al fet de no haver carregat el mòdul del kernel 8021q.

MTU

TODO: Traduir al català.

Problemas con la MTU

Prácticamente la única cuestión que puede dar problemas al utilizar VLANs es la MTU. Puesto que los paquetes etiquetados crecen en 4 bytes, es posible que con algunos drivers con bugs, la fragmentación del tráfico no funcione de la manera esperada. Lo que puede crear conexiones que no tengan problema con paquetes pequeños pero se nieguen a transmitir paquetes grandes.

Para detectar este problema es posible utilizar el comando ping con la opción -s que permite indicar el tamaño del paquete a transmitir. Debe comprobarse la comunicación en los dos sentidos, y si se observa que por ejemplo no hay ningún problema con paquetes pequeños pero con paquetes de 1700Bytes o más si hay problemas debe reducirse la MTU de la interfaz. Un tamaño razonable de MTU es 1400 bytes.

Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config

No és un error! és un missatge que apareix normalment al executar l'ordre:

$ sudo vconfig set_name_type DEV_PLUS_VID_NO_PAD
Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config

O similar. Consulteu:

Linux_VLAN#Noms_suportats_per_a_les_interf.C3.ADcies_VLAN

Vegeu també

tcpdump

Vegeu VLAN#tcpdump

Wireshark

  • 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

Vegeu també

Enllaços externs