Saltar al contenido

¿Cómo saber si una interfaz de red es tap, tun, bridge o física?

Posterior a consultar con expertos en la materia, programadores de diversas áreas y profesores hemos dado con la solución a la cuestión y la plasmamos en esta publicación.

Solución:

En cuanto a los dispositivos TUN y TAP: no basta con hacer la comprobación anterior.

La razón es que puede haber casos en los que 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.

  • En el caso de un dispositivo TAP obtendremos: “bus-info: tap”.
  • En el caso de un dispositivo TUN obtendremos: “bus-info: tun”.

Ejemplo

$ 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

No creo que haya una manera fácil de distinguirlos. hurgando en /sys/class/net Encontré las siguientes distinciones:

  • Los dispositivos físicos tienen un /sys/class/net/eth0/device enlace simbólico
  • Los puentes tienen un /sys/class/net/br0/bridge directorio
  • Los dispositivos TUN y TAP tienen un /sys/class/net/tap0/tun_flags expediente
  • Los puentes y las interfaces loopback tienen 00:00:00:00:00:00 en /sys/class/net/lo/address

Puedes usar los más o menos indocumentados -d opción a ip(8)que le indica el tipo de ciertos dispositivos, incluidos tun, tap & veth:

p.ej

$ ip -d a
[regular devices]
6: virbr0-nic:  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

…Nota tun en la última línea.

También puedes usar -d con ip l.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *