Linux 做网关,由于是PPPOE拨号,遇到过DNS服务器变动的情况导致DHCP获得的DNS失败的案例。
由于DHCPD平时承担MAC地址绑定工作,所以配置文件很大。今天修改了一下,可以使用。
需求
1.双网卡,DHCP平时放在192.168.0.0网段,另外一个网卡不用;
2.根据PPPOE拨号软件,自动使用/etc/resolve.conf里面的DNS服务器
解决方案:
修改 /etc/sysconfig/dhcpd
#Command line options here
inetwork=192.168.0.0
inetface=`route -n | grep $inetwork | awk '{print $8}'`
dnsfile=/etc/resolv.conf
if [ -e $dnsfile ] ;then
if grep nameserver $dnsfile > /dev/null ;then
dns1=`cat $dnsfile |grep nameserver | cut -d' ' -f2 |tail -n1 | head -n1` > /dev/null
dns2=`cat $dnsfile |grep nameserver | cut -d' ' -f2 |tail -n2 | head -n1` > /dev/null
sed -e "s/\(^[ \t]\+option domain-name-servers[ \t]\)\+.\+/\1 $dns1,$dns2;/g" /etc/dhcpd.conf > /tmp/dhcpd.conf
DHCPDARGS="$inetface -cf /tmp/dhcpd.conf"
fi
fi
以上在Centos 5.10上调试通过。