Configuración inicial
Como administrador de Linux, ha instalado una nueva caja de Linux con 6 NIC eth0 a eth5. La interfaz eth0 está configurada correctamente y todas las demás interfaces están activas actualmente pero sin dirección IP. Los chicos de la red simplemente han conectado cuatro cables a esta caja. Se utilizan dos cables LAN para conectar la caja a la red de producción y dos para conectar la caja a una red privada. Solo sabe que eth0 está conectado a la red de producción. Pero no sabe qué otra NIC está conectada al mismo conmutador, ya que hay diferentes generaciones de servidores y / o los chicos de la red usan las NIC incorrectas para sus conexiones.
Tarea en cuestión
Como esta configuración es típica para su infraestructura, desea automatizar la configuración de las interfaces de enlace. Ahora tiene la tarea de detectar qué NIC no están conectadas en absoluto y qué NIC están vinculadas al mismo conmutador para que puedan conectarse. Solo tiene acceso a los cuadros de Linux y no puede consultar los conmutadores.
Ideas
Detectar el estado del enlace es fácil:
ethtool $device | grep 'Link detected' | cut -d ':' -f 2
Pero, ¿cómo hacer coincidir los dispositivos que están conectados al mismo conmutador?
En HP-UX hay una herramienta para ese propósito llamada linkloop [1]. Falta la herramienta oficial de Linux (aunque hay un antiguo proyecto de SourceForce).
Las posibles soluciones que ya se me han ocurrido son:
Escuche en todas las interfaces con tcpdump. Diseñe y envíe un paquete ICMP (difusión). Las interfaces que ven ese paquete deben estar conectadas al mismo conmutador. -> necesita sugerencias de herramientas simples que puedan usarse para eso. Me gustaría usar comandos de shell simples o Python para las secuencias de comandos.
Intente hablar con una caja externa a través de un protocolo fácil (HTTP?) Y vea si hay una respuesta. -> Error propenso y dependiente de una caja externa.
¿Tiene más ideas o sugerencias sobre cómo resolver esta tarea?
Gracias de antemano por todos los comentarios!