
私が知っている限り、Linuxには4つの主要なネットワークインタフェースタイプがあります。ton、tap、bridge、およびPhysicalです。
KVMを実行しているコンピュータでシステム管理を実行すると、同じコンピュータ上のタブ、ブリッジ、および物理インターフェイスに頻繁にアクセスできますが、区別することはできません。ifconfig
結果に大きな違いはありませんip
。
インターフェイスがチューニング、タブ、ブリッジ、または物理インターフェイスであるかどうかはどうすればわかりますか?
注:Linuxには他の種類のネットワークインターフェースがないとは言いませんが、この4つのタイプのみを知っています。
答え1
TUNおよびTAPデバイス関連:上記の確認を実行するだけでは不十分です。
その理由は、TUN デバイスを作成し (誤って) tap10 と呼ぶか、TAP デバイスを作成して名前を tun10 と指定するためです。もしそうなら、それがトンデバイスかタブデバイスかどうかはどうすればわかりますか?もちろん、両方のデバイスに「tun_flags」エントリがあるためです。
答えは走っています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
答え2
簡単に区別できる方法はないようです。いくつかのナビゲーションの最後に、/sys/class/net
次の違いが見つかりました。
- 物理デバイスには
/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
答え3
tun、tap、vethなど、特定のデバイスの種類を知らせるやや文書化されていない-d
オプションを使用できます。ip(8)
例えば
$ 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
最後の行に注意してください。
-d
で使用することもできますip l
。
答え4
@benが述べたように、ip -d l
インターフェイスのタイプに関するインターフェイスの詳細が提供されます。しかし、情報が少し混乱しています。どのタイプのインターフェースに興味があるかを知っている場合ip link show type TYPE
もう1つの可能性は、そのタイプのすべてのインターフェイスを一覧表示することを使用することです。
どこ
TYPE := { vlan | veth | vcan | vxcan | dummy | ifb | macvlan | macvtap |
bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |
gre | gretap | erspan | ip6gre | ip6gretap | ip6erspan |
vti | nlmon | team_slave | bond_slave | bridge_slave |
ipvlan | ipvtap | geneve | vrf | macsec | netdevsim | rmnet }