我在Linux机器和我的网络上使用IPv6并且它可以工作。现在我想为它设置DHCP。我设置了isc-dhcp-server并配置了子网。
另一台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输出:
debian@arm:~$ 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
{
};
};
出了什么问题?为什么这不起作用?坏子网大小是服务器中的错误吗?还是客户?
错误的子网大小的结果是,例如名称服务器,在64位范围内的2a01:4f8:202:6106 :: 2是不可访问的。客户端认为它应该在局域网段上,并尝试获取链路本地IPv6及其以太网MAC并失败。它需要通过路由器。当我手动将子网设置为/ 80时,一切正常。
答案 0 :(得分:0)
首先当然是一般警告:使用非/64
子网大小会破坏事情。您的ISP应该为您提供相当数量的地址空间,例如/48
或/56
。然后,您可以将/64
路由到您想要的任何地方。
然后你必须看看你的ISP如何为你提供当前的/64
。如果他们将其路由到连接到服务器eth0
接口的LAN,那么除了桥接或代理ND之外,您无能为力,因为您必须使其看起来像所有内容都直接连接到该LAN。这两种方法都有其自身的复杂性。
如果您正在桥接到由ISP管理的局域网,那么您不应该运行radvd
或dhcpd
之类的内容,因为您会干扰您的ISP。
如果您正在使用proxy-ND或您的ISP将/64
路由到您的服务器(因此您在服务器的ISP接口上有不同的IPv6地址,并且ISP将/64
路由到该服务器接口)然后你应该确实运行radvd
和dhcpd
,但只能在内部接口上运行,而不是你的ISP。
返回RA + DHCPv6设置,因为您的问题部分很容易回答。您的radvd
设置有三个问题(所以,是的,它很重要:)
首先,您不能对/64
以外的任何内容执行SLAAC(StateLess地址自动配置),因此您必须关闭AdvAutonomous
。然后,您必须告诉客户端托管(有状态)DHCPv6服务器可用,因此请打开AdvManagedFlag
。并且route 2000::/3
也是不必要的。您宣称自己是默认网关,而这个更具体的网站并没有添加任何有用的东西。
interface eth1 {
AdvSendAdvert on;
AdvManagedFlag on;
prefix 2a01:4f8:202:6106:acda::/80 {
AdvOnLink on;
AdvAutonomous off;
AdvRouterAddr on;
};
};