Debian 设置he Ipv6完整版

1. 前提条件

  • 您已经熟悉基本的网络配置和管理,包括IPv4和IPv6。
  • 你拥有一个静态的公网IPv4地址或者知道如何更新你的隧道端点
  • 你已经在HE Tunnel Broker注册并创建了一个隧道

2. 背景知识

IPv6是一个为互联网下一代协议设计的版本。然而,由于各种因素,全球的IPv6部署进度非常缓慢。Hurricane Electric (HE) 提供了一个免费的服务,使得能够通过IPv4网络建立IPv6隧道。

3. 创建隧道

创建HE的IPv6隧道需要访问其Tunnel Broker网站,并按照提示创建新的IPv6隧道。

image-20230809202632146

在隧道详情页面,您可以获取到如下信息:

image-20230809202917475

  • Server IPv4 Address
  • Client IPv4 Address
  • Server IPv6 Address
  • Client IPv6 Address

这些信息将被用于配置您的Debian系统。

4. Debian 通过 HE IPV6 连接互联网

在获得上述详细信息后,您需要将它们配置到Debian系统中。首先,打开 /etc/network/interfaces 文件,向其中添加以下配置项:

1auto he-ipv6
2iface he-ipv6 inet6 v4tunnel
3        address 2001:470:38:9e9::2
4        netmask 64
5        endpoint 216.218.221.42
6        local 110.242.68.68
7        ttl 255
8        gateway 2001:470:38:9e9::1

根据

NOTE: When behind a firewall appliance that passes protocol 41, use the IPv4 address you get from your appliance’s DHCP service instead of the IPv4 endpoint you provided to our broker.

阿里云腾讯云之类的云服务 要将local中的IP修改为内网的IP,即私网IP地址,例如172.16.xxx.xxx,而不是公网IP

然后,重启您的网络服务以应用新的配置。

或者执行

1ifup he-ipv6

停止ipv6

1ifdown he-ipv6

删除 ipv6

1ip tunnel del he-ipv6
  • 测试IPv6连接: ping6 ipadd.cn

5. 绑定 Routed /64 分配给局域网

如果你希望局域网(LAN)内其他设备也能利用Debian机器与HE之间的IPv6隧道,那么可能还需要进行一些额外的路由配置。具体来说,首先要启用IPv6转发功能,然后配置合适的IPv6子网地址。

打开 /etc/network/interfaces 文件,向其中添加以下配置项:

1iface eth0 inet6 static
2  address 2001:470:39:9e9::1
3  netmask 64

注意此处ip为 Routed /64:

重起网络应用配置 或执行

1ip addr add 2001:470:39:9e9::1/64 dev eth0

6. 局域网内设备通过 HE IPv6 连接到互联网

如果LAN内的设备希望直接访问Internet上的IPv6资源,你需要在Debian服务器上设置相应的转发规则。使用radvd

为了启用IPv6转发,需要编辑 /etc/sysctl.conf 文件并添加以下行:

1net.ipv6.conf.all.forwarding=1

为使局域网内的设备自动获取IPv6地址,你需要安装并配置 radvd

radvd 是一个用于Linux系统的路由广告守护进程,它能让系统通过无状态自动配置(SLAAC)机制向网络中的其他设备推送IPv6前缀。在Debian上,你可以使用以下命令来安装 radvd

1sudo apt-get install radvd

随后,需要编辑 radvd 的配置文件 /etc/radvd.conf。以下是一个基本的配置示例:

 1interface eth0 {
 2  AdvSendAdvert on;
 3  AdvLinkMTU 1480;
 4  MinRtrAdvInterval 60;
 5  MaxRtrAdvInterval 180;
 6  prefix 2001:470:39:9e9::1/64 {
 7    AdvOnLink on;
 8    AdvRouterAddr on;
 9    AdvPreferredLifetime 600;
10    AdvValidLifetime 3600;
11  };
12  route ::/0 {
13  };
14};

其中,“2001:470:39:9e9::1”应替换为你的IPv6前缀。这个前缀通常可以从HE的Tunnel Broker网站获取。

完成这些设置并保存配置文件后,需要重启 radvd 服务以应用新的配置。可以使用以下的命令来重启服务:

1sudo systemctl restart radvd

现在,你的Debian服务器应该已经开始在局域网中广播IPv6路由信息,而且网络中的其他设备也应当能够自动获取到IPv6地址,并通过Debian服务器访问Internet。

  • AdvSendAdvert on 意味着 radvd 会定期广播路由器公告。如果此设置为关闭,LAN 上的主机需要定期明确发送路由器请求广播。
  • AdvLinkMTU 1480 意味着“请注意,此以太网段上的数据包最大为 1480 字节”。理想情况下,可以这样说:“请注意,通过此路由器发送的数据包最大为 1480 字节”,但这是不可能的。然而,对于大多数流量来说,加快 PMTU 发现的速度比在本地段上仅缩小 20 字节的数据包的弊端更大。
  • MinRtrAdvInterval 60MaxRtrAdvInterval 180 意味着 radvd 应至少每 3 分钟广播一次路由器公告,但最多每分钟广播一次。单个客户端可以发送路由器请求请求来触发早期广播。
  • prefix 2001:470:39:9e9::1/64 告诉客户端,他们可以通过将 2001:470:39:9e9 放在 64 位唯一标识符(通常是 EUI-64 格式的 MAC 地址)的前面来创建自动配置的地址。此选项还告诉客户端路由器的公共 IP(请参阅下面的 AdvRouterAddr)。
  • AdvOnLink on 意味着“是的,您可以安全地假设 2001:470:39:9e9::/64 中的每个人都在与您相同的以太网段上,因此无需通过我来,我是一个友好的但工作过度的路由器”。显然,如果您的本地网络跨越多个以太网段,请将其更改为“关闭”。
  • AdvRouterAddr on 意味着“您知道我刚刚告诉您的前缀吗?如果您忽略 /64,它也是我的公共 IPv6 地址。如果您愿意,可以使用它而不是我的 fe80:: 地址与我对话”。这来自 Mobile IPv6 规范,但您无需完全部署 Mobile IPv6 才能使用它。
  • AdvPreferredLifetime 600AdvValidLifetime 3600 意味着“嘿,如果你 10 分钟内没有收到我的回复,请组建一个搜索队伍,如果你 1 小时内没有收到我的回复,请取消搜索,因为我要么被绑架了,要么死了”。客户端将逐渐停止使用此前缀中的自动配置地址(首先弃用它,然后删除它)。
  • route ::/0 告诉客户端,他们可以通过此路由器将流量路由到 IPv6 互联网的其余部分。由于我们没有指定 AdvRouteLifetime,因此该路由有效期为 3*MaxRtrAdvInterval = 9 分钟,并不断通过路由器公告广播进行刷新。

7. 将域名解析到 IPv6 地址

  • 配置 DNS 服务器解析域名的 AAAA 记录
  • 添加 Hurricane Electric 的 IPv6 DNS 解析服务器

8. 将 IPv6 地址反向解析到域名

image-20230809210808943

  • 配置 Hurricane Electric 的反向 DNS 服务
  • 测试通过域名访问 Debian 的 IPv6 地址
Published At
Categories with 技术
Tagged with
comments powered by Disqus