让 LAN 客户端使用 Debian 路由器的 IPv6 隧道

让 LAN 客户端使用 Debian 路由器的 IPv6 隧道

我有一台 Debian Jessie 驱动的服务器,它充当我们家庭网络的路由器。我已成功使用 TunnelBroker 设置 IPv6 隧道,并且traceroute命令成功返回。

以下是我的路线表和输出ip -6 addr

~$ ip -6 route
::/96 dev sit0  proto kernel  metric 256
2001:470:1f14:904::1 dev he-ipv6  metric 1024
2001:470:1f14:904::2 dev sit1  proto kernel  metric 256
2001:470:1f14:904::/64 dev he-ipv6  proto kernel  metric 256
fe80::/64 dev eth0  proto kernel  metric 256
fe80::/64 dev eth1  proto kernel  metric 256
fe80::/64 dev he-ipv6  proto kernel  metric 256
default via 2001:470:1f14:904::1 dev he-ipv6  metric 1024
~$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::5a6d:8fff:febf:1147/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::218:71ff:feea:f57b/64 scope link
       valid_lft forever preferred_lft forever
4: sit0: <NOARP,UP,LOWER_UP> mtu 1480
    inet6 ::192.168.10.1/96 scope global
       valid_lft forever preferred_lft forever
    inet6 ::188.142.102.214/96 scope global
       valid_lft forever preferred_lft forever
    inet6 ::127.0.0.1/96 scope host
       valid_lft forever preferred_lft forever
5: he-ipv6: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480
    inet6 2001:470:1f14:904::2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::bc8e:66d6/64 scope link
       valid_lft forever preferred_lft forever
6: sit1: <POINTOPOINT,NOARP> mtu 1480
    inet6 2001:470:1f14:904::2/128 scope global
       valid_lft forever preferred_lft forever

一个简单的traceroute命令返回以下内容:

~$ traceroute ipv6.google.com
traceroute to ipv6.google.com (2a00:1450:4013:c00::65), 30 hops max, 80 byte packets
 1  roelof-1.tunnel.tserv11.ams1.ipv6.he.net (2001:470:1f14:904::1)  7.770 ms  10.780 ms  7.698 ms
 2  v213.core1.ams1.he.net (2001:470:0:7d::1)  10.738 ms  20.527 ms  20.511 ms
 3  amsix-router.google.com (2001:7f8:1::a501:5169:1)  11.302 ms  11.284 ms  11.257 ms
 4  2001:4860::1:0:8 (2001:4860::1:0:8)  11.487 ms  20.417 ms  11.447 ms
 5  2001:4860::8:0:519f (2001:4860::8:0:519f)  11.194 ms 2001:4860::8:0:51a0 (2001:4860::8:0:51a0)  11.178 ms 2001:4860::8:0:519f (2001:4860::8:0:519f)  11.163 ms
 6  2001:4860::8:0:519e (2001:4860::8:0:519e)  14.235 ms 2001:4860::8:0:517a (2001:4860::8:0:517a)  12.216 ms 2001:4860::8:0:519e (2001:4860::8:0:519e)  12.179 ms
 7  2001:4860::2:0:66f (2001:4860::2:0:66f)  10.875 ms 2001:4860::2:0:66e (2001:4860::2:0:66e)  10.566 ms  13.118 ms
 8  * * *
 9  ee-in-x65.1e100.net (2a00:1450:4013:c00::65)  12.799 ms  13.025 ms  12.635 ms

我似乎已成功配置为分发 IPv6 地址,如我的 Windows 8.1 Pro 桌面的响应radvd所示:ipconfig

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : example.com
   IPv6 Address. . . . . . . . . . . : 2001:470:1f14:904:a05b:6fd2:b36b:f9af
   Temporary IPv6 Address. . . . . . : 2001:470:1f14:904:d40d:78ad:a2db:30cc
   Link-local IPv6 Address . . . . . : fe80::a05b:6fd2:b36b:f9af%2
   IPv4 Address. . . . . . . . . . . : 192.168.10.6
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : fe80::218:71ff:feea:f57b%2
                                       192.168.10.1

但是,当我尝试对 ipv6.google.com 执行操作时tracert,请求超时;

C:\>tracert -6 -h 10 ipv6.google.com

Tracing route to ipv6.l.google.com [2a00:1450:4013:c00::64]
over a maximum of 10 hops:

  1     *        *        *     Request timed out.
  2     *        *        *     Request timed out.
  3     *        *        *     Request timed out.
  4     *        *        *     Request timed out.
  5     *        *        *     Request timed out.
  6     *        *        *     Request timed out.
  7     *        *        *     Request timed out.
  8     *        *        *     Request timed out.
  9     *        *        *     Request timed out.
 10     *        *        *     Request timed out.

现在的问题是:如何让我的 LAN 客户端使用 Linux 路由器上的隧道?

我已经做了一些挖掘,但可能就是找不到正确的搜索词来解决我的问题。

编辑:添加radvd配置

interface eth1
{

    AdvSendAdvert on;

    MinRtrAdvInterval 5;
    MaxRtrAdvInterval 15;

    prefix 2001:470:1f14:904::2/64
    {
        AdvOnLink on;
        AdvAutonomous on;
    };
};

答案1

一些想法:

  • 您是否已启用 ipv6 路由(sysctl -w net.ipv6.conf.all.forwarding=1);可能需要为每个 intf 执行此操作
  • 您的 he-net 隧道是否会转发/接受您提供给客户端的 IPv6 地址?如果没有,您将需要 NAT。

相关内容