web-dev-qa-db-fra.com

vconfig ne marquez pas les paquets sortants avec la balise VLAN (Ubuntu)

J'essaie d'expérimenter une interface VLAN sur ma machine Ubuntu de bureau. Le bureau n'a qu'une seule interface (ETH0) connectée à la société LAN. Après avoir utilisé VCONFIG pour créer l'interface VLAN, exécutez WireShark sur l'interface ne figure pas de paquets sortants comme étiqueté VLAN. Voici ce que j'ai fait:

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 84:2b:2b:87:2c:87  
          inet addr:192.168.0.126  Bcast:192.168.0.255  Mask:255.255.255.0
          etc...

Ensuite, j'ajoute l'interface VLAN:

$ Sudo vconfig add eth0 55
$ Sudo ifconfig eth0.55 192.168.10.100 netmask 255.255.255.0 up
$ Sudo ifconfig eth0.55 mtu 1412
$ ifconfig -a

eth0      Link encap:Ethernet  HWaddr 84:2b:2b:87:2c:87  
          inet addr:192.168.0.126  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::862b:2bff:fe87:2c87/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12195 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7435 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6831057 (6.8 MB)  TX bytes:1138706 (1.1 MB)
          Interrupt:18 

eth0.55   Link encap:Ethernet  HWaddr 84:2b:2b:87:2c:87  
          inet addr:192.168.10.100  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::862b:2bff:fe87:2c87/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1412  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:168 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:23515 (23.5 KB)

Jusqu'ici, si bon .. voici les informations supplémentaires connexes:

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

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



$ Sudo iptables -L -v
Chain INPUT (policy ACCEPT 3317 packets, 2230K bytes)
 pkts bytes target     prot opt in     out     source     destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source     destination         

Chain OUTPUT (policy ACCEPT 1528 packets, 189K bytes)
 pkts bytes target     prot opt in     out     source     destination         




$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0.55

Maintenant, j'essaie de ping une machine inexistante dans la gamme 192.168.10.xx:

$ ping -I eth0.55 192.168.10.101

Cependant, lors de la capture de cette interface avec Wireshark ou TCPDump, je vois des messages d'ARP normaux en cours d'envoi. Ils ne sont pas marqués par VLAN. (Mon intérêt ici est de voir d'abord si je peux obtenir des paquets VLAN hors de ma machine. Travailler avec les VLAN réels viendra plus tard). Je suis également capable de ping l'interface ETH0.55 à partir d'une Vbox VM sur la même machine.

$ Sudo /usr/sbin/tcpdump -vv -i eth0.55
tcpdump: listening on eth0.55, link-type EN10MB (Ethernet), capture size 65535 bytes
11:55:52.625984 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.101 tell 192.168.10.100, length 28
11:55:53.625983 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.10.101 tell 192.168.10.100, length 28

J'ai même essayé la commande set_flag, mais toujours un non-Go:

$ Sudo vconfig set_flag eth0.55 0

Qu'est-ce que je rate?

4
Gopal

Voici une question similaire: Tags VLAN non affichés dans Paquet Capture (Linux) via TCPDump

En fait, ce que vous avez vu sont des paquets filtrés par le noyau lors de l'utilisation de TCPDump, où la couche VLAN est supprimée, il semble donc toujours rien à ressentir.

Vous avez déjà vu qu'il y a des cadres transférés via /proc/net/vlan/eth0.55 Cela fonctionne très bien.

Selon votre cas, utilisez cette commande pour voir le VLAN TAG:

tcpdump -Uw - | tcpdump -i eth0 -en -r - vlan 55
6
shawmzhu

Pour voir le réel 802.1q Tags, essayez de capturer sur l'interface physique sous-jacente, c'est-à-dire eth0, qui est où les paquets sont entrés/sortis.

0
Ashish SHUKLA

Vous ne manquez probablement rien.
[.____] Lorsque vous n'avez pas de VLAN sur l'interface, vous pouvez voir des balises 802.1Q avec TCPDump.
[.____] Lorsque vous ajoutez VLAN à l'interface, alors 8021Q Module Activer l'accélération matérielle et ... vous arrêtez de voir les balises. Vous verrez un trafic séparé sur les sous-interfaces mais TCPDump sur l'interface principale montre Trafic de -tous sous-interintriguets avec des balises dénudées.
Si vous avez moderne ethtool alors vous pouvez regarder ethtool -k eth0 Sortie et vous pouvez essayer de désactiver l'accélération avec ethtool -K eth0 rxvlan off; ethtool -K eth0 txvlan off; (Pour être honnête - je ne teste jamais si cela aide à voir des balises et ne pas avoir accès à un bon hôte laboratoire pour vérifier).
[.

0
dsznajder