On my Fedora 15 laptop, I'm almost always connected to several VPNs simultaneously. One VPN to my office or to my home (depending on where I am), one to the data center, one to a customer. These connections all have their own DNS server with their own suffix.
To make all dns suffixes working, I created a script that redirects all outgoing DNS traffic to dnsmasq running on localhost, which in turn forwards all requests for .lan to 192.168.15.254 and all requests for .gl to 192.168.1.254.
The script was put in /etc/NetworkManager/dispatcher.d/10-DNS:
if [ -e /var/run/dnsmasq.localhost ]; then
cat /proc/`cat /var/run/dnsmasq.localhost`/cmdline |grep dnsmasq >/dev/null 2>/dev/null && \
kill `cat /var/run/dnsmasq.localhost`
fi if [ "$2" == "up" ]; then
cp /etc/resolv.conf /etc/resolv.conf.dhcp
echo nameserver 127.0.0.1 > /etc/resolv.conf
echo domain $DHCP4_DOMAIN_NAME >> /etc/resolv.conf
echo search $DHCP4_DOMAIN_NAME >> /etc/resolv.conf
/usr/sbin/dnsmasq -C /dev/null -r /etc/resolv.conf.dhcp --server=/gl/192.168.1.254 \
--server=/lan/192.168.15.254 --bind-interfaces --listen-address 127.0.0.1 \
--pid-file=/var/run/dnsmasq.localhost
fi
Once I had to fix resolv.conf manually when I connected my laptop to my Samsung Galaxy SII as well. This may mean I need to improve the script some day, but for the time being, it works good enough.
Put all required files, such as pxelinux.0 from the package syslinux in /var/ftpd
Ubuntu/Debian
I'm running RedHat-based software on all of my machines. Above information may be useful for Ubuntu/Debian users, but it's not tested and I'm not supporting it.
Servers: RedHat Enterprise Linux/CentOS is more suitable for servers, as there's a lot of professional level support available. I think that's important, because if I say, get a car accident, I want the servers to be managable by another professional.
Desktops/Laptops: RPM packages are pretty exchangable between RedHat-based platforms. That's a good reason to run Fedora on the desktop.