¿Cómo recibir paquetes de multidifusión MAC basados ​​en la interfaz VLAN?

¿Cómo recibir paquetes de multidifusión MAC basados ​​en la interfaz VLAN?

¿Alguien puede ayudarme con la siguiente pregunta?

Antecedentes: dos PC (PC1 y PC2) con dos interfaces VLAN en cada una (eth0.2 y eth0.3) respectivamente. Las PC están conectadas mediante un enrutador WRT54GL en el medio.

Mi objetivo es enviar datos de multidifusión (por MAC, no por IP) desde eth0.2(PC1)-->eth0.2(PC2) de manera similar también para la interfaz eth0.3.

Ahora el problema es cuando hago multidifusión de los datos que recibe eth0.2, pero eth0.3 también los recibe. Necesito que los datos se reciban únicamente en eth0.2.

¿Es posible recibir datos en una interfaz VLAN particular? si es así por favor diríjame.

Gracias.

Respuesta1

Creo que si desea enviar paquetes de multidifusión MAC, es posible que desee configurar cada interfaz con una dirección de multidifusión MAC específica.

El comando que usarías para hacer esto es ip maddress add <MAC> <DEV>MAC y DEV son la dirección mac y el dispositivo al que deseas agregarlos.

Respuesta2

Compartiré mi comprensión del problema anterior.

cuando ejecuto TCPDUMP para ambas interfaces, es decir, eth0.2 y eth0.3, solo el receptor previsto (es decir, eth0.2 en el caso anterior) recibió los paquetes. No había paquetes en la interfaz eth0.3.

Estaba usando el socket PF_PACKET en el cliente para recibir los datos de multidifusión. Como mi objetivo era recibir desde una interfaz particular, utilicé setsockopt(Sock,SO_BINDTODEVICE,...), para vincularme a una interfaz. Pero después de consultar la página de manual del socket, entendí que SO_BINDTODEVICE no será compatible con sockets de paquetes. entonces usé bind() simple, para vincularme a una interfaz particular. Funcionó como se esperaba.

Gracias.

información relacionada