光猫拨号,二级路由 IPV6 的正确设置教程.

2021-02-19 19:42:11 +08:00
 826540272
几乎所有光猫不会下发前缀指派,所以二级路由器只有路由器本身可以获得一个 ipv6 地址.
解决方法是使用 ipv6 透传 / 中继 技术.
透传方案兼容性更好,直接桥接 WAN 和 LAN 的 v6 数据包,使用"etable" 命令,具体命令忘了.可以搜索到.缺点好像是路由器本身拿不到 v6 地址.
其次是 使用中继方案,
OpenWrt 下设置方法是,WAN DHCPv6 设置里全部设为中继. LAN 设置 同样全部设为中继,
优点是可以自定义 DNS 地址,你可以将路由器设为 DNS v6 地址,以进行过滤.
缺点是 首包延迟大,可能是 odhcp 软件的 BUG.
13297 次点击
所在节点    宽带症候群
30 条回复
steadi
2021-02-19 21:23:54 +08:00
就是 ipv6 桥模式
sasalemma
2021-02-20 12:22:26 +08:00
不是不能下发前缀,而是 PD 模式+statless 无状态,光猫的 PD 前缀给的是 60,路由 WAN 获得的是 /64 这个 statless 最小能分的掩码,不能再在 LAN 下发了。那样就是 /128,要是 PD+statful 倒是可以继续下发的。要是 PD 前缀是 /56/48 那更可分。

二级路由最稳的做法还是 NAT6,不是 NAT66,不是穿透,而是直接用 IPV6 私网地址来 NAT6,能使用 IPV6 网络,也不会对网络产生任何 bug,底下设备要公网,和 V4 一样端口映射就是,只是 openwrt 本身防火墙对 ipv6 的 nat 端口映射没有界面支持,对于 ipv6 的转发倒是可以直接在界面操作。
datou
2021-02-20 13:39:19 +08:00
还是把 ont 改桥接,在路由器上拨号吧

这样设置 ipv6 防火墙更方便一些
LnTrx
2021-02-20 16:42:31 +08:00
@sasalemma NAT6 和 NAT66 不是一个东西?
sasalemma
2021-02-20 21:42:42 +08:00
@LnTrx 个人觉得自己的回复已经说明不是一个东西。
sasalemma
2021-02-20 21:50:14 +08:00
@LnTrx 😄 一时手快,手动狗头掉了。真是扑了街。
LnTrx
2021-02-20 21:50:38 +08:00
@sasalemma 这个说法没听说过,说是一个东西的倒是有:

> This page describes how to set up NAT6 (also known as NAT66)
https://openwrt.org/docs/guide-user/network/ipv6/ipv6.nat6

如果这两个不是一个东西,那分别指什么,能否提供一下资料?
826540272
2021-02-21 04:54:37 +08:00
@sasalemma 我 56 也不能分,这个不能设置的
而且是不是 pd openwrt 界面可以看到,所以你的理解不对
cwbsw
2021-02-23 16:06:30 +08:00
@sasalemma
就是光猫路由模式不支持 LAN 侧 DHCPv6-PD 的锅。
/60 当然可以继续分割下发啊。WAN 口 SLAAC 的 /64 地址和 PD 分配的 /60 前缀又不是一个东西。你 WAN 口关闭 SLAAC 不配地址或者从 /60 里拿一个地址配在 WAN 口上都是可以的。
sasalemma
2021-02-23 16:28:22 +08:00
@cwbsw

这真不行,以前 PD 给了 LAN /56 前缀,倒是实现了。

你没理解我说的话。WAN 口这边的地址本来就是是 /64 也好,/60 也好的 SLAAC 和 LAN 的 PD 无关的。就如 ipv4 的 wan 上游服务的分配 ip 。

只是 WAN 作为一个入口,给 LAN 这边一段 PD 地址,给了 /60 。LAN 这边用 SLAAC 方式分配,二级路由的 WAN 接 LAN,这个 WAN 口就是 /64 的 statless 地址了。还能再下发吗???

这个东西研究 openwrt 内网的 pd 就是这样。除非用有状态了。

和你说光猫是两回事。

@826540272
@cwbsw

我知道你们说的意思。光猫的没有 PD,用 passthrough 一类直接和 wan 口同享一个网段的,和手机 wifi 共享 4g 一样,同网段的,/64 的 SLAAC,接个路由的情况,wan 口+SLAAC 就是 /64 。没有 PD 也没有下发。

但我这边的光猫不是这样而已。光猫拨号,这边还是有 PD 。只是二级路由无法继续下发。

我说的是哪怕你桥接路由拨号,/60 的 pd 在二级路由一样没有继续下发的,用 slaac 。
cwbsw
2021-02-23 18:39:52 +08:00
@sasalemma
不知道你为什么认为 /60 就无法继续下发。
假设运营商分配 2408:1234:2234:3230::/60,于是你不就得到了 16 个 /64 ?把 2408:1234:2234:3231::/64 分配给 LAN,2408:1234:2234:3232::/64 分配给二级路由的 LAN,不就可以了?
qbqbqbqb
2021-02-23 20:38:43 +08:00
@sasalemma 你这里对一些概念的理解有些问题。

是这样的,首先各个 /64 的意义是不一样的,通过 SLAAC 获得的只是一个地址,里面的“前缀长度”字段(值为“/64”)只是相当于 ipv4 的子网掩码的含义,只是提示了同一网段( WAN 侧)的地址范围,同前缀的其它地址是不属于你的。所以说当路由器仅获取 WAN 地址时(无论是通过 SLAAC 还是 DHCPv6 IA_NA,前者只支持 /64,后者支持任意的前缀长度,注意这两种方式获取到的都是“地址”而不是“前缀”),LAN 端设备是无法直接获得 IPv6 全球单播地址(就是 2 开头的公网地址)的。

然后还有另外一种操作是 DHCPv6 IA_PD,这种操作可以向上级网络请求一个 IPv6 的前缀,一般家宽运营商给出的前缀长度都是 /56 或者 /60 的,也有极少情况是 /64 的。通过这种方式获取到的是“前缀”而不是“地址”,也就是说同前缀的 2^(128-PREFIX_LEN)个地址都是属于你的。这就是 DHCPv6 IA_PD 和其它地址获取方式( SLAAC 和 DHCPv6 IA_NA )的本质不同之处。

家宽单层路由器(包括光猫自带路由,以及光猫桥接路由拨号两种情况)的一般工作方式:首先路由器(路由模式光猫)建立 PPPoE 链路,然后通过 SLAAC 获取 WAN 侧地址(一般情况下前缀长度为 /64 ),然后通过 DHCPv6 IA_PD 向 ISP 请求一个地址段,比如楼主拿到的是一个 /56 的地址段,这些地址都是临时属于你的( ISP 端在获取地址的那一刻就已经建立好了正确的路由)。然后重要的来了:路由器(路由模式光猫)从这 /56 的地址端中只取了一个 /64 的地址段作为前缀配置到了 LAN 接口上(包括本地路由器的路由表,自身 LAN 口地址,和负责分配地址的 RA 服务,有时候可能还有本地的 DHCPv6 服务),这样 LAN 侧的设备就可以通过相应的协议获取临时属于自己的公网地址了。至于为什么只取一个 /64 而不是整个 /56,是为了兼容 SLAAC 。

而且可以注意到,路由器 LAN 侧和 WAN 侧不是同一个网段,这也是 IP 协议的最基本要求(想想 v4 时代是怎么配置地址的)

这种情况下,还有 255 个 /64 全球可路由的地址段(或者也可以理解成 15 个 /64 地址段和 15 个 /60 地址段)是处于闲置状态的,理论上来说,一级路由器也可以响应 LAN 侧接入的下级路由器的 DHCPv6 IA_PD 请求,给下级路由器分配前缀(下级路由 WAN 侧通过 SLAAC 拿一级路由 LAN 侧的**一个**地址,LAN 侧拿一级路由从 ISP 得到且闲置的**一段**前缀,在这个过程中会自动配置好本地的路由表等参数),然后下级路由 LAN 侧连接的设备就也可以获得公网地址了。此时如果把 /56 改成 /60,也只是少一些可用地址段而已(只有 15 个 /64 地址段闲置),影响不大。如果一级路由器是 OpenWRT,是可以实现这种下发操作的。

所以说实际存在的问题并不是所谓的“/60 下发只有 /64 不能再下发”(实际上不存在这种说法),而是光猫自带路由根本不会正确响应下级路由器的 IA_PD 请求。
(我也见到过一些光猫,能够响应 IA_PD 请求,但是可能固件里有 bug 不能正确配置本地的路由表,导致二级路由后的设备能获取 ipv6 地址但不能上网)
qbqbqbqb
2021-02-23 21:03:19 +08:00
@sasalemma
改正上个回帖里的一处错误:“如果一级路由器是 OpenWRT,是可以实现这种下发操作的”
现在的 OpenWRT 确实不支持这种下发。但是其它路由器不一定不支持。

我之前也见过一种光猫,获取 /60 的前缀后可以给二级路由 PD /64 的前缀,但可能路由表的建立有 BUG,导致二级路由后的设备获取了地址也上不了网......
qbqbqbqb
2021-02-23 21:18:10 +08:00
比如说一级路由使用 Mikrotik RouterOS 的话,这种情况就是可以下发前缀的
sasalemma
2021-02-24 00:49:43 +08:00
@qbqbqbqb

已经不说 WAN 那边获取的 /64 和 /60,那个和 pd 地址段到 LAN 这边没有影响。

一级路由的 PD 前缀为 /60,然后一级路由无状态下发的情况,一般配置下,一级路由只截取了 /64 开始下发至 LAN 设备(几乎大多数设备都是如此),还能无状态能二三四级一直下发不?就是一开始说的 /60 + 无状态方式,LAN 这边就只有 /64 网段了。LAN 以坑爹的 /64 PD 你都说为了兼容 SLAAC 方式,才采用的。

我也说了,你要验证这个很简单的。路由,比如 OP 这边自己建立 LAN 的 PD 模式就是,就是 LAN 禁用前缀派发后,禁用全局,设定 LAN 的静态 ipv6 地址和 PD 前缀,就是 openwrt 自身的 PD 模式,和公网无关的。

LAN 下还继续接个二级路由,还能 /128? 一级路由只是能拥有很多地址段和地址而已。比如在一级路由拨号中 WAN,可以加参数请求,WAN 口拨号获得的 PD 段为 240e:1234:1111:2222::/60,那实际上 多个 LAN 口 可以用请求成 LAN1 可以获取 240e:1234:1111:2222::/64 前缀,LAN2 能获取到:240e:1234:1111:2225::/64,LAN3 是:240e:1234:1111:2227::/64,就是 WAN 响应 LAN 派发不同地址段,也极少人会使用这个。

LAN 下接的设备就成了 /64 的前缀+/64 的后缀,变成了完整的 128 位地址,就是 SLAAC 获得的地址,没有 PD 再次下发的可能了。 因为二级 WAN 和 LAN 也必然是需要不同网段的,只有用有状态来划分网段,有状态无需为 SLAAC 后 /64 段负责,继续 PD 就是,/82 /98 /128 就能无限制下发,只要你分的足够细。


从一开始,我只提了一个问题:一级路由 PD/60 前缀+SLAAC 方式的 LAN,LAN 接二级路由 PD 继续下发问题。

因为目前的开放性路由系统,相对来说就那几个,还各种 bug,除了自行修改配置,默认下的 LAN /64,还真很难处理这个。
sasalemma
2021-02-24 00:51:47 +08:00
@cwbsw 说下具体的。比如 op 一级拨号 wa 你这边获得 /60PD,LAN 口 /64 开始派送。界面上如何配置这个。二级路由同为 op 。
sasalemma
2021-02-24 01:01:40 +08:00
@cwbsw 关键是不同的路由器,你无法配置这个啊。不是不知道啊。比如 OP,你二级路由 WAN 请求前缀 /64,一级路由都不鸟这个,直接给 WAN 派送地址打发了二级路由。你说气不气呢?

又比如一级路由中,ASUS 的 AC68U 用 native 方式,二级的 op 的 WAN try 啊。得 WAN try 得到 PD 前缀,才有后面 LAN 派件得可能性。。。

我没说所有路由不支持。只是常见系统,DD 也好,OP 也好,ROS 这类个人觉得不友好没试而已。
sasalemma
2021-02-24 01:38:06 +08:00
@qbqbqbqb 可能上面一些表诉有问题。以前 /56 的时候,二级路由可以不设置,二级路由 WAN 也能拿到 /64 的 PD 前缀,而 变成 /60 后,地址段少了不影响,只是二级路由 WAN 获不到 和 LAN /64 段的 PD 而已。

一些路由处理 PD 的大概是类似这个逻辑:一级 2408:1234:2234:3230::/60,二级 2408:1234:2234:3231::/64,三级 2408:1234:2234:3230:0001::/80

如上面朋友说的,WAN1:2408:1234:2234:3230::/60,LAN1 获得了:2408:1234:2234:3230::/60,而 WAN2 并不能“越过”LAN1 段获得
2408:1234:2234:3232::/64 的 PD 前缀而已。如果路由系统支持,那有 WAN
1 有多少地址段,都能所谓“无限下发”了。只是目前家用这些坑爹货不行。7621A,4709C,x86 的 op 。除非穿透过去,如楼主说的。WAN-LAN 相通,阻隔 ipv4 包,还造成了第一个包的 bug,多级下,就坑死了。家用级别光猫也是如此如此。

家宽这边也就是那么点人有这些需求,像我老弟的家,一个路由桥接拨号,挂一个交换机,底下都是挂二级路由,ipv6 自动失效。苏州那边的落脚点,电信封杀密码的中兴猫,猫拨号,也是没有 pd,也是挂着二级路由,桥接都没改成。

所以最终隔离网络,就不是变成了二级路由,而是直接一级路由中一个 LAN 口设一个 VLAN 并独享一个 PD 前缀了。LAN 怎么请求 /60 PD 都是可以的。二级就跪了。所以才有了所谓不能下发的说辞了。确实,ROS 和 OP 都是基于 linux iptables 的货色,改天研究下 ROS 如何处理这个的,看看能不能搞到 op 这边。
dodakt
2021-02-24 08:55:43 +08:00
@sasalemma /60 也可以下发例如 /62 的 pd 我一级 op 二级 ASUS
cwbsw
2021-02-24 10:22:31 +08:00
@sasalemma RouterOS 和 OpenWrt 都可以收到 /60 继续向下分发 /64 前缀的,13 楼说 OpenWrt 说不支持,不清楚 OpenWrt 最近是不是又瞎改了,至少我去年还在用 OpenWrt 作主路由的时候确实是可以的。

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

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

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

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

© 2021 V2EX