开个新坑:写给 Geek 们的小范围 IPv6 组网最佳实践

2023-07-08 12:41:40 +08:00
 raysonx

自 2017 年底,国内大多数地区的固定宽带和移动网络就开始提供 IPv6 接入了,平时逛宽带症候群区时也经常看到关于 IPv6 的种种问题。可能因为最近几年越来来多的用户失去了公网 IPv4 地址,肉眼可见 IPv6 有了更多的讨论度。

本人自从十几年前就开始玩 IPv6 了,也在 V2EX 发过几篇关于 IPv6 的文章。之前曾打算专门抽出时间写一系列文章,旨在帮助各位 V 站 的 Geek 们在家庭等小范围进行 IPv6 组网,并为常见的问题提供解决方案,但是这个计划一再搁置,最终也没有去做。今天看到有人在我之前的帖子回复希望我能写点教程,这才又想起这件事。

之前发过的帖主要有:

根据我逛 V 站和其他地方得来的经验,我暂时想到了下面这些主题(想到的很多,不一定会写哪几个),不知各位有没有要补充的或者对某一方面特别感兴趣的?如果某一方面有很多人感兴趣,那我就多写一点或者提早写那一篇。目前想到的主题有:

6859 次点击
所在节点    宽带症候群
40 条回复
raysonx
2023-07-08 18:04:41 +08:00
@veSir 需要。LUCI 上打开 Firewall 设置,点击 WAN 这个 zone 的设置,勾选 MSS clamping 。
silverwolf
2023-07-08 19:10:27 +08:00
@raysonx 成功了🎉

上面那个 radvd.conf 有语法错误,改为:

```
interface eth0
{
AdvSendAdvert on;
AdvDefaultLifetime 0;
prefix fd07:2023::/64 {};
};
```
silverwolf
2023-07-08 19:12:41 +08:00
@silverwolf 我一开始看 error :6 不知道是什么语法错误,把第 6 行移出来就通过了
Jirajine
2023-07-08 19:21:34 +08:00
@raysonx 不工作的应用应该不多吧,也就 p2p 、nat traversal 以及网络相关的工具需要适配,普通应用应该是无感的(“fakeip”不会 break 的应用 nat64 应该也不会)。

为不同设备配置不同的防火墙规则是刚需,比如限速、劫持、策略路由。因为 ap 的缘故我没法让设备通过不同 ssid 接入不同的 vlan ,即使换了 ap 这样也不方便,会破坏不同设备间依赖内网直连的应用。

稳定地址不仅是内网通信,docker/虚拟机等不少应用也依赖稳定地址,ula 又失去了入站连通性,ula 配合 NAPT 无状态前缀转换好像很不错,但应用不一定能正确处理地址发现的问题。
以及配置 ipv6 相关的 nat 基本要手写防火墙规则,也不好维护。
u20237
2023-07-08 19:35:01 +08:00
至少得实现聊天/上传/下载吧?那么根服务器在哪?
Tink
2023-07-08 19:38:50 +08:00
感谢大佬分享
WhatTheBridgeSay
2023-07-08 21:02:21 +08:00
我现在最想知道的是有没有可能在网关上 DDNS 更新局域网设备 SLAAC 出来的 IPV6 地址,以及 NDP 代理具体是是干嘛用的,按我的理解是用于设备发现用的,那是不是可以网关可以用来获取局域网设备的 IPV6 进而 DDNS ?
yzc27
2023-07-08 21:14:43 +08:00
想请教一下大佬,路由器有 ipv6 防火墙开关,但没具体设置。把这个防火墙打开,那么这个路由器下面的设备的 ipv6 是不是处于被保护的状态?之面看有人说这个防火墙只保护路由器本身,它下面设备还是“裸奔”。
sky96111
2023-07-08 21:49:31 +08:00
我最近使用 WireGuard IPv6 组网的时候遇到了 MTU 的问题,client 使用 wg 默认的 1420 ,服务端 OpenWrt 使用 PPPoE 拨号,dhcpv6-pd 获取 ipv6 地址。同时开启区域转发、MSS 钳制、IP 动态伪装,访问服务端出现有些资源无法访问,ping 又是正常的情况
发现是 MTU 的问题后,用 ping -s 降低包大小进行测试,一直降低到 1382 时才正常
想请教一下,为什么 MTU 会是 1382 ?而且它似乎有点太低了
raysonx
2023-07-09 08:40:34 +08:00
@Jirajine 不工作的应用非常多,你试试就知道了。


@WhatTheBridgeSay 有可能,但好像没有现成的实现,之前曾打算自己开发一个,但好像大家的兴趣不大。NDP proxy 类似于 IPv4 下的 ARP proxy ,一种让两个广播域共享同一网段的 hack 。

@yzc27 路由器型号千奇百怪,无法统一回答。

@sky96111 PPPoE 下 WireGuard 的 MTU 设定为 1412 就可以了。
latteczy
2023-07-09 11:01:11 +08:00
请教一下,家里的网络已经支持 IPv6 ,主机也可以访问 IPv6 ,但是只有我的 MacBook 无法访问 IPv6 ,我的 MacBook 也有 IPv6 地址,但是 ping IPv6 网站解析出来的都是 IPv4 地址(比如 ping mirrors.aliyun.com ),在我家里的其他设备上 ping 这个域名解析出来的都是 IPv6 地址。
请问这可能是什么原因?
raysonx
2023-07-09 13:32:43 +08:00
@latteczy mac 要用 ping6
t123yh
2023-07-09 21:57:53 +08:00
IPv6 怎么实现出口分流呢,比如我同时拉了电信和移动的宽带,是否可能在路由器上自动区分出口
huaxie1988
2023-07-09 23:15:53 +08:00
@sky96111 测试的时候应该是 1384 吧? 1500-8 Bytes (PPPOE) – 40 Bytes (IPv6) – 8 Bytes (UDP) – 32 Bytes (WG) -20 Bytes (IPv4)-8 Bytes (ICMP),算出来就是 1384 ,mtu 1412
huaxie1988
2023-07-09 23:21:18 +08:00
@t123yh 不用分流,只要把 2 个地址都分到用户侧,ipv6 会自动分流,IPV6 源地址选择有个特性,是优选和目标地址最长前缀匹配的地址,所以访问电信就选电信地址,访问移动就走移动地址,然后路由器上根据源地址送到对应的出口去,全自动分流。
latteczy
2023-07-10 17:26:31 +08:00
@raysonx #32 感觉不是这个原因,在 mac 上刷 test-ipv6.com 也显示不支持 IPv6 ,就很奇怪。
raysonx
2023-07-10 22:34:01 +08:00
@latteczy 所以你的 mac 真的获得 ipv6 地址了吗?你可以在 mac 上运行下面的命令并把结果发给我 (邮箱 base64 bWVAeXV4LmltCg==)看看:

ifconfig

netstat -nr
ttvast
2023-07-11 11:31:01 +08:00
不用 nat 的 ipv6 就是垃圾。
用了 nat ,为啥不直接用 v4 。

除非宽带服务商给我分配固定/56 的网段。
LodonBoy10086
2023-07-13 15:16:47 +08:00
raysonx 你好,有个有意思的防火墙相关 chaifeng/ufw-docker 。我想问问,怎么把它转成 ipv6 版?有什么其他的注意事项。
echo1937
2023-08-20 23:37:32 +08:00
楼主有博客吗,方便进行历史内容的搜索和查看。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955078

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX