Até onde eu sei, existem 4 tipos principais de interfaces de rede no Linux: tun, tap, bridge e físico.
Quando estou executando o sys admin em máquinas executando o KVM, geralmente encontro interfaces de toque, ponte e físicas na mesma máquina, sem poder diferenciá-las. Não vejo diferenças significativas nos ifconfig
resultados, como nos ip
resultados.
Como posso saber se uma interface é tun, tap, bridge ou física?
Nota: Não afirmo que não haja outros tipos de interfaces de rede no Linux, mas conheço apenas essas 4.
device
link simbólico:ls -l /sys/class/net/lan1/device
Mostra/sys/class/net/lan1/device -> ../../../dsa.0
em um roteador executando o OpenWrt (Linux incorporado). Eu descobri que interfaces físicas têm uma entrada de interrupção na saída deifconfig
. É estranho que uma pergunta tão simples sobre uma interface pareça tão difícil de responder. A investigação continua ...Em relação aos dispositivos TUN e TAP: não basta fazer a verificação acima.
O motivo é que pode haver casos em que criamos um dispositivo TUN e (por erro) o chamamos tap10; ou crie um dispositivo TAP e chame-o de tun10. Então, como posso saber se é um dispositivo tun ou um dispositivo tap, já que os dois obviamente terão entradas "tun_flags"?
A resposta é correr
ethtool -i tunOrTapDeviceName
.Exemplo
fonte
driver
campo. pontes serão exibidasdriver: bridge
. Infelizmente, tun / tap ambos aparecem comodriver: tun
, quebrando o padrão :).Você pode usar a opção mais ou menos não documentada
-d
paraip(8)
, que informa o tipo de determinados dispositivos, incluindo tun, toque e veth:por exemplo
... nota
tun
na última linha.Você também pode usar
-d
comip l
.fonte
Este comando fará o trabalho:
ip tuntap
Exemplo de resultado:
ou com detalhes:
ip -details tuntap
Exemplo de resultado:
fonte