Configurei o switch virtual openvswitch e posso listá-lo com ip
o comando da seguinte maneira:
# Show all interfaces
ip link
Saída:
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
O openvswitch desta saída é nomeadoovsbr0
Agora quero usar o ip
comando para listar apenas esse switch virtual e excluir outras interfaces, por exemplo:
# List only bridges
ip link show type bridge
Resultado esperado:
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
Saída real:
<no output>
Por que espero que este comando seja gerado ovsbr0
?
Este problema é específico openvswitch
porque se eu usar o mesmo comando para listar pontes que não o são, openvswitch
ele funcionará bem.
Exemplo com uma ponte criada com ip
comando:
# Create bridge named "br0"
sudo ip link add br0 type bridge
# Show the newly created bridge called "br0"
ip link show type bridge
Fornece o resultado esperado:
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
Como você pode ver, o comando funciona se a ponte for criada com ip
o comando.
Mas não funciona paraopenvswitch
Pergunta:
- Como utilizo o
ip
comando para listar apenasopenvswitch
interfaces (switches virtuais)? - Por que o
ip
comando não funciona para listaropenvswitch
interfaces (switches virtuais)?
Contexto adicional:
O openvswitch
não foi criado com ip
o comando, mas sim com o comando ovs-vsctl que faz parte do openvswitch
pacote:
sudo ovs-vsctl add-br ovsbr0
No entanto, esta openvswitch
ponte pode ser excluída com ip
o comando, mesmo que não tenha sido criada com ip
o comando:
# Delete it with ip command
sudo ip link delete ovsbr0
# Alternative and conventional method
sudo ovs-vsctl del-br ovsbr0
O que eu tentei:
# List openvswitch only but specifying type other than TYPE bridge
ip link show type TYPE
Quais são os outros tipos de interface para testar a listagem?
# See TYPE := section from this output for types other than "bridge"
ip link show help
A interface Open vSwitch não é uma interface de ponte de kernel, mas uma interface openvswitch de kernel (acelerada) , com seu próprio driver separado.
Em caso de dúvida, qualquer tipo de interface será exibida com a
-details
opção (editada para corresponder ao OP):Então, naturalmente, o comando para exibir apenas este tipo é:
Este recurso sendo desenvolvido separadamente do iproute2, não devemos nos surpreender se a ajuda não o incluir. Por exemplo, da mesma forma,
wireguard
não aparece na ajuda, mas uma interface WireGuard (baseada em kernel) seria exibida usandoip link show type wireguard
.