Estoy tratando de configurar una red con netplan y networkd como renderizador en una máquina 18.04. Ejecuta la distribución de escritorio porque está conectado a mi televisor y se usa para multimedia, pero lo llamaré servidor porque es más fácil de explicar y ejecutará servidores dns y dhcp una vez que la red funcione correctamente.
Noté que cuando configuro la red a través de netplan, no puedo hacer ping al servidor desde mis clientes de Windows 10 (no probado en otros sistemas operativos) a menos que primero haga ping a dicho cliente desde el servidor. En los clientes, obtengo:
Reply from [CLIENT'S OWN IP]: Destination host unreachable.
Pero después de hacer ping desde el servidor primero, el cliente tiene una entrada ARP y todo está bien.
He buscado soluciones durante demasiado tiempo y he confirmado que:
- Las subredes son correctas:todo es DHCP desde mi enrutador en este momento para descartar esto
- No hay conflicto de dirección IP o MAC
- La administración de energía está desactivada en la interfaz
- No parece un problema de controlador dado que el único cambio es administrador de red vs networkd
- Los cortafuegos están bien
- El enrutador está bien
En este momento, la máquina está conectada a través de WiFi y para cambiar la configuración fuera del administrador de red, simplemente cambié el nombre de /etc/netplan/01-network-manager-all.yaml para que no se use y creé /etc/netplan/config. yaml de la siguiente manera:
network:
version: 2
renderer: networkd
wifis:
wlp3s0:
dhcp4: yes
dhcp6: no
access-points:
"MyAP":
password: "MyPassword"
/etc/network/interfaces es simplemente iface lo inet loopback
Leí que no era necesario deshabilitar el administrador de red, ya que solo informará que las interfaces configuradas manualmente no están administradas, por lo que el cambio anterior es todo lo que hice.
Usando Wireshark, confirmé que cuando se configura con netplan, el servidor no recibe paquetes ARP cuando hago ping desde un cliente sin entrada ARP para la IP del servidor. Los recibe cuando el administrador de red se ocupa de la interfaz; primero uno para decirle al enrutador, luego otro para decirle al cliente.
¡Gracias de antemano por cualquier ayuda!
EDITAR 1 :información adicional:
/etc/NetworkManager/system-connections/[NOMBRE DE LA RED] es:
[connection]
id=XXXX
uuid=992e3be7-dea0-49b7-a474-60832236b8bf
type=wifi
permissions=
timestamp=1530425561
[wifi]
mac-address=C4:E9:84:E1:61:FF
mac-address-blacklist=
mode=infrastructure
seen-bssids=50:C7:BF:38:01:91;
ssid=XXXX
[wifi-security]
key-mgmt=wpa-psk
psk=XXXX
[ipv4]
dns=8.8.8.8;8.8.4.4;
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
La configuración de red generada por netplan en /run/systemd/network/10-netplan-wlp3s0.network es:
[Match]
Name=wlp3s0
[Network]
DHCP=ipv4
[DHCP]
UseMTU=true
RouteMetric=600
EDITAR 2 :una mirada más cercana a Wireshark muestra que cuando se usa la configuración systemd-networkd, no hay actividad IGMP, no hay actividad MDNS excepto donde el servidor es la fuente, y la única actividad ARP es entre la puerta de enlace y el servidor, hasta el servidor intenta hacer ping a un cliente. Una vez que el servidor intenta hacer ping al cliente, el primer ARP es 'quién tiene la IP del cliente, dígale la IP del servidor', luego, inmediatamente después, 'quién tiene la IP del servidor, dígale la IP del cliente', y finalmente el ping sale al cliente. A partir de aquí, el cliente puede hacer ping al servidor.
Relacionado:¿Cómo hacer un video Stop Motion o Time-lapse con cámara web?Todo el tiempo, el servidor puede acceder a cualquier servicio de red, interno y externo.
Respuesta aceptada:
Después de darme cuenta de que estaba afectado por este error y corregirlo, descubrí que networkctl mostraba la interfaz inalámbrica como estado de "configuración".
Luego descubrí que NetworkManager se estaba ejecutando y al detenerlo a través de sudo systemctl stop NetworkManager
, seguido de sudo systemctl restart systemd-networkd
, y finalmente eliminé la entrada ARP en mi cliente de Windows antes de hacer ping nuevamente, todo funcionó. Hice sudo systemctl disable NetworkManager
y reinicié para asegurarme de que la solución persistiera y no …
Un alma bondadosa en el canal IRC de Ubuntu me guió para hacer:
sudo systemctl mask network-manager.service
sudo systemctl mask NetworkManager-dispatcher.service
sudo systemctl mask NetworkManager-wait-online.service
Esto resolvió el problema y networkctl ahora muestra el estado de 'configurado'. Parece que el administrador de red y systemd-networkd estaban peleando por la configuración de la interfaz inalámbrica. Sospecho que mi entendimiento de que el administrador de red lo dejaría en paz sería correcto si no hubiera una configuración en /etc/NetworkManager/system-connections/
pero no he probado esta teoría, me alivia que se haya resuelto.