使用 Raspberry Pi 作为网络 IPv6 路由器

使用 Raspberry Pi 作为网络 IPv6 路由器

我已成功使用 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::/642001: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;
    };
};

它宣称它是默认网关并且其他系统可以自动配置。

警告:启动时,radvdLAN 上的所有系统都将获得 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。也许这对其他人也有帮助。

相关内容