私が構成したオープンスイッチip
次のコマンドを使用して一覧表示できる仮想スイッチ:
# Show all interfaces
ip link
出力:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
<snip>
5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 8a:94:11:48:01:db brd ff:ff:ff:ff:ff:ff
6: ovsbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/ether e6:db:3f:88:4b:48 brd ff:ff:ff:ff:ff:ff
この出力の openvswitch 名は次のとおりです。ovsbr0
ip
これで、次のコマンドを使用してこの仮想スイッチのみを一覧表示し、他のインターフェイスは除外したいと思います。
# List only bridges
ip link show type bridge
予想出力:
6: ovsbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/ether e6:db:3f:88:4b:48 brd ff:ff:ff:ff:ff:ff
実際の出力:
<no output>
このコマンドが出力されるのはなぜですかovsbr0
?
この質問は具体的ですopenvswitch
。これは、同じコマンドを使用してそうでないブリッジを一覧表示するとopenvswitch
正しく機能するためです。
次のコマンドを使用して生成されたブリッジの例ip
:
# Create bridge named "br0"
sudo ip link add br0 type bridge
# Show the newly created bridge called "br0"
ip link show type bridge
期待される出力を提供します。
7: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 6a:76:6f:50:da:35 brd ff:ff:ff:ff:ff:ff
ご覧のとおり、このコマンドを使用してブリッジを作成すると、コマンドは機能しますip
。
しかし、これはうまくいきませんopenvswitch
質問:
- このコマンドを使用してインターフェイス(仮想スイッチ)のみを一覧
ip
表示するにはどうすればよいですか?openvswitch
- このコマンドがインターフェイス(仮想スイッチ)を一覧
ip
表示できないのはなぜですか?openvswitch
追加の背景:
openvswitch
コマンドでip
生成されるのではなく、次のように生成されます。ovs-vsctlopenvswitch
パッケージの一部であるコマンド:
sudo ovs-vsctl add-br ovsbr0
ただし、コマンドを使用してブリッジを作成していない場合でも、次のコマンドを使用して削除できますopenvswitch
。ip
ip
# Delete it with ip command
sudo ip link delete ovsbr0
# Alternative and conventional method
sudo ovs-vsctl del-br ovsbr0
私が試したこと:
# List openvswitch only but specifying type other than TYPE bridge
ip link show type TYPE
リストをテストできる他のインタフェースタイプは何ですか?
# See TYPE := section from this output for types other than "bridge"
ip link show help
答え1
Open vSwitch インターフェイスはカーネルではありません。足インターフェイスですがコア(-加速)オープンスイッチインターフェイスには独自の独立したドライバがあります。
疑わしい場合、このオプションはすべてのインターフェースタイプに対して表示されます-details
(OPに一致するように編集されています)。
$ ip -details link show dev ovsbr0
6: ovsbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/ether e6:db:3f:88:4b:48 brd ff:ff:ff:ff:ff:ff promiscuity 1 allmulti 0 minmtu 68 maxmtu 65535
openvswitch numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536 gso_ipv4_max_size 65536 gro_ipv4_max_size 65536
$ ip -details -json link show dev ovsbr0 | jq -r '.[].linkinfo.info_kind'
openvswitch
したがって、当然、このタイプのみを表示するコマンドは次のようになります。
ip link show type openvswitch
このリソースは別々に開発されました。IP ルート 2ヘルプに含まれていなくても、人々は驚かないでください。たとえば、wireguard
ヘルプには同じ内容は表示されませんが(カーネルベースの)WireGuardインターフェイスではip link show type wireguard
。