En FreeBSD, si la interfaz en la que se encuentra un dispositivo IP es una NIC física, entonces puedo buscar la interfaz para la NIC física usando arp -a
.
Pero, ¿cuál es la forma más fácil de llegar desde una dirección IP de un dispositivo conocido a la interfaz en la que está conectada, si está en un puente o en alguna otra interfaz lógica ? Puedo obtener su interfaz lógica de ARP, pero luego solo muestra la interfaz de puente en ARP, no la interfaz externa real.
Lo que quiero identificar es la interfaz que representa una NIC externa real que está utilizando la IP, por lo que puedo conectar / desconectar el cable correcto, verificar el interruptor de red apropiado o lo que sea. Supongamos que no hay múltiples rutas, conexiones agregadas / Fallas o problemas de firewall por simplicidad, y que puedo distinguir las NIC externas de su controlador (em, re, etc.)
¿Cómo puedo conseguir eso?
Ejemplos:
- (Situación más común) del sistema tiene
em0
,em1
,em2
,em3
por y están puenteadosbridge0
que tiene una dirección IP designada. Conecto una computadora portátil a un interruptor que está conectado a uno deemo
-em3
. Cuando lo usoarp -a
, obtengo el dispositivo, pero aparece en la lista con una interfazbridge0
que es lógicamente correcta pero físicamente inútil. - (caso menos común) Una computadora portátil está conectada a través de VPN a un interruptor conectado a un puente si. La interfaz real enumerada es la de la VPN, no el puente o la NIC del conmutador.
- (Situación menos común con diferencia) Un dispositivo está mal configurado con una IP estática que no coincide con la subred de la interfaz. Quizás esté enviando y recibiendo transmisiones, de ser así, las recibiríamos. No tiene una entrada ARP porque ARP
who-has
se envía en la interfaz para la subred no real esperada. Pero respondería a un paquete con su IP estática o un ARP awho-has
través de la NIC correcta.
Nota: También hay otros casos (VPN, etc.) en los que puede haber varias capas de interfaces lógicas apiladas hasta que se llega a la interfaz física real que se está utilizando. Por lo tanto, el problema generalmente es detectar un dispositivo con una interfaz no física y recurrir a una interfaz subyacente que representa la NIC física a la que está conectado.