在Linux上配置DHCP服务器以支持IPv6地址分配,通常需要使用isc-dhcp-server软件包,并对其进行适当的配置。以下是详细的步骤指南:
首先,确保你的Linux系统上已经安装了ISC DHCP服务器。你可以使用以下命令来安装它:
sudo apt-get update
sudo apt-get install isc-dhcp-server
ISC DHCP服务器支持两种主要的DHCPv6模式:有状态(Stateful)和无状态(Stateless)。有状态模式会为客户端分配一个IPv6地址,而无状态模式则不会分配地址,但可以提供其他配置信息。
如果你希望DHCPv6服务器为客户端分配IPv6地址,你需要配置有状态模式。编辑/etc/dhcp/dhcpd6.conf文件:
sudo nano /etc/dhcp/dhcpd6.conf
在文件中添加以下内容:
# 定义IPv6地址池
subnet6 fe80::/64 {
range6 fe80::100 fe80::200;
option dhcp6.name-servers 2001:db8::1;
option dhcp6.domain-search "example.com";
option dhcp6.fqdn "dhcp-server.example.com";
default-lease-time 600;
max-lease-time 7200;
}
如果你希望DHCPv6服务器仅提供其他配置信息而不分配IPv6地址,你可以配置无状态模式。编辑/etc/dhcp/dhcpd6.conf文件:
sudo nano /etc/dhcp/dhcpd6.conf
在文件中添加以下内容:
# 定义IPv6地址池
subnet6 fe80::/64 {
option dhcp6.name-servers 2001:db8::1;
option dhcp6.domain-search "example.com";
option dhcp6.fqdn "dhcp-server.example.com";
default-lease-time 600;
max-lease-time 7200;
}
确保你的IPv6客户端支持并配置为使用DHCPv6。大多数现代操作系统默认支持DHCPv6。
启动并启用DHCPv6服务以确保它在系统启动时自动运行:
sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
你可以使用以下命令来验证DHCPv6服务器是否正常工作:
sudo systemctl status isc-dhcp-server
此外,你可以使用tcpdump或wireshark来捕获网络流量,查看DHCPv6请求和响应是否正常。
sudo tcpdump -i eth0 -n -v port 546 or port 547
确保你的防火墙允许DHCPv6流量。例如,如果你使用的是ufw,可以添加以下规则:
sudo ufw allow from any to any port 546 proto udp
sudo ufw allow from any to any port 547 proto udp
通过以上步骤,你应该能够在Linux上成功配置DHCP服务器以支持IPv6地址分配。