我已成功使用 tunnelbroker.net 为我的 Raspberry Pi 设置 IPv6。但是,我想与网络中的其他设备共享我获得的 /64。网络的路由器是 Virgin Media Super Hub (VMDG480),不支持 IPv6。
这是我的 Raspberry Pi 的 /etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.3
gateway 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:470:1f09:4f8::2
netmask 64
endpoint 216.66.80.26
local 192.168.0.3
ttl 255
gateway 2001:470:1f08:4f8::1
以下是我从tunnelbroker获得的信息:
Client IPv6 Address: 2001:470:1f08:4f8::2/64
Routed /64: 2001:470:1f09:4f8::/64
Routed /48: 2001:470:6c92::/48
我尝试使用 radvd、dibbler 和 isc-dhcp-server - 都无法为网络中的其他计算机提供 IPv6 连接。有人能帮我解释一下情况吗?
答案1
它的工作原理略有不同:您不共享隧道中的 /64,而是为您的网络使用路由 /48 中的新 /64。/48最多为您提供2001:470: 6c92::/64
(即) 。这为您提供了 65536 个 /64,这通常足以为每个网络提供自己的 /64。2001:470:6c92:0000::/64
2001:470:6c92:ffff::/64
首先,您必须在内核中启用 IPv6 转发,以便您的 Raspberry Pi 充当路由器。将此行添加到/etc/sysctl.conf
:
net.ipv6.conf.all.forwarding=1
它可能已经在那里了,但是被注释掉了。
然后,您必须在eth0
接口上配置 IPv6。添加如下内容:
iface eth0 inet6 static
address 2001:470:6c92:1::1
netmask 64
然后配置radvd
(路由器通告守护程序),以便您的 Raspberry Pi 向本地网络通告 IPv6 可用,并且它将充当默认网关。基本配置/etc/radvd.conf
如下:
interface eth0
{
AdvSendAdvert on;
prefix 2001:470:6c92:1::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
它宣称它是默认网关并且其他系统可以自动配置。
警告:启动时,radvd
LAN 上的所有系统都将获得 IPv6 地址和 IPv6 默认网关。除非您在 Raspberry Pi 上配置了 IPv6 防火墙,否则所有系统都将直接连接到 IPv6 互联网。请确保它们的配置可以安全运行,或者在启用之前在 Raspberry Pi 上配置 IPv6 防火墙radvd
。
如果你只希望特定系统使用 Raspberry Pi 进行 IPv6 连接,那么不运行radvd
。相反,只需在这些系统上手动配置 IPv6。使用来自 的地址2001:470:6c8b:1::/64
。全零地址是子网路由器任意转换地址,按照惯例,尽管我几乎从未在实践中看到过这种地址。地址2001:470:6c92:1::1
用于 Raspberry Pi,因此您可以使用从2001:470:6c92:1::2
(= 2001:0470:6c92:0001:0000:0000:0000:0002
) 到 的任何地址2001:470:6c92:1:ffff:ffff:ffff:ffff
。配置2001:470:6c92:1::1
为默认网关,您应该可以上网 :)
还有一些建议https://wiki.ubuntu.com/IPv6#Configure_your_Ubuntu_box_as_a_IPv6_router这可能适用于您的配置。查看“ufw 和路由”部分。它基本上告诉您在中添加以下几行/etc/ufw/sysctl.conf
:
net/ipv6/conf/default/forwarding=1
net/ipv6/conf/all/forwarding=1
要更改此行/etc/default/ufw
:
DEFAULT_FORWARD_POLICY="DROP"
并添加以下几行到/etc/ufw/before6.rules
:
-A ufw6-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-forward -i eth0 -o he-ipv6 -m conntrack --ctstate NEW -j ACCEPT
答案2
我首先要补充ipv6
的是/etc/modules
,启用 ipv6。也许这对其他人也有帮助。