Configuração inicial
Como administrador do Linux, você instalou uma nova caixa do Linux com 6 NICs eth0 a eth5. A interface eth0 está configurada corretamente e todas as outras interfaces estão ativas no momento, mas sem o endereço IP. Os caras da rede simplesmente conectaram quatro cabos a esta caixa. Dois cabos LAN são usados para conectar a caixa à rede de produção e dois são usados para conectar a caixa a uma rede privada. Você sabe apenas que eth0 está conectado à rede de produção. Mas você não sabe qual outra NIC está conectada ao mesmo comutador, pois há diferentes gerações de servidores e / ou os responsáveis pela rede usam as NICs erradas para suas conexões.
Tarefa em mãos
Como essa configuração é típica para sua infraestrutura, você deseja automatizar a configuração das interfaces de ligação. Agora você tem a tarefa de detectar quais NICs não estão conectadas e quais NICs estão vinculadas ao mesmo comutador para que possam ser ligadas. Você tem acesso apenas às caixas do Linux e não pode consultar os comutadores.
Ideias
É fácil detectar o status do link:
ethtool $device | grep 'Link detected' | cut -d ':' -f 2
Mas como combinar os dispositivos conectados ao mesmo comutador?
No HP-UX, existe uma ferramenta para esse fim chamada linkloop [1]. A ferramenta oficial do Linux está ausente (existe um projeto antigo do SourceForce).
As possíveis soluções que já me vieram à mente são:
Ouça em todas as interfaces com o tcpdump. Crie e envie um pacote ICMP (broadcast). As interfaces que veem esse pacote precisam estar conectadas ao mesmo switch. -> precisa de sugestões de ferramentas simples que possam ser usadas para isso. Eu gostaria de usar comandos de shell simples ou Python para os scripts.
Tente conversar com uma caixa externa através de um protocolo fácil (HTTP?) E veja se há uma resposta. -> Erro propenso e dependente de uma caixa externa.
Você tem mais idéias ou sugestões sobre como resolver esta tarefa?
Agradecemos antecipadamente por todos os comentários!