We use Juniper Network Connect to connect to the VPN. This works reasonably well on Ubuntu, but on Ubuntu 12.04LTS and later, it causes an ocassional problem with /etc/resolv.conf.
In Ubuntu 12.04LTS, Ubuntu switched to using resolvconf (article, filelist) to manage the /etc/resolv.conf file. A particular feature of the tool is that it symlinks /etc/resolv.conf ⇒ /run/resolvconf/resolv.conf
If that symlink is ever broken (if other software overwrites it with a normal file), then resolvconf stops working. The symlink has to be manually fixed, and rebooting doesn't help.
While Juniper NetworkConnect is connected, it overwrites /etc/resolv.conf with a non-symlinked file. When NetworkConnect disconnects, it restores /etc/resolv.conf to its previous state — a symlink to /run/resolvconf/resolv.conf. When NetworkConnect runs normally, everything works fine.
(TODO: figure out how to rebuild /run/resolvconf/resolv.conf without having to reboot; figure out an appropriate place to run our fix_resolvconf script from, so it gets triggered sometime shortly after NetworkConnect closes... or, if nothing else, when a network interface is bounced)