ネットワークインターフェイスがタップ、調整、ブリッジ、物理のいずれであるかを知る方法


19

私の知る限り、Linuxには4つの主要なタイプのネットワークインターフェースがあります。tun、tap、bridge、およびphysicalです。

KVMを実行しているマシンでsys adminを実行しているとき、通常、同じマシン上のタップ、ブリッジ、および物理インターフェースに遭遇しますが、それらを区別することはできません。ifconfig結果のように、結果に大きな違いは見られませんip

インターフェイスがトンネル、タップ、ブリッジ、または物理であるかどうかを知るにはどうすればよいですか?

注:Linuxには他の種類のネットワークインターフェイスがないと主張していませんが、これらの4つだけを知っています。

回答:


18

それらを区別する簡単な方法はないと思います。チャンスをうかがっ/sys/class/netIは、次の区別が見つかりました:

  • 物理デバイスには/sys/class/net/eth0/deviceシンボリックリンクがあります
  • ブリッジには/sys/class/net/br0/bridgeディレクトリがあります
  • TUNおよびTAPデバイスには/sys/class/net/tap0/tun_flagsファイルがあります
  • ブリッジとループバックインターフェイスに00:00:00:00:00:00/sys/class/net/lo/address

/ sys /を調べることをお勧めします
user368507

仮想デバイスにもこのようなdeviceシンボリックリンクがあります:OpenWrt(組み込みLinux)を実行しているルーターでls -l /sys/class/net/lan1/device表示/sys/class/net/lan1/device -> ../../../dsa.0します。物理インターフェイスの出力に割り込みエントリがあることがわかりましたifconfig。インターフェースに関するこのような単純な質問に答えるのがとても難しいように思えるのは奇妙です。調査は続く...
ルミ

ppp仮想デバイスはどうですか?
マットフレーマン

23

TUNおよびTAPデバイスについて:上記のチェックを行うだけでは不十分です。

その理由は、TUNデバイスを作成し、(誤って)tap10と呼ぶ場合があるためです。または、TAPデバイスを作成してtun10という名前を付けます。それで、両方がもちろん「tun_flags」エントリを持っているので、どうやってそれがtunデバイスかtapデバイスかを知ることができますか?

答えは実行することethtool -i tunOrTapDeviceNameです。

  • TAPデバイスの場合、「bus-info:tap」を取得します。
  • TUNデバイスの場合、「bus-info:tun」を取得します。

$ ethtool -i tapfffb93e9-6a
driver: tun
version: 1.6
firmware-version:
bus-info: tap
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

インターフェイスが物理かブリッジかを確認するethtoolコマンドはありませんか?
madCode

この答えは、より簡潔で汎用的なソリューションです。
ジョシュアミラー

@madcode一般的なケースでは、driverフィールドが必要です。橋が表示されdriver: bridgeます。残念ながら、tun / tapは両方ともとして表示されdriver: tun、パターンを壊します:)。
sourcejedi

はい、これが答えです。もう1つは、intfが仮想であるかどうかだけを示しています!あなたは、インターフェイスの性質の兆候を与えない名前でタップインターフェイスに名前を付けることができます
MiniMe

9

に文書化されていない-dオプションを使用して、ip(8)tun、tap、vethなどの特定のデバイスのタイプを確認できます。

例えば

$ ip -d a
[regular devices]
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 52:54:00:c8:12:ec brd ff:ff:ff:ff:ff:ff promiscuity 0 
tun

... tun最後の行に注意してください。

使用することもできます-dip l


iproute2はこのような素晴らしいツールです。残念ながら、多くの機能を発見するのは困難です。
少しおい

4

このコマンドは仕事をします:

ip tuntap

結果の例:

vnet0: tap

または詳細付き:

ip-詳細tuntap

結果の例:

vnet0: tap
    Attached to processes: qemu-system-x86(2225)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.