引言:Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以为局域网电脑提供内网ip地址和路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。
dnsmasq 从2.6*版本开始支持DHCPv6功能,之后不断修复BUG,根据官网changelog可以得知dnsmasq 2.78版本基本能够支持DHCPv6协议。本文为测试过程记录。
1 使用Debian7进行测试,编译安装dnsmasq 2.78
先下载好需要安装的2.78压缩文件并解压缩
然后:
#cd dnsmasq-2.78
#make V=s
#yum install dnsmasq //yum 安装的2.48,然后再用我们编译好的最新版本替换
#yes | cp -f ./src/dnsmasq /usr/sbin/dnsmasq
#dnsmasq -v
2 有状态DHCPv6的基本配置,不考虑下发特定租约
2.1 配置DHCPv6 Server
1)配置IP地址
ip -6 addr add fd00::1/64 dev eth0
2)编辑dnsmasq配置文件,修改相应的配置
#关键配置项:
#按需配置项(详情参照配置项上面的解释)
3)检查语法并启动dnsmasq
dnsmasq -test
/etc/init.d/dnsmasq restart
2.2 在CentOS6.5 VM上测试
1)虚拟机的网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=dhcp6
ONBOOT=yes
NM_CONTROLLED=no
USERCTL=no
PEERDNS=yes
IPV6INIT=yes
DHCPV6C=yes
2)虚机的网络配置文件/etc/sysconfig/network
NETWORKING_IPV6=yes
IPV6_AUTOCONF=yes
3)测试:dhclient -6 -v 或者 service network restart
ip a
此外,dhcpv6的租用信息存在Debian 的/var/lib/misc/dnsmasq.leases中
3 使用dnsmasq 有状态DHCPv6下发特定租约
使用客户端的DUID下发绑定的IPv6地址
根据RFC3315所述,DHCPv6客户端将使用DUID从DHCP服务器请求IP(http://tools.ietf.org/html/rfc3315)。DUID的生成方式有3种,其中DUID-LLT(link-local plus time)方式依赖于请求得到回应的时间,这不好控制,而DUID-EN方式目前鲜有人用,因此要求客户端VM支持使用DUID-LL(link-local)。
1)配置CentOS6.5 VM
第一步:根据官方描述,dhclient版本为4.1+支持ipv6。为了支持DUID-LL要在/etc/dhcp/dhclient.conf中写入:
send dhcp6.client-id = concat(00:03:00, hardware);
第二步:网卡配置文件ifcfg-eth0
第三步:/etc/sysconfig/network
2)配置Server
3)在VM端使用dhclient -6 -v <interface>测试或者直接service network restart,再查看ip可以发现地址已经成功分配。
4)VM上的租约文件
转载请注明出处,谢谢!