¿Cómo pasar de una interfaz lógica a la interfaz de la NIC subyacente que utiliza un dispositivo, en FreeBSD?

1

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, em3por y están puenteados bridge0que tiene una dirección IP designada. Conecto una computadora portátil a un interruptor que está conectado a uno de emo- em3. Cuando lo uso arp -a, obtengo el dispositivo, pero aparece en la lista con una interfaz bridge0que 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-hasse 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 a who-hastravé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.

Stilez
fuente

Respuestas:

0

Una interfaz en puente actúa como un interruptor, por lo que utiliza cualquier interfaz que necesite para comunicarse con la dirección de Ethernet que desea. Entonces, por ejemplo, si em0está directamente conectado a las direcciones mac aa.bb.cc.dd.ee.ffy a1.bb.cc.dd.ee.ff, mientras em1está directamente conectado a las direcciones mac aa.cc.bb.dd.ee.ffy a1.cc.bb.dd.ee.ff, ya sabe qué interfaz buscar. tcpdumpTambién es muy útil en situaciones como esta, si pasa el -einterruptor, también muestra las direcciones de Ethernet. Los otros casos generalmente pueden abordarse mirando las tablas de enrutamiento y deduciendo a partir de ahí si no la interfaz real, al menos la más probable. tcpdumpdemuestra ser el mejor asistente en casos como este una y otra vez.

gmelis
fuente