On Thu, 2018-05-31 at 21:18 +0000, Matthew Starr wrote: > > -----Original Message----- > > From: Thomas Haller [mailto:[email protected]] > > Sent: Thursday, May 31, 2018 3:35 PM > > > > On Thu, 2018-05-31 at 19:02 +0000, Matthew Starr wrote: > > > I am building NetworkManager 1.8.0 using buildroot with SysV init > > > on > > > an ARM embedded device. Buildroot has the /etc/resolv.conf file > > > as a > > > symlink that points to /tmp/resolv.conf. When I use > > > NetworkManager > > > with this resolv.conf symlink configuration, DNS lookups do no > > > work > > > because NetworkManger is not writing to the resolv.conf file or > > > the > > > file pointed to by the symlink. > > > > > > I tried updating the NetworkManager.conf file to include "rc- > > > manager=file" since the man page states that NetworkManager will > > > then > > > follow the symlink and write the contents of the resolv.conf > > > there. > > > Unfortunately this does not work when the destination file the > > > symlink > > > points to does not exist. In this situation the symlink points > > > to a > > > file in /tmp which is a tmpfs file system (RAM based) and wiped > > > clean > > > on each boot to help support a read-only root file system or > > > doing > > > minimal writes to the root file system. > > > > > > Is there a specific reason NetworkManager doesn't create the file > > > the > > > /etc/resolv.conf symlink points to if it doesn't exist? If there > > > isn't a reason, could NetworkManager be updated to create the > > > file > > > pointed to by the /etc/resolv.conf symlink?
Hi, What you say, makes sense. I also thought it should be like that, and the man page explains it that way (well, I was involved writing the manual page with this understanding). https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/src/dns/nm-dns-manager.c?id=nm-1-8#n737 Seems `realpath` only returns the destination file, if the path actually exists... I think this behavior is a bug, maybe it should be fixed, but it's a bit problematic to change at this point... I will follow up. In the meantime, can you not just symlink /etc/resolv.conf to /var/run/NetworkManager/resolv.conf ? That anyway seems the better solution to me. best, Thomas > > > > Hi, > > > > with "file" mode, NetworkManager should follow the symlink and > > write the > > file (if it doesn't exist). It wouldn't create the necessary parent > > directories, > > but since you have /tmp/resolv.conf, this shouldn't apply. > > > > Odd, if that doesn't work. Would need some investigation. Does the > > logfile > > say anything with level=TRACE? > > > > You could also have /etc/resolv.conf as symlink to > > /var/run/NetworkManager/resolv.conf and leave "symlink" setting. > > > > > > I actually had that wrong in the original email. What I was seeing > where it wouldn't write the /etc/resolv.conf file was with the > "symlink" setting. I see that this is the expected action when > /etc/resolv.conf is a symlink. > > The issue I am seeing with the "file" setting is that instead of > following the broken symlink at /etc/resolv.conf and writing the file > at where the symlink is pointing (/tmp/resolv.conf), Network Manager > is deleting the symlink and writing a new /etc/resolv.conf regular > file. Wouldn't it make more sense. Based on what the man page > states, I was expecting NetworkManager to follow the symlink and make > a new file there. The man page says "NetworkManager will write > /etc/resolv.conf as file. If it finds a symlink, it will follow the > symlink and update the target instead." > > In case it helps, here are some of the dns trace messages when > NetworkManager was updating the DNS: > daemon.debug NetworkManager[311]: <debug> [1527801019.9945] dns-mgr: > update-dns: updating resolv.conf > daemon.debug NetworkManager[311]: <trace> [1527801019.9948] dns-mgr: > config: 100 best v4 mlan0 : 208.67.222.222 > 208.67.222.220 4.2.2.2 > daemon.debug NetworkManager[311]: <trace> [1527801020.0115] dns-mgr: > update-resolv-conf: write to /etc/resolv.conf succeeded (rc- > manager=file) > daemon.debug NetworkManager[311]: <trace> [1527801020.0126] dns-mgr: > update-resolv-conf: write internal file /etc/resolv.conf succeeded > (rc-manager=file) > daemon.debug NetworkManager[311]: <trace> [1527801020.0135] dns-mgr: > current configuration: [{'nameservers': <['208.67.222.222', > '208.67.222.220', '4.2.2.2']>, 'interface': <'mlan0'>, 'priority': > <100>, 'vpn': <false>}] > daemon.debug NetworkManager[311]: <debug> [1527801020.0632] dns-mgr: > (device_ip4_config_changed): queueing DNS updates (1) > > Best regards, > Matthew Starr
signature.asc
Description: This is a digitally signed message part
_______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
