PPPoE 获取 IPv6,为什么 IPv6 前缀是在 LAN 上面, PPPoE 看上去没有 IPv6?

2021-02-16 18:31:37 +08:00
 systemcall

路由器用的 OpenWRT,新建了接口 PPPOE 来进行 PPPoE 拨号上网,接口设置成了 @wan,防火墙设置为 wan
这样用了很久。刚刚才留意到一个问题,就是 OpenWRT 上,PPPoE 、WAN 、WAN6 这 3 个接口都没有拿到 v6 的前缀和地址,但是 LAN 上面有 v6 的前缀。那么 ipv6 到底是怎么分配的呢?
如果用电脑拨号,还可以拿到 ipv6 的地址吗?电脑和路由器不在一个房间,测试起来很麻烦。想请教一下大家

4520 次点击
所在节点    程序员
18 条回复
xarthur
2021-02-16 18:38:05 +08:00
你的 PPPoE 没开启 IPv6 的支持,或者就是你的运营商还没下发 IPv6.
LAN 口上的 IPv6 估计也只是本地链路单播地址
ysc3839
2021-02-16 18:39:39 +08:00
OpenWrt 的话,连接 PPPoE 后应该会出现一个新的接口,对应的是 PPPoE 的 IPv6 。
systemcall
2021-02-16 18:41:25 +08:00
@xarthur
ipv6 是正常的,下面的机器可以分配到公网 v6 。lan 上面确实有个本地链路的地址,但同时还有一个 /60 的前缀,这个是运营商下发的
@ysc3839
之前的那个 openwrt 路由器似乎是有的,不知道现在的这个为什么没有
xarthur
2021-02-16 18:41:38 +08:00
其实可以看看我的写的文章(
https://v2ex.com/t/724060
不过有点过时了,我之后没在用 DHCPv6C 了,直接用了系统内置的 dhcpcd
ysc3839
2021-02-16 18:41:53 +08:00
@systemcall 可能是配置错了什么?
xarthur
2021-02-16 18:44:26 +08:00
@systemcall 如果 LAN 口有正常的 IPv6,而且路由接的设备可以分配到 IPv6,说明 Prefix Delegation 是正常的。估计还是在 PPPoE 上出了什么问题。
lcdtyph
2021-02-16 18:47:22 +08:00
odhcpd 是怎么配置的
systemcall
2021-02-16 18:50:14 +08:00
@ysc3839
@xarthur
怀疑是系统自己的 bug
在终端输入 ip addr,看到 pppoe-pppoe 这个接口有 2 个 ipv6 的地址,一个是 /64 的公网地址,另一个是本地链路 ipv6 地址
xarthur
2021-02-16 18:53:40 +08:00
@systemcall 那应该是正常的。估计是 UI 层出什么 Bug 了。
xarthur
2021-02-16 18:54:47 +08:00
@systemcall 这也是为什么我不太想用 OpenWRT 而是选择自己折腾的原因(
Zy143L
2021-02-17 03:35:19 +08:00
这个问题,op 祖传问题了
你拨号会发现,wan 只有 ipv4,wan6 没有地址,然而 lan 却有 IPv6 也能正确分配
feng0vx
2021-02-17 10:43:34 +08:00
wan 口应该有 ipv6 的本地链路地址,这个 fe80 和 wan 口网关的 fe80 通讯,以前遇到过,貌似是老光猫的原因
sasalemma
2021-02-17 14:24:42 +08:00
感觉这是最基本的路由逻辑啊亲

WAN 口和 LAN 口必然是不同网段的,怎么可能从 LAN 获得 LAN 的前缀。

openwrt 你删掉原来 WAN 和 WAN6 口,只新建一个 WAN 口,PPPoE 拨号,带 IPV6 就会自动生成一个虚拟的 WAN_6 接口,里面有 LAN-PD 前缀和 WAN 口 SLAAC 下发的 WAN 口独立 ipv6 地址,不同网段的。

WAN 口有 IPV4 地址和 IPV6 链路地址,虚拟的 WAN_6 口有 PD 和 WAN 口 IPV6 信息

按目前的家宽配置中,他们给的地址,WAN 、LAN 前缀中前两个段是一样。

哪里有楼上祖传的什么鬼问题,用的是第三方固件吧。自己去编译个看看再说。
sasalemma
2021-02-17 14:53:05 +08:00
目前大多 IPV6 中,一般是以 DHCPv6-PD 形式下发,PPPoE 拨号,WAN 口带一个被 SLAAC 方式下发的 IPV6 地址和甩给了 LAN 一个 /60 的前缀,路由 LAN 这边用无状态分配的方式,LAN 下设备就生成一个 /64 的完整 ipv6 地址,但不能再下发了。就是路由拨号获得 PD 前缀是 /60,再接个二级路由,二级路由下的设备就没有 PD 二次下发的前缀可用了,就没有 IPV6 地址了。拨号路由用 DHCPv6 有状态分配短地址,二级路由能继续使用 PD 前缀,只是安卓一类设备不支持有状态的 DHCPv6 方式。

你的 GUI 不显示 WAN 口地址,本质上来说,原界面中的 WAN 是 PPPoE 拨号协议,而无论是 PPPoE 获得的 IPV4 还是 IPV6,都是 PPPoE 这个接口获得的,而默认下 WAN6 这个接口,是作为和 IPV4 时 WAN 被上级 DHCP 获得地址的来的。上级光猫又没有 DHCPv6 给你,怎么会有 IPV6 拨号获得的信息在,有信息也只是光猫分配的 IPV6 地址。

换个你能理解的说法,这个东西就好比 OPENWRT 拨号,路由拨号,光猫桥接,那路由的 WAN 口是不是接在光猫的 LAN,光猫没有分配一个 IPV4 地址给你吗?有的。那 WAN 口为什么只有 PPPoE 的信息?还不是因为自己设置接口协议的时候用了 PPPoE 协议,所以光猫 DHCPv4 下发的 ipv4 地址是不是看不见任何信息呢?

WAN6 口是同理的。删掉,让 WAN 口拨号。自动生成就是了,生成的虚拟 WAN6 或者 @WAN 或者 WAN-6 就有信息了。
hcocoa
2021-02-17 20:34:20 +08:00
建议学习一下 IPv6 基本知识,LAN 口的地址应该是 Link-local address,可以截图贴出来给大家看一下。
https://en.wikipedia.org/wiki/IPv6_address

OpenWRT 配 IPv6 可以搜一下,有不少文章:
https://lwz322.github.io/2019/07/25/IPv6_Home.html
https://xratzh.com/2020/02/29/openwrt-ipv6/
http://blog.kompaz.win/2017/02/22/OpenWRT%20IPv6%20%E9%85%8D%E7%BD%AE/
flynaj
2021-02-18 11:01:58 +08:00
可能你的 openwrt 不是原版没有显示正确,还有可能你没有删除默认那个 wan_6 的接口。
systemcall
2021-02-19 20:39:14 +08:00
@flynaj #16
感觉可能是因为我的 OpenWRT 不是原版的原因吧
主要是手里只有一个 newifi mini 有原版 OpenWRT 可以刷,但是太老了,无线不稳定,而且爬墙太慢。别的可以刷 OpenWRT 的东西都不是官方支持。acrh17 刷的恩山的固件,手里还有几个 tp 的无线路由,没有对应的固件刷,ROM 芯片和编程器倒是不缺
shikkoku
2021-06-25 16:46:51 +08:00
@systemcall #17 lean 的源码 luci 不会显示 wan_6 接口。

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

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

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

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

© 2021 V2EX