Linux NetworkManager non scrive resolv.conf o non esegue dhclient


0

Sono su una distro linux (linaro) basata su Ubuntu con xfce. Il mio gestore di rete si collega ai punti di accesso wireless, ma non è in grado di fare due cose:

  • acquisire dinamicamente un nameserver e scrivere una dinamica /etc/resolv.conf. In effetti, sarebbe bello se potessi farlo per alcune reti particolari e utilizzare uno standard /etc/resolv.confsu altre reti.
  • Il mio browser non reindirizza alle pagine di accesso. Chiaramente, questo ha qualcosa a che fare con il problema del nameserver.

Ho controllato il mio /etc/dhcp/dhclient.confe ha la linea 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; Quindi, se sudo dhclient <network inteface> lo eseguo, riscrive il /etc/resolv.conffile senza problemi. Quindi, se "mi collego manualmente" usando wpa-supplicant e dhclient, questo funziona perfettamente. Quindi immagino sia un problema con il gestore della rete. Il gestore di rete non utilizza dhclient? Come posso risolvere questo problema?

Risposte:


1

Sul mio sistema (ubuntu 14.04), /etc/resolv.conf è creato dal pacchetto "resolvconf" (è installato?) Ed è solo un collegamento simbolico al file ../run/resolvconf/resolv.conf.

L'indirizzo IP in /etc/resolv.conf è un IP interno fittizio. Per ottenere l'indirizzo reale del server dei nomi è possibile utilizzare "nm-tool" o "nmcli device list iface eth0".

Quale metodo hai scelto in Network-mananger in IPv4, "Automatico (DHCP)" o "Automatico (DHCP) solo indirizzi". Penso che tu debba usare il primo.

Qual è la versione del tuo sistema Linaro e su quale versione di Ubuntu è basata?


0

Si scopre che le versioni più recenti di NetworkManager utilizzano un programma chiamato dnsmasq come resolver DNS. Pertanto, anche se si elimina il /etc/resolv.conf file dal proprio sistema, NetworkManager funzionerà correttamente. In effetti, dnsmasq ha un'opzione esplicita per NON leggere resolv.conf. Questo è ciò con cui il mio NetworkManager di solito lo esegue: dnsmasq --no-resolv ha anche un /var/run/nm-dns-dnsmasq.conf file. Questo è configurato usando i file nella /etc/NetworkManager/dnsmasq.d/ documentazione di dnsmasq per saperne di più sulla sua configurazione. Sembra essere uno strumento abbastanza potente.

dnsmasq può essere disabilitato rimuovendo la riga dns=dnsmasq nel /etc/NetworkManager/NetworkManager.conf file. Quindi, anche se non l'ho testato, dovrebbe essere predefinito su dhclient, in base a ciò che ho letto nella documentazione di NetworkManager.

Un altro possibile problema era che /etc/NetworkManager/NetworkManager.conf aveva una riga che diceva che l' [ifupdown] managed=false avevo cambiato in vero e NetworkManager ha iniziato a funzionare di nuovo correttamente. Le versioni più recenti di NetworkManager (in modo preciso e successivo) tendono anche a fermarsi per 60 o più secondi all'inizio con un waiting for network configuration messaggio durante l'avvio. Questo di solito è causato da un errore di sintassi nel /etc/network/interfacesfile. Ho risolto questo problema avendo solo le seguenti righe nel file auto lo iface lo inet loopback

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.