OpenNMS apresenta a descoberta da através da coleção SNMP (como tenho certeza que outras ferramentas similares).
O OpenNMS extrai informações de MAC, VLAN e STP dos dispositivos gerenciados e usa isso para criar uma topologia l2, que pode ser mapeada. (Atualmente, o mapeamento nativo funciona apenas para o IE, mas acho que a próxima versão estável - 1.8 - terá melhor suporte ao mapeamento). Você pode ver quais nós estão conectados a um determinado nó por porta.
Como alternativa, se você se sente à vontade para escrever algo, o snimpy fornece uma excelente interface programática para o SNMP, ignorando grande parte da sobrecarga de programação do SNMP. Eu o usei recentemente para gerar um resumo ao vivo de vlans por porta, algo que nossos comutadores não relataram corretamente.