web-dev-qa-db-ja.com

vconfigが発信タグにVLANタグをタグ付けしない(Ubuntu)

私のデスクトップubuntuマシンでVLANインターフェイスを試してみようとしています。デスクトップには、会社のLANに接続されている単一のインターフェース(eth0)が1つだけあります。 vconfigを使用してvlanインターフェイスを作成した後、そのインターフェイスでWiresharkを実行しても、発信パケットがVLANタグ付きとして表示されません。これが私がしたことです:

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

次に、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)

これまでのところ良い..ここに追加の関連情報があります:

$ 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

次に、192.168.10.xxの範囲にある存在しないマシンにpingを実行してみます。

$ ping -I eth0.55 192.168.10.101

ただし、wiresharkまたはtcpdumpでこのインターフェイスをキャプチャすると、通常のarpメッセージが送信されているのがわかります。タグ付けされたVLANではありません。 (ここでの私の関心は、最初に自分のマシンからVLANパケットを取得できるかどうかを確認することです。実際のVLANでの作業は後で行われます)。同じマシンのvbox VMからeth0.55インターフェイスにpingすることもできます。

$ 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

私もset_flagコマンドを試しましたが、それでも行けません:

$ Sudo vconfig set_flag eth0.55 0

何が欠けていますか?

4
Gopal

同様の質問は次のとおりです: VLANタグはtcpdumpを介したパケットキャプチャ(Li​​nux)に表示されません

実際に見たのは、tcpdumpを使用しているときにカーネルによってフィルタリングされたパケットであり、vlanレイヤーが削除されているため、常にタグなしのように見えます。

/proc/net/vlan/eth0.55を介して転送されたフレームがあることをすでに確認したので、非常にうまく機能します。

状況に応じて、このコマンドを使用してVLANタグを確認します。

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

実際の802.1qタグ、基礎となる物理インターフェースでキャプチャしてみてください、つまりeth0、これはパケットが出入りする場所です。

0
Ashish SHUKLA

おそらくあなたは何も見逃していないでしょう。
インターフェイスにvlanがない場合、tcpdumpで802.1qタグを確認できます。
vlanをインターフェイスに追加すると、8021qモジュールでハードウェアアクセラレーションが有効になり、...タグが表示されなくなります。サブインターフェースで分離されたトラフィックが表示されますが、メインインターフェースのtcpdumpには、タグが削除されたallサブインターフェースからのトラフィックが表示されます。
最新のethtoolを使用している場合は、ethtool -k eth0の出力を確認し、ethtool -K eth0 rxvlan off; ethtool -K eth0 txvlan off;でアクセラレーションを無効にすることができます(正直に言うと、それが役立つかどうかはテストしませんタグを表示し、適切なラボホストへのアクセス権がないため、現在確認できません)。
しかし、インフラストラクチャの残りの部分を構成し、それが期待どおりに機能するかどうかを確認する必要があると思います(8021qモジュールがロードされていない別のマシンでタグ付きarp要求を確認してください)。

0
dsznajder