我是 IPV6 新手。我正在尝试使用 isc dhcp 在我的 Linux VM 上配置 IPV6 服务器。
我们有以下内容 dhcpd6.conf 文件
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet6 2001:db8:0:1::/64 {
# Range for clients
range6 2001:db8:0:1::129 2001:db8:0:1::254;
# Additional options
option dhcp6.name-servers fec0:0:0:1::1;
option dhcp6.domain-search "domain.example";
}
在另一台电脑上,我运行着 dhcp6 客户端。两台电脑都通过以太网电缆连接在一起。
一段时间后,当我们运行服务器时,我收到以下消息
Information-request message from fe80::d6be:d9ff:fe9a:ba64 port 546, transaction ID 0xE987FC00
Sending Reply to fe80::d6be:d9ff:fe9a:ba64 port 546
在 wireshark 上,我看到服务器响应邻居请求,但没有响应路由器请求。
客户端无法获取新的 IPV6 地址。我不确定我遗漏了什么。非常感谢任何帮助。
谢谢
Shankar
答案1
IPv6 配置与 IPv4 配置略有不同。IPv6 配置的第一个也是最重要的部分是路由器通告(RA)。路由器发送该消息以通告其存在并传达本地网络的基本网络设置。它包含(以及其他信息):
- 路由器是否可以用作默认网关以及可以使用多长时间
- 是否有可用的有状态 DHCPv6 服务器
- 是否有无状态 DHCPv6 服务器可用
- 本地网络上使用哪些前缀
- 对于每个前缀:该前缀是否可以用于自动配置
- 它还可能包含 DNS 域和解析器
在最简单的情况下,RA 会告诉网络上的设备它是默认网关,没有 DHCPv6 服务器,并且有一个启用了自动配置的前缀。在这种情况下,网络上的设备只需根据网络前缀配置自己的地址即可。不过,您会错过 DNS 设置。
DNS 设置能可以在 RA 内部进行通信,但并非每个操作系统都能识别该选项。因此,通常将此网络配置与无状态 DHCPv6 服务器结合使用。此类服务器不提供地址,但会提供其他配置信息,例如 DNS 设置。
如果您想要更好地控制设备获取的地址,那么您可能需要禁用自动配置并在 RA 中设置标志,表明有状态 DHCPv6 服务器可用。然后网络上的设备就知道它们必须向 DHCPv6 服务器询问其地址。这就是您显示的 DHCPv6 服务器配置的作用所在。
您必须配置路由器才能发送正确的 RA。如果您的 Linux 机器是路由器,则可以使用以下命令执行此操作radvd
:
interface eth0
{
AdvSendAdvert on;
# The network is managed: there is a stateful DHCPv6 server
AdvManagedFlag on;
# Your prefix
prefix 2001:db8:0:1::/64
{
AdvOnLink on;
# No auto-configuration
AdvAutonomous off;
};
# Configure both Google public DNS resolvers
RDNSS 2001:4860:4860::8888 2001:4860:4860::8844
{
};
# Configure the DNS search list
DNSSL domain.example.com example.com
{
};
};
当客户端收到此 RA 时,他们将开始查询 DHCPv6 服务器。
PS:站点本地地址(以 开头的地址fec0:
)早已被弃用。您应该使用联合航空联盟反而。