
Sé que esta pregunta se marcó como "fuera de tema" y "no profesional", pero al crear una puerta de enlace o IDS, esto podría ser bastante relevante. Además, Google no encuentra nada utilizable...
Hay algo llamado tabla MAC (o tabla CAM) en cada conmutador común (según este artículo:https://en.wikipedia.org/wiki/CAM_Table)
Si el conmutador conoce exactamente la ruta a una dirección MAC y la anuncia en cada puerto (parece lógico)...
- Suponiendo que se trate de un sistema Linux, ¿es posible realizar consultas?cada¿Dirección MAC en la red en una interfaz específica?
Respuesta1
Generalmente instaloarpalerten un sistema para este propósito. Es un demonio que utiliza libcap para observar el tráfico. Mantiene una base de datos de direcciones mac por interfaz. También puede observar algunos tipos inusuales de eventos y enviar notificaciones. Realiza un seguimiento del último uso y mantendrá la base de datos durante los reinicios (en comparación con simplemente configurar una interfaz puente).
Respuesta2
Bueno, para ser justos, todos dicen "arp -a", pero no estoy satisfecho con esta respuesta, ya que solo muestra elconocidoDirecciones MAC (y su correspondiente IP).
Listartododirecciones en un puerto, deberá cambiar la configuración de red actual. Usaremos el paquete bridge-utils, pero cualquier otra implementación de puente (por ejemplo: OpenvSwitch) puede hacer esto. La siguiente descripción funcionará en sistemas basados en Debian:
- Primero debes instalar el paquete bridge-utils.
- Establezca el puerto seleccionado con ifdown
- Cree un puente en el puerto donde desea enumerar las direcciones MAC
Supongamos que el puerto es eth0 y la dirección IP es dinámica. En /etc/network/interfaces debería aparecer lo siguiente
allow-hotplug eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge-ports eth0
bridge_fd 0
bridge_stp off
Para aplicar estos cambios, puede usar ifup en eth0 y luego en br0, o simplemente reiniciar.
- Ahora puedes usar brctl para consultar el puerto.
Enumerará la tabla MAC completa:
root@debian:~# brctl showmacs br0
La salida debería verse así:
port no mac addr is local? ageing timer
1 ab:cd:ef:01:02:03 no 1.72
1 ab:cd:ef:01:02:04 no 25.52
1 ab:cd:ef:01:02:05 no 2.64
1 ab:cd:ef:01:02:06 no 10.67
1 ab:cd:ef:01:02:07 yes 0.00