Linux NetworkManager n'écrit pas resolv.conf ou n'exécute pas dhclient

0

Je suis sur une distribution Linux basée sur Ubuntu (linaro) exécutant xfce. Mon gestionnaire de réseau se connecte à des points d'accès sans fil, mais est incapable de faire deux choses:

  • acquérir dynamiquement un serveur de noms et écrire une dynamique /etc/resolv.conf. En fait, ce serait bien si je pouvais le faire pour certains réseaux particuliers et utiliser une norme /etc/resolv.confsur d’autres réseaux.
  • Mon navigateur ne redirige pas vers les pages de connexion. Clairement, cela a quelque chose à voir avec le problème du serveur de noms.

J'ai vérifié mon /etc/dhcp/dhclient.confet il a la ligne request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.name-servers, dhcp6.sntp-servers; Donc, si je l'exécute sudo dhclient <network inteface> réécrit le /etc/resolv.conffichier sans aucun problème. Donc, si je "me connecte manuellement" en utilisant wpa-supplicant et dhclient, cela fonctionne parfaitement. Donc, je suppose que c'est un problème avec le gestionnaire de réseau. Le gestionnaire de réseau n'utilise-t-il pas dhclient? Comment puis-je réparer ça?

utilisateur128063
la source

Réponses:

1

Sur mon système (Ubuntu 14.04), /etc/resolv.conf est créé par le paquet "resolvconf" (est-il installé?) Et constitue simplement un lien symbolique vers le fichier ../run/resolvconf/resolv.conf.

L'adresse IP dans /etc/resolv.conf est une adresse IP interne factice. Pour obtenir la véritable adresse du serveur de noms, vous pouvez utiliser "nm-tool" ou "liste de périphériques nmcli iface eth0".

Quelle méthode avez-vous choisie dans Network-mananger sous IPv4, "Automatique (DHCP)" ou "Adresses automatiques (DHCP) uniquement". Je pense que vous devez utiliser le premier.

Quelle est la version de votre système linaro et sur quelle version d'ubuntu est-il basé?

Alex338207
la source
0

Il s'avère que les versions les plus récentes de NetworkManager utilisent un programme appelé dnsmasq en tant que résolveur DNS. Ainsi, même si vous supprimez le /etc/resolv.conf fichier de votre système, NetworkManager fonctionnera correctement. En fait, Dnsmasq a une option explicite de ne pas lire resolv.conf. C’est ce que mon NetworkManager utilise habituellement: dnsmasq --no-resolv Il contient également un /var/run/nm-dns-dnsmasq.conf fichier. Ceci est configuré à l'aide des fichiers de la documentation de /etc/NetworkManager/dnsmasq.d/ Look at dnsmasq pour en savoir plus sur sa configuration. Cela semble être un outil assez puissant.

Dnsmasq peut être désactivé en supprimant la ligne dns=dnsmasq du /etc/NetworkManager/NetworkManager.conf fichier. Ensuite, bien que je ne l’aie pas testé, il devrait utiliser dhclient par défaut, en fonction de ce que j’ai lu dans la documentation de NetworkManager.

Un autre problème possible est que le fichier /etc/NetworkManager/NetworkManager.conf contenait une ligne indiquant que [ifupdown] managed=false je l’avais remplacée par true et que NetworkManager avait recommencé à fonctionner correctement. Les versions les plus récentes de NetworkManager (à la fois avec précision et plus tard) ont également tendance à marquer une pause de 60 secondes ou plus au début avec un waiting for network configuration message au démarrage. Cela est généralement dû à une erreur de syntaxe dans le /etc/network/interfacesfichier. J'ai corrigé cela en n'ayant que les lignes suivantes dans le fichier auto lo iface lo inet loopback

utilisateur128063
la source