Hasta donde yo sé, hay 4 tipos principales de interfaces de red en Linux: tun, tap, bridge y física.
Cuando estoy haciendo sys admin en máquinas que ejecutan KVM, generalmente encuentro interfaces táctiles, de puente e físicas en la misma máquina, sin poder distinguirlas. No puedo ver diferencias significativas en los ifconfig
resultados, como en los ip
resultados.
¿Cómo puedo saber si una interfaz es tun, tap, bridge o física?
nota: No afirmo que no hay otros tipos de interfaces de red en Linux, pero solo conozco estos 4.
device
enlace simbólico: sels -l /sys/class/net/lan1/device
muestra/sys/class/net/lan1/device -> ../../../dsa.0
en un enrutador que ejecuta OpenWrt (Linux incorporado). Descubrí que las interfaces físicas tienen una entrada de interrupción en la salida deifconfig
. Es extraño que una pregunta tan simple sobre una interfaz parezca tan difícil de responder. La investigación continúa ...Con respecto a los dispositivos TUN y TAP: no es suficiente hacer la verificación anterior.
La razón es que puede haber casos cuando creamos un dispositivo TUN y (por error) lo llamamos tap10; o cree un dispositivo TAP y asígnele el nombre tun10. Entonces, ¿cómo puedo saber si es un dispositivo tun o un dispositivo tap, ya que ambos tendrán entradas "tun_flags"?
La respuesta es correr
ethtool -i tunOrTapDeviceName
.Ejemplo
fuente
driver
campo. se mostrarán puentesdriver: bridge
. Desafortunadamente, Tun / Tap aparecen comodriver: tun
, rompiendo el patrón :).Puede usar la
-d
opción más o menos indocumentada paraip(8)
, que le indica el tipo de ciertos dispositivos, incluidos tun, tap & veth:p.ej
... nota
tun
en la última línea.También puedes usar
-d
conip l
.fuente
Este comando hará el trabajo:
ip tuntap
Ejemplo de resultado:
o con detalles:
ip -details tuntap
Ejemplo de resultado:
fuente