vconfig não marcação de pacotes de saída com tag vlan (Ubuntu)

4

Estou tentando experimentar uma interface vlan na minha máquina desktop Ubuntu. A área de trabalho possui apenas uma única interface (eth0) conectada à LAN da empresa. Depois de usar o vconfig para criar a interface vlan, a execução do wireshark na interface não mostra pacotes de saída como vlan marcados. Aqui está o que eu fiz:

$ 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...

Em seguida, adiciono a 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)

Até aí tudo bem .. Aqui está a informação adicional relacionada:

$ 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

Agora eu tento pingar algumas máquinas inexistentes no intervalo 192.168.10.xx:

$ ping -I eth0.55 192.168.10.101

No entanto, ao capturar essa interface com wireshark ou tcpdump, vejo mensagens de arp normais sendo enviadas. Eles não são vlan marcados. (Meu interesse aqui é primeiro ver se consigo extrair pacotes vlan da minha máquina. Trabalhar com vlans reais virá mais tarde). Eu também sou capaz de pingar a interface eth0.55 de uma VM vbox na mesma máquina.

$ 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

Eu até tentei o comando set_flag, mas ainda não foi:

$ sudo vconfig set_flag eth0.55 0

O que estou perdendo?

    
por Gopal 23.03.2013 / 07:50

3 respostas

6

Eis uma pergunta semelhante: Tags de VLAN não mostradas na captura de pacotes ( Linux) via tcpdump

Na verdade, o que você vê são pacotes filtrados pelo kernel ao usar o tcpdump, onde a camada vlan é removida para que pareça sem tag.

Você já viu os quadros transferidos via /proc/net/vlan/eth0.55 , então funciona muito bem.

De acordo com o seu caso, use este comando para ver a tag da VLAN:

tcpdump -Uw - | tcpdump -i eth0 -en -r - vlan 55
    
por 14.10.2013 / 16:16
0

Para ver as tags 802.1q reais, tente capturar na interface física subjacente, ou seja, eth0 , que é onde os pacotes entram / saem.

    
por 24.03.2013 / 14:59
0

Provavelmente você não sente falta de nada.
Quando você não tem vlan na interface, você pode ver as tags 802.1q com o tcpdump.
Quando você adiciona vlan à interface, o módulo 8021q habilita a aceleração de hardware e ... você para ver tags. Você verá o tráfego separado em subinterfaces, mas o tcpdump na interface principal mostra o tráfego de todas subinterfaces com tags removidas.
Se você tem ethtool moderno, pode ver ethtool -k eth0 output e tentar desativar a aceleração com ethtool -K eth0 rxvlan off; ethtool -K eth0 txvlan off; (para ser honesto, nunca testei se ele ajuda a ver as tags e não tem acesso a um bom host de laboratório agora para verificar).
Mas eu acho que você deve apenas configurar o resto da sua infra-estrutura e tentar ver se está funcionando como esperado (veja as solicitações arp marcadas em outra máquina com o módulo 8021q não carregado).

    
por 25.03.2013 / 00:19

Tags