DHCPv6配置用法介绍(SLAAC+DHCPv6)

一、DHCPv6简介

DHCPv6,全称“Dynamic Host Configuration Protocol for IPv6”,是IPv6网络中进行IP地址配置的协议,主要用于自动分配和管理IPv6地址、路由前缀、DNS等信息,提高IPv6网络的灵活性和可扩展性。

与IPv4网络中的DHCP相比,DHCPv6不仅可以为主机分配IPv6地址,还可以向主机分配IPv6子网、DNS服务器地址、NTP服务器地址等信息,能够满足IPv6网络中更加丰富的配置需求。

二、DHCPv6配置

1. 安装DHCPv6服务器

sudo apt-get install isc-dhcp-server

安装完成后,通过修改/etc/dhcp/dhcpd.conf文件来配置DHCPv6服务器的参数。下面是一个样例:

option dhcp6.name-servers 2001:4860:4860::8888, 2001:4860:4860::8844;

subnet6 2001:db8:1:0::/64 {
 range6 2001:db8:1:0::100 2001:db8:1:0::200;
 option dhcp6.domain-search "example.com";
 option dhcp6.sntp-servers 2001:db8:3:4::2;
 option dhcp6.bootfile-url "http://[2001:db8:1::1]/tftpboot/";
 option dhcp6.expiration-time 3600;
 option dhcp6.client-id 00:01:00:01:1b:02:03:04:05:06:07:08:09:0a:0b:0c;
 preferred-lifetime 86400;
 valid-lifetime 86400;
}

上面的配置文件中定义了一个2001:db8:1:0::/64的IPv6子网,并指定了分配地址的范围、域名搜索路径、SNTP服务器地址、启动文件URL、过期时间、客户端ID、首选生命周期和有效生命周期等参数。

2. 启动DHCPv6服务器

sudo systemctl start isc-dhcp-server6

启动DHCPv6服务器后,可以通过查看/var/lib/dhcp/dhcpd6.leases文件来查看当前的租约情况。

3. DHCPv6客户端配置

通常情况下,DHCPv6服务器与客户端之间的通信是基于UDP端口546和547进行的。

在Linux系统中,可以通过NetworkManager和dhclient等程序实现DHCPv6客户端的自动配置。

下面以Ubuntu系统为例,介绍如何使用NetworkManager来配置DHCPv6客户端。

sudo apt-get install network-manager

安装完成后,编辑/etc/network/interfaces文件,在文件末尾添加以下内容:

auto ens192
iface ens192 inet6 dhcp

上面的配置将ens192网络接口的IPv6地址配置改为动态分配。

三、DHCPv6常见问题

1. DHCPv6服务无法启动

查看/var/log/syslog文件和/var/log/messages文件,如果发现错误消息如下:

dhcp6_ctl_authinit: failed to open /usr/local/etc/dhcpctlkey: No such file or directory

解决方法:

sudo touch /usr/local/etc/dhcpctlkey
sudo chown dhcpd:dhcpd /usr/local/etc/dhcpctlkey

2. 租约无法释放

如果在/var/lib/dhcp/dhcpd6.leases文件中看到已经过期的租约,但是租约不会自动释放,需要手动清除租约,可以使用以下命令:

dhcp_release -6 -d --force eth0

其中“eth0”是需要清除租约的网络接口名称。

3. DNS解析失败

如果DHCPv6客户端无法解析DNS服务器,可以通过查看/etc/resolv.conf文件来确认DNS服务器配置是否正确。

如果DNS服务器配置正确,但仍然无法解析DNS,可以通过重新启动NetworkManager服务来解决问题:

sudo systemctl restart NetworkManager

Published by

风君子

独自遨游何稽首 揭天掀地慰生平