深圳联通宽带 IPv6 是只给一段 /64 吗?

2020-11-06 15:01:21 +08:00
 rio

我现在的情况是:

  1. 用软路由( debian 10 )装 pppd 进行 PPPoE 拨号;
  2. 拨号成功后建立 ppp0 网卡,pppd 和局端协商到一个 IPv4 地址和一个 fe80::/10 的 IPv6 link-local 地址;
  3. 局端通过这个 fe80::/10 地址每十分钟给我个 Router Advertisement,里面包含一段 2408:8256:3075:BEEF::/64 ( BEEF 那段每次拨号会变)。

现在的问题是局端 RA 给我的 2408:8256:3075:BEEF::/64 这段地址只在 ppp0 网卡上存在(我猜是 pppd 给自动配上的?),此时我应该怎么办?直接分配这个 /64 给内网设备?如果是,用啥工具实现?

尝试过用 wide-dhcpv6-client 通过 ppp0 向局端再请求一个 /64,但是抓包显示局端回复 NoPrefixAvailable,是不是说局端就只给之前那个 /64 ?

8484 次点击
所在节点    宽带症候群
76 条回复
rio
2020-11-06 15:17:02 +08:00
补充:用这位老哥的[土办法]( https://forum.dd-wrt.com/phpBB2/viewtopic.php?p=1101319&sid=407bf03903486e59b4a2dd884386db42) 强制将 `ppp0` 上的那段 /64 分配给内网,但是因为每次拨号都会变,所以是不是还需要一个办法自动化这个过程?
Livid
2020-11-06 15:29:23 +08:00
感觉给内网设备分配 IPv6 地址这件事情应该是内网里自己的 DHCPv6 服务器做的事情。
Livid
2020-11-06 15:30:08 +08:00
Livid
2020-11-06 15:33:29 +08:00
ISP 给了你 /64,然后你可以自己继续自由分配这个 /64 里面的 /128
Livid
2020-11-06 15:35:46 +08:00
rio
2020-11-06 15:45:40 +08:00
@Livid 现在的问题是我不知道 Linux 上这个 PD 怎么配置,你的例子和网上的教程大部分都是使用 Unifi 或者 OpenWRT 这样的专用系统,对标准 Linux 系统没有指导意义😂
Livid
2020-11-06 15:50:46 +08:00
@rio 我也没有这么配过,仅供参考吧:

https://superuser.com/questions/58626/dhcpv6-server-client-on-linux
zro
2020-11-06 15:57:18 +08:00
顺手装个 ADGuardHome 分配 v6 试试吧~
rio
2020-11-06 16:07:33 +08:00
@Livid 如果我手动把 ppp0 上的那段 /64 配置到 lan 网卡上,通过 dnsmasq 也可以分配 IPv6 地址给内网设备并且上网(就是这里 https://forum.dd-wrt.com/phpBB2/viewtopic.php?sid=407bf03903486e59b4a2dd884386db42&p=1101319 提供的土办法)。

现在我不太确定的地方是 ppp0 获取到的这段 /64 是否应该分配给内网?如果是的话,用什么软件包自动实现这个过程呢?

因为我看别人的教程好像是 ISP 给路由器一个 /64,但是路由器通过 DHCPv6 再请求一个新的 /64 再分配给内网设备(比如这个 http://www.routereflector.com/2016/10/enabling-ipv6-via-pppoe-on-a-telecom-italia-tim-link/ )。
XiaoxiaoPu
2020-11-06 16:36:12 +08:00
XiaoxiaoPu
2020-11-06 16:43:18 +08:00
你看的教程,其实就是自动获取 ISP 给你分配的前缀,并且把这个前缀通告到 lan 里。

「现在我不太确定的地方是 ppp0 获取到的这段 /64 是否应该分配给内网?如果是的话,用什么软件包自动实现这个过程呢?」教程里的 WIDE-DHCPv6 就是自动实现这个过程的软件。
Xymmh
2020-11-06 16:44:37 +08:00
@rio 只给 /64 不是不行,是可以正常分配给内网的,不用纠结这个。这是一种 ISP 很常规的 IPV6 分配方法(比如大部分教育网)。

分配方法可以是中继或者透传
你说的直接分配给内网应该相当于中继?应该是没有问题的。
Xymmh
2020-11-06 16:48:27 +08:00
@rio odhcpd 可以实现你说的过程
rio
2020-11-06 16:48:57 +08:00
@XiaoxiaoPu 按照你给的这个链接我也试过,wide-dhcpv6-client 会通过 ppp0 向局端发起请求,然后局端回复 NoPrefixAvailable,所以就回到最开始的问题了,如果局端只给分配一个 /64,并且这个 /64 被 pppd 分给了 ppp0 网卡,然后我该怎么自动把这个 /64 也分给内网设备呢?
XiaoxiaoPu
2020-11-06 16:51:15 +08:00
@rio 改一下你的 ppp 配置的 dhcp 客户端,使用 wide-dhcpv6
v2tudnew
2020-11-06 16:55:19 +08:00
运营商要是给个 60%前缀就好办了,你也应该试试光猫拨号能不能弄到 /60%,也许是系统问题
LnTrx
2020-11-06 16:59:11 +08:00
要确认运营商是否只给一段 /64,推荐的做法是临时改成光猫拨号,查看 IPv6 连接信息,以排除拨号配置层面的问题
XiaoxiaoPu
2020-11-06 17:01:26 +08:00
ppp 有点忘了,上面一条可能不太对,如果不能修改配置的话,可以试试用 hook script 自动生成 radvd.conf
rio
2020-11-06 17:21:02 +08:00
@XiaoxiaoPu 想过用 ipv6-up script,但是实测发现 script 获取到的的 IPv6 地址是 fe80::/10 的 link-local 。RA 得到的 /64 不知道是什么东西给配置到 ppp0 网卡上去的😂
rio
2020-11-06 17:21:44 +08:00
@LnTrx 光猫试过,看后台也是得到的 /64,所以我在怀疑是不是就是只给这么一段 /64 剩下的自己想办法……

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

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

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

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

© 2021 V2EX