Problemas de multidifusión con Java y Zeroconf (avahi) en Linux

Estoy tratando de desarrollar una solución basada en Java para máquinas virtuales que comiencen sin saber qué dirección IP estática deberían seleccionar automáticamente de una lista. Mi idea para la solución fue:

  1. Use Zeroconf / avahi para seleccionar una dirección IP para la VM
  2. Las máquinas virtuales transmiten sus direcciones MAC mediante multidifusión. Cada VM conocería el número esperado de direcciones MAC de igual.
  3. Una vez que todas las máquinas virtuales hayan recibido todas las demás direcciones MAC, las ordenarán alfabéticamente y seleccionarán una IP en función de la posición de su dirección MAC en la lista: IP.1, IP.2, etc.

Tenga en cuenta que DHCP no está disponible en este entorno bajo ninguna circunstancia y estoy tratando de encontrar una solución a este problema

Quisiera ayuda para resolver esta excepción. Por favor, avíseme si puede ayudar. ¡¡Gracias!!

java.net.SocketException: No such device
    at java.net.PlainDatagramSocketImpl.join(Native Method)
    at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:178)
    at java.net.MulticastSocket.joinGroup(MulticastSocket.java:319)

Aquí está el código Java que estoy usando:

InetAddress address = InetAddress.getByName(mIPAddress);
SocketAddress addr = new InetSocketAddress(address, mPort);
MulticastSocket multiSocket = new MulticastSocket(addr);
multiSocket.joinGroup(address);

Aquí está la salida de / sbin / ifconfig:

eth0      Link encap:Ethernet  HWaddr 08:00:27:1D:BB:21  
      inet6 addr: fe80::a00:27ff:fe1d:bb21/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:152 errors:0 dropped:0 overruns:0 frame:0
      TX packets:182 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:35179 (34.3 KiB)  TX bytes:36383 (35.5 KiB)

eth0:avahi Link encap:Ethernet  HWaddr 08:00:27:1D:BB:21  
      inet addr:169.254.4.55  Bcast:169.254.255.255  Mask:255.255.0.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:2957 errors:0 dropped:0 overruns:0 frame:0
      TX packets:2957 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:4448536 (4.2 MiB)  TX bytes:4448536 (4.2 MiB)

EDITAR : Tabla de enrutamiento agregada:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
Respuesta 1

¿Debe un bean dto tener siempre una interfaz asociada? Jack usa el siguiente dto para enviar json por cable: public class Bean {private String date; Public Bean (String date) {...

Tengo el tipo de matriz ID. ex) Identificación larga = [1, 3, 5] Entonces, ¿cómo encontrar los datos que usan la identificación de tipo matriz? El tipo de datos de matriz no es aplicable al método findById (). Así que probé la función de bucle. Pero este estilo no es bueno para ...

Recientemente, cuando intento compilar programas java desde el símbolo del sistema, aparece este error: Error: no se puede encontrar o cargar la clase principal com.sun.tools.javac.Main Tengo las últimas versiones de JDK y JRE, ...

Estoy trabajando en un proyecto en el que tengo una clase llamada dBase con métodos getter y setter para campos como nombres y apellidos. Sin embargo, cuando ejecuto el código, la línea 6 de la parte del código es ...