我有一台Linux机器和我的网络上的IPv6,它的工作原理。现在我想为它设置DHCP。我设置了isc-dhcp-server并配置了子网。dhcpv6返回坏子网
另一台Linux机器(都是debian 7)充当测试客户端并获取IP,但不在配置的范围内,更糟糕的是,获取/ 64子网而不是/ 80。
由于路由器上可用的IP池已经是分配给另一个上游机器的/ 64子集,因此我需要一个较小的子网。我不能让它成为/ 64。
DHCP服务器的配置:在客户端
subnet6 2a01:4f8:202:6106:acda::/80 {
range6 2a01:4f8:202:6106:acda:f000::/84;
option dhcp6.name-servers 2a01:4f8:202:6106::2;
prefix6 2a01:4f8:202:6106:acda:c000:: 2a01:4f8:202:6106:acda:f000:: /84;
}
的ifconfig输出:
[email protected]:~$ sudo ifconfig
[sudo] password for debian:
eth0 Link encap:Ethernet HWaddr c8:a0:30:ae:48:24
inet addr:192.168.0.104 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::caa0:30ff:feae:4824/64 Scope:Link
inet6 addr: 2a01:4f8:202:6106:acda:ff2f:452c:b7b5/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:185 errors:0 dropped:0 overruns:0 frame:0
TX packets:201 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18222 (17.7 KiB) TX bytes:23159 (22.6 KiB)
Interrupt:56
一个Windows 7计算机连接也没有得到一个IPv6地址都没有。
服务器上的RADVD的配置(如果它事项)
interface eth0 {
AdvSendAdvert on;
prefix 2a01:4f8:202:6106:acda::/80 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
route 2000::/3
{
};
};
有什么不对?为什么这不起作用?是坏的子网大小在服务器中的错误?或客户?
错误子网大小的结果是,例如名称服务器2a01:4f8:202:6106 :: 2在64位范围内无法访问。客户端认为它应该在局域网段上,并尝试获取链路本地IPv6和它的以太网MAC,并且失败。它需要通过路由器。当我手动将子网设置为/ 80时,一切正常。
你不想把64分成更小的网络。参见RFC 5375,IPv6单播地址分配的注意事项,“使用比/ 64其他子网前缀长度将突破IPv6的许多功能...” – 2014-10-28 19:07:14
嗯......谢谢你提供的链接。它看起来像强烈建议。 但是,我的提供商只给我我租用的服务器上一个/ 64范围内,我将它设置成它的一个子范围转发到我的网站。我不想要NAT,因为地址空间应该足够。 从提供商的范围是2A01:4F8:202:6106 ::/64 我制成的隧道,在一个微小的子网,其中的一部分,将数据包转发到/ 80子范围(内部/ 64,但不隧道的p2p网络)。 因此,我不能采取整个范围。它不会为远程机器本身留下地址。 如何做到这一点没有NAT任何建议? – Blindleistung 2014-10-28 19:17:34
此外,如果此提议是原因,DHCP服务器应报告错误。也许我应该尝试发布到isc dhcp服务器论坛。还有其他一些错误。 – Blindleistung 2014-10-28 19:22:33