web-dev-qa-db-ja.com

LinuxのVLANインターフェースから正常にpingするにはどうすればよいですか?

UbuntuVMでVLANインターフェイスを作成しました:

root@vagrant-ubuntu-trusty-64:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:2e:8d:5d  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe2e:8d5d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11689 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6208 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6404810 (6.4 MB)  TX bytes:503856 (503.8 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:5b:5e:65  
          inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe5b:5e65/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2099 errors:0 dropped:0 overruns:0 frame:0
          TX packets:255 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:226325 (226.3 KB)  TX bytes:17918 (17.9 KB)

eth1.100  Link encap:Ethernet  HWaddr 08:00:27:2e:8d:5d  
          inet addr:10.0.2.20  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe2e:8d5d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:2286 (2.2 KB)

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:65536  Metric:1
          RX packets:235 errors:0 dropped:0 overruns:0 frame:0
          TX packets:235 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:26320 (26.3 KB)  TX bytes:26320 (26.3 KB)

root@vagrant-ubuntu-trusty-64:~# ip -d link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:2e:8d:5d brd ff:ff:ff:ff:ff:ff promiscuity 0 
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:5b:5e:65 brd ff:ff:ff:ff:ff:ff promiscuity 0 
5: eth1.100@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    link/ether 08:00:27:2e:8d:5d brd ff:ff:ff:ff:ff:ff promiscuity 0 
    vlan protocol 802.1Q id 100 <REORDER_HDR> 

ただし、ボックスの外にあるものでpingを実行しようとすると、VLANインターフェイスが正常にARPできません。

root@vagrant-ubuntu-trusty-64:~# ping -I eth1.100 www.google.com
PING www.google.com (216.58.216.4) from 10.0.2.20 eth1.100: 56(84) bytes of data.
From vagrant-ubuntu-trusty-64 (10.0.2.20) icmp_seq=1 Destination Host Unreachable
From vagrant-ubuntu-trusty-64 (10.0.2.20) icmp_seq=2 Destination Host Unreachable

Tcpdumpは以下を示しています。

vagrant@vagrant-ubuntu-trusty-64:~$ Sudo tcpdump -i eth1.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1.100, link-type EN10MB (Ethernet), capture size 65535 bytes
08:15:00.244512 ARP, Request who-has lax02s21-in-f4.1e100.net tell vagrant-ubuntu-trusty-64, length 28
08:15:01.241409 ARP, Request who-has lax02s21-in-f4.1e100.net tell vagrant-ubuntu-trusty-64, length 28
08:15:02.242227 ARP, Request who-has lax02s21-in-f4.1e100.net tell vagrant-ubuntu-trusty-64, length 28
08:15:03.262607 ARP, Request who-has lax02s21-in-f4.1e100.net tell vagrant-ubuntu-trusty-64, length 28

すべてを正しく設定しましたか?

1
Kintarō

いくつかの潜在的な問題があります

奇妙な名前VLANインターフェース

5:eth1.100@eth0

インターフェイスにeth1.100という名前を付けました(物理インターフェイスeth1のVLAN 100の規則))が、実際にはeth0にあります。

物理ネットワーク構成

(仮想)マシンの外部のネットワークについては何も言及していません。リンクの反対側のスイッチ/ルーターは、VLANタグ付きフレームを予期してから、それらを使用して何かを行う必要があります。外部の実際のネットワークへのLinuxブリッジデバイスの場合は、フレームを直接フレーム化するため、外部の物理スイッチやルーターがこれを処理する必要があります。

ルーティングテーブル

実行すると表示可能

route -n

この表は、IPパケットがシステムからどのように出るかを示しています。ルーティングテーブルのエントリと同じサブネット上にないgoogleのIPアドレスは、(おそらく)デフォルトゲートウェイのルールに従います。 pingコマンドで-Iを使用すると、パケットが送信できるインターフェイスが制限されます。そのインターフェースに関連付けられたデフォルトゲートウェイがない場合(およびGoogleのIPアドレスの明示的なルートがない場合)、パケットはシステムを離れることができません。

1つのサブネットを複数のVLANにまたがろうとすると、主にルーターが応答を送信するインターフェイスで、ルーター側とルーター側の両方で問題が発生する可能性があることに注意してください。

概要

コンピューターの外部のネットワークがVLANタグ付きフレームを持つことをサポートしていることを確認し、VLANインターフェイスを正しい物理インターフェイスに設定していることを確認し、ルーティングテーブルを確認します。おそらく、適切なルートエントリを追加する必要があります。また、VLAN100用に別のサブネットを選択する必要があります。

2
John O'M.