<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.photonicat.cn/index.php?action=history&amp;feed=atom&amp;title=Photoincat_2_IPv6_PPPoE</id>
	<title>Photoincat 2 IPv6 PPPoE - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.photonicat.cn/index.php?action=history&amp;feed=atom&amp;title=Photoincat_2_IPv6_PPPoE"/>
	<link rel="alternate" type="text/html" href="https://wiki.photonicat.cn/index.php?title=Photoincat_2_IPv6_PPPoE&amp;action=history"/>
	<updated>2026-08-31T05:07:45Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki.photonicat.cn/index.php?title=Photoincat_2_IPv6_PPPoE&amp;diff=253&amp;oldid=prev</id>
		<title>Guangyingmao：​创建页面，内容为“{| class=&quot;wikitable&quot; |- ! 适用版本 / Applies to | photonicatWrt '''26.04.1''' (r7720, OpenWrt 24+ base, fw4/nftables, odhcpd) — 更新于 2026-07 / Updated 2026-07 |- ! 旧版指南 / Older firmware | 2023–2024 固件请参考本页面历史版本 / For 2023–2024 firmware see the page history |}  * 本文说明如何在 photonicat (photonicatWrt 26.04.x) 上配置基于 '''PPPoE 的原生 IPv6'''，让内网设备通过 '''SLAAC / DHCPv6''' 获得公…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.photonicat.cn/index.php?title=Photoincat_2_IPv6_PPPoE&amp;diff=253&amp;oldid=prev"/>
		<updated>2026-08-30T06:28:20Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{| class=&amp;quot;wikitable&amp;quot; |- ! 适用版本 / Applies to | photonicatWrt &amp;#039;&amp;#039;&amp;#039;26.04.1&amp;#039;&amp;#039;&amp;#039; (r7720, OpenWrt 24+ base, fw4/nftables, odhcpd) — 更新于 2026-07 / Updated 2026-07 |- ! 旧版指南 / Older firmware | 2023–2024 固件请参考本页面历史版本 / For 2023–2024 firmware see the page history |}  * 本文说明如何在 photonicat (photonicatWrt 26.04.x) 上配置基于 &amp;#039;&amp;#039;&amp;#039;PPPoE 的原生 IPv6&amp;#039;&amp;#039;&amp;#039;，让内网设备通过 &amp;#039;&amp;#039;&amp;#039;SLAAC / DHCPv6&amp;#039;&amp;#039;&amp;#039; 获得公…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 适用版本 / Applies to&lt;br /&gt;
| photonicatWrt '''26.04.1''' (r7720, OpenWrt 24+ base, fw4/nftables, odhcpd) — 更新于 2026-07 / Updated 2026-07&lt;br /&gt;
|-&lt;br /&gt;
! 旧版指南 / Older firmware&lt;br /&gt;
| 2023–2024 固件请参考本页面历史版本 / For 2023–2024 firmware see the page history&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* 本文说明如何在 photonicat (photonicatWrt 26.04.x) 上配置基于 '''PPPoE 的原生 IPv6'''，让内网设备通过 '''SLAAC / DHCPv6''' 获得公网 (GUA) 地址，全球直连、无需 NAT6。&lt;br /&gt;
* This document explains how to configure '''native IPv6 over PPPoE''' on photonicat (photonicatWrt 26.04.x), so LAN clients get global (GUA) addresses via '''SLAAC / DHCPv6''' — direct global connectivity, no NAT6 required.&lt;br /&gt;
&lt;br /&gt;
== 一键配置脚本 / Automatic setup script ==&lt;br /&gt;
无需手动执行下面的步骤，可以直接运行一键脚本自动完成全部配置（自动备份、应用、验证）。 / Instead of the manual steps below, you can run a one-shot script that applies all of them for you (backup, apply, verify).&lt;br /&gt;
&lt;br /&gt;
SSH 登录路由器后运行 / SSH into the router and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget -O pcat2_pppoe_ipv6.sh https://gist.githubusercontent.com/c2h2/ae07a4c818457b4cf3f087bf164059f8/raw/pcat2_pppoe_ipv6.sh&lt;br /&gt;
sh pcat2_pppoe_ipv6.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 脚本会先把当前配置备份到 &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;，应用时 PPPoE 会短暂断线重连几秒，随后自动等待前缀下发并测试 IPv6 连通性。 / The script backs up your config to &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; first, briefly restarts the PPPoE session, then waits for the delegated prefix and tests IPv6 connectivity.&lt;br /&gt;
* 可选参数 / Options: &amp;lt;code&amp;gt;--ra-high&amp;lt;/code&amp;gt;（多路由/多 RA 环境，见下文第 3 节 / multi-router LANs, see section 3）、&amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt;（非 PPPoE WAN / non-PPPoE WAN）、&amp;lt;code&amp;gt;--no-ping&amp;lt;/code&amp;gt;（跳过连通性测试 / skip the connectivity test）。运行 / Run &amp;lt;code&amp;gt;sh pcat2_pppoe_ipv6.sh --help&amp;lt;/code&amp;gt; 查看帮助。&lt;br /&gt;
* 脚本源码 / Script source: [https://gist.github.com/c2h2/ae07a4c818457b4cf3f087bf164059f8 GitHub Gist]。中国大陆用户如无法访问 gist，请按下文手动配置。 / If the gist is unreachable from mainland China, follow the manual steps below.&lt;br /&gt;
&lt;br /&gt;
== 中文指南 ==&lt;br /&gt;
&lt;br /&gt;
=== 1. WAN 接口（PPPoE） ===&lt;br /&gt;
新版固件下 '''不需要手动创建绑定 eth0 的 WAN6 接口'''。只要 WAN 口开启 IPv6 协商，netifd 会自动在 PPPoE 逻辑口上创建动态别名接口 &amp;lt;code&amp;gt;wan_6&amp;lt;/code&amp;gt;（注意是下划线），负责 DHCPv6 / 前缀委托。&lt;br /&gt;
&lt;br /&gt;
LuCI: '''网络 → 接口 → WAN → 高级设置'''&lt;br /&gt;
* 获取 IPv6 地址 → '''自动'''&lt;br /&gt;
* 委托 IPv6 前缀 → '''启用'''&lt;br /&gt;
&lt;br /&gt;
或使用 UCI：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set network.wan.ipv6='auto'&lt;br /&gt;
uci commit network&lt;br /&gt;
ifup wan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 注意 如果系统里遗留了一个绑定 &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; 的 WAN6 接口（老指南的做法），它在 PPPoE 线路上会一直处于 pending 状态。建议直接禁用：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set network.wan6.auto='0'&lt;br /&gt;
uci commit network&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. LAN 接口 ===&lt;br /&gt;
LuCI: '''网络 → 接口 → LAN'''&lt;br /&gt;
* IPv6 分配长度 (ip6assign) → '''60'''（运营商一般下发 /56 或 /60）&lt;br /&gt;
* '''IPv6 前缀过滤器 (ip6class) → 必须留空！'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set network.lan.ip6assign='60'&lt;br /&gt;
uci -q delete network.lan.ip6class&lt;br /&gt;
uci commit network&lt;br /&gt;
ifup lan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; ⚠ 最常见故障 如果 &amp;lt;code&amp;gt;ip6class&amp;lt;/code&amp;gt; 被设为 &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt;，LAN 只会分配 ULA（fd00::/8 私有前缀），运营商委托的公网前缀'''永远不会'''下发到 br-lan，内网设备就只有 fdxx 地址、无法访问 IPv6 互联网。删除该选项即可恢复。&lt;br /&gt;
&lt;br /&gt;
=== 3. RA / DHCPv6（SLAAC） ===&lt;br /&gt;
LuCI: '''网络 → 接口 → LAN → DHCP 服务器 → IPv6 设置'''&lt;br /&gt;
* RA 服务：'''混合模式''' （SLAAC 默认开启，即 RA 前缀带 A 标志）&lt;br /&gt;
* DHCPv6 服务：'''混合模式'''&lt;br /&gt;
* NDP 代理：'''混合模式'''（旁路由/中继场景才需要）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set dhcp.lan.ra='hybrid'&lt;br /&gt;
uci set dhcp.lan.dhcpv6='hybrid'&lt;br /&gt;
uci commit dhcp&lt;br /&gt;
/etc/init.d/odhcpd reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 提示 若局域网内还有其它设备也在发 RA（多路由/多线路环境），把 photonicat 的路由优先级调高，客户端会优先选它作为默认网关：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set dhcp.lan.ra_preference='high'&lt;br /&gt;
uci commit dhcp &amp;amp;&amp;amp; /etc/init.d/odhcpd reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Docker 与 IPv6 转发（26.04 版重要坑） ===&lt;br /&gt;
photonicatWrt 自带 Docker（27.x）。Docker 27+ 默认启用 ip6tables，会创建 &amp;lt;code&amp;gt;ip6 filter FORWARD&amp;lt;/code&amp;gt; 链且'''策略为 drop''' —— 它会丢弃'''所有'''转发的 IPv6 流量，即使 fw4 防火墙已放行 lan→wan。症状：路由器本机 &amp;lt;code&amp;gt;ping6&amp;lt;/code&amp;gt; 正常，内网设备拿到了公网 IPv6 却 ping 不通外网。&lt;br /&gt;
&lt;br /&gt;
检查：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nft list chain ip6 filter FORWARD&lt;br /&gt;
# 如果看到 policy drop 且计数一直增长，即中招&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
永久修复：在 &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt; 的'''出厂内容基础上'''加一行 &amp;lt;code&amp;gt;&amp;quot;ip6tables&amp;quot;: false&amp;lt;/code&amp;gt;（不影响 IPv4 容器网络）：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/docker/daemon.json &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;data-root&amp;quot;: &amp;quot;/opt/&amp;quot;,&lt;br /&gt;
&amp;quot;log-level&amp;quot;: &amp;quot;warn&amp;quot;,&lt;br /&gt;
&amp;quot;ip6tables&amp;quot;: false&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
/etc/init.d/docker restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
; ⚠ 注意 photonicatWrt 实际由 &amp;lt;code&amp;gt;/etc/init.d/docker&amp;lt;/code&amp;gt;（而非 dockerd）以 &amp;lt;code&amp;gt;--iptables=false&amp;lt;/code&amp;gt; 参数启动 Docker。'''不要'''在 daemon.json 里添加 &amp;lt;code&amp;gt;&amp;quot;iptables&amp;quot;&amp;lt;/code&amp;gt; 键，也不要改动出厂的 &amp;lt;code&amp;gt;data-root&amp;lt;/code&amp;gt; —— 与启动参数冲突会导致 Docker 开机无法启动，改 data-root 会导致已有镜像&amp;quot;消失&amp;quot;。详见 [[Photonicat 2 Docker 使用指南]]。&lt;br /&gt;
&lt;br /&gt;
=== 5. 防火墙 ===&lt;br /&gt;
fw4 默认已放行 lan→wan 的 IPv6 转发和必要的 ICMPv6，'''出站上网无需额外规则'''。只有当你需要'''从公网主动访问内网设备'''（自建服务器/NAS）时才添加入站规则，且建议按端口精确放行，不要整段 ACCEPT 全部入站 IPv6。&lt;br /&gt;
&lt;br /&gt;
=== 6. 验证 ===&lt;br /&gt;
路由器上：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifstatus wan_6 | grep -A6 ipv6-prefix     # 应看到运营商委托的 /56 或 /60&lt;br /&gt;
ifstatus lan | grep -A8 ipv6-prefix-assignment   # 应看到公网前缀已分配给 br-lan&lt;br /&gt;
ping -6 -c3 photonicat.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
内网设备上：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip -6 addr show   # 应有公网 (如 240e:/2408:/2409: 等) SLAAC 地址&lt;br /&gt;
ping -6 -c3 photonicat.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. 多出口/多 RA 环境排障 ===&lt;br /&gt;
如果局域网里有多台设备宣告 RA（例如另一台 5G 网关、Proxmox 虚拟机等），Linux 客户端会把多个默认网关做 ECMP 负载均衡，流量可能被分到没有 IPv6 上行的网关而'''间歇性丢包'''；或者源地址选择与网关不匹配（photonicat 的默认路由是按源前缀限定的 &amp;lt;code&amp;gt;from 240e:xxxx::/56&amp;lt;/code&amp;gt;），返回 &amp;quot;Destination unreachable: No route&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
* 首选：让没有上行的设备停止宣告默认路由（router lifetime 设为 0）。&lt;br /&gt;
* 客户端（systemd-networkd）也可固定网关并用地址标签固定源地址选择：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/systemd/network/eth0.network.d/50-ipv6-gateway.conf&lt;br /&gt;
[IPv6AcceptRA]&lt;br /&gt;
UseGateway=false&lt;br /&gt;
&lt;br /&gt;
[Route]&lt;br /&gt;
Gateway=fe80::xxxx:xxxx:xxxx:xxxx   # photonicat br-lan 的链路本地地址&lt;br /&gt;
&lt;br /&gt;
[IPv6AddressLabel]&lt;br /&gt;
Label=99&lt;br /&gt;
Prefix=2409::/16    # 不希望选为源地址的运营商前缀&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== English Guide ==&lt;br /&gt;
&lt;br /&gt;
=== 1. WAN interface (PPPoE) ===&lt;br /&gt;
On current firmware you '''no longer need a manual WAN6 interface bound to eth0'''. With IPv6 negotiation enabled on WAN, netifd automatically spawns a dynamic alias interface &amp;lt;code&amp;gt;wan_6&amp;lt;/code&amp;gt; (with an underscore) on the PPPoE logical interface, which handles DHCPv6 and prefix delegation.&lt;br /&gt;
&lt;br /&gt;
LuCI: '''Network → Interfaces → WAN → Advanced'''&lt;br /&gt;
* Obtain IPv6 address → '''Automatic'''&lt;br /&gt;
* Delegate IPv6 prefix → '''Enabled'''&lt;br /&gt;
&lt;br /&gt;
Or via UCI:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set network.wan.ipv6='auto'&lt;br /&gt;
uci commit network&lt;br /&gt;
ifup wan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Note If a legacy WAN6 interface bound to &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; exists (as older guides suggested), it will sit in &amp;quot;pending&amp;quot; forever on a PPPoE line. Disable it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set network.wan6.auto='0'&lt;br /&gt;
uci commit network&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. LAN interface ===&lt;br /&gt;
* IPv6 assignment length (ip6assign) → '''60''' (ISPs typically delegate a /56 or /60)&lt;br /&gt;
* '''IPv6 prefix filter (ip6class) → must be left EMPTY!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set network.lan.ip6assign='60'&lt;br /&gt;
uci -q delete network.lan.ip6class&lt;br /&gt;
uci commit network&lt;br /&gt;
ifup lan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; ⚠ Most common failure If &amp;lt;code&amp;gt;ip6class&amp;lt;/code&amp;gt; is set to &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt;, the LAN only gets ULA (fd00::/8) prefixes — the ISP-delegated global prefix is '''never''' assigned to br-lan, so clients only get fdxx addresses and cannot reach the IPv6 internet. Deleting this option fixes it.&lt;br /&gt;
&lt;br /&gt;
=== 3. RA / DHCPv6 (SLAAC) ===&lt;br /&gt;
* RA-Service: '''hybrid''' (SLAAC is on by default — RA prefixes carry the A flag)&lt;br /&gt;
* DHCPv6-Service: '''hybrid'''&lt;br /&gt;
* NDP-Proxy: '''hybrid''' (only needed for relay/bridge setups)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set dhcp.lan.ra='hybrid'&lt;br /&gt;
uci set dhcp.lan.dhcpv6='hybrid'&lt;br /&gt;
uci commit dhcp&lt;br /&gt;
/etc/init.d/odhcpd reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Tip If other devices on the LAN also send RAs (multi-router / multi-uplink environments), raise the photonicat's router preference so clients prefer it as default gateway:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set dhcp.lan.ra_preference='high'&lt;br /&gt;
uci commit dhcp &amp;amp;&amp;amp; /etc/init.d/odhcpd reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Docker vs IPv6 forwarding (important 26.04 pitfall) ===&lt;br /&gt;
photonicatWrt ships Docker (27.x). Docker 27+ enables ip6tables by default and creates an &amp;lt;code&amp;gt;ip6 filter FORWARD&amp;lt;/code&amp;gt; chain with '''policy drop''' — it silently drops '''all''' forwarded IPv6, even though fw4 correctly allows lan→wan. Symptom: &amp;lt;code&amp;gt;ping6&amp;lt;/code&amp;gt; works from the router itself, LAN clients get global IPv6 addresses but cannot reach the internet.&lt;br /&gt;
&lt;br /&gt;
Check:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nft list chain ip6 filter FORWARD&lt;br /&gt;
# if you see &amp;quot;policy drop&amp;quot; and a growing counter, this is your problem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Permanent fix: add &amp;lt;code&amp;gt;&amp;quot;ip6tables&amp;quot;: false&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt; '''while keeping the factory keys''' (IPv4 container networking is unaffected):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/docker/daemon.json &amp;lt;&amp;lt;'EOF'&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;data-root&amp;quot;: &amp;quot;/opt/&amp;quot;,&lt;br /&gt;
&amp;quot;log-level&amp;quot;: &amp;quot;warn&amp;quot;,&lt;br /&gt;
&amp;quot;ip6tables&amp;quot;: false&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
/etc/init.d/docker restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
; ⚠ Note On photonicatWrt, Docker is actually launched by &amp;lt;code&amp;gt;/etc/init.d/docker&amp;lt;/code&amp;gt; (not dockerd) with &amp;lt;code&amp;gt;--iptables=false&amp;lt;/code&amp;gt;. Do '''not''' add an &amp;lt;code&amp;gt;&amp;quot;iptables&amp;quot;&amp;lt;/code&amp;gt; key to daemon.json and do not change the factory &amp;lt;code&amp;gt;data-root&amp;lt;/code&amp;gt; — a flag/config conflict prevents Docker from starting at boot, and a changed data-root makes existing images &amp;quot;disappear&amp;quot;. See [[Photonicat 2 Docker 使用指南]].&lt;br /&gt;
&lt;br /&gt;
=== 5. Firewall ===&lt;br /&gt;
fw4 already allows IPv6 lan→wan forwarding and the required ICMPv6 by default — '''no extra rules are needed for outbound connectivity'''. Only add inbound rules when you need to reach LAN devices from the internet (self-hosted servers/NAS), and prefer precise per-port rules over a blanket ACCEPT of all inbound IPv6.&lt;br /&gt;
&lt;br /&gt;
=== 6. Verification ===&lt;br /&gt;
On the router:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifstatus wan_6 | grep -A6 ipv6-prefix     # ISP-delegated /56 or /60 should appear&lt;br /&gt;
ifstatus lan | grep -A8 ipv6-prefix-assignment   # the global prefix should be assigned to br-lan&lt;br /&gt;
ping -6 -c3 photonicat.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On a LAN client:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip -6 addr show   # expect a global (e.g. 240e:/2408:/2409:) SLAAC address&lt;br /&gt;
ping -6 -c3 photonicat.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Troubleshooting multi-uplink / multi-RA LANs ===&lt;br /&gt;
If several devices advertise RAs on the LAN (another 5G gateway, Proxmox VMs, …), Linux clients install an ECMP default route across all of them; flows hashed to a gateway without IPv6 upstream '''blackhole intermittently'''. Source-address selection can also mismatch the gateway (the photonicat's upstream default route is source-restricted, e.g. &amp;lt;code&amp;gt;from 240e:xxxx::/56&amp;lt;/code&amp;gt;), yielding &amp;quot;Destination unreachable: No route&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Preferred fix: make routers without upstream stop advertising a default route (router lifetime 0).&lt;br /&gt;
* On a systemd-networkd client you can pin the gateway and steer source selection:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/systemd/network/eth0.network.d/50-ipv6-gateway.conf&lt;br /&gt;
[IPv6AcceptRA]&lt;br /&gt;
UseGateway=false&lt;br /&gt;
&lt;br /&gt;
[Route]&lt;br /&gt;
Gateway=fe80::xxxx:xxxx:xxxx:xxxx   # photonicat br-lan link-local address&lt;br /&gt;
&lt;br /&gt;
[IPv6AddressLabel]&lt;br /&gt;
Label=99&lt;br /&gt;
Prefix=2409::/16    # ISP prefix you do NOT want chosen as source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 地址说明 / Understanding the addresses ==&lt;br /&gt;
一个接口同时拥有多个 IPv6 地址是正常现象 / Multiple IPv6 addresses on one interface is normal:&lt;br /&gt;
* &amp;lt;code&amp;gt;240e:xxxx:xxxx:xx00:xxxx:xxff:fexx:xxxx/64&amp;lt;/code&amp;gt; → 公网地址，SLAAC 由 RA 前缀+接口标识自动生成 / global address, auto-generated via SLAAC&lt;br /&gt;
* &amp;lt;code&amp;gt;240e:xxxx:xxxx:xx00::2e9/128&amp;lt;/code&amp;gt; → DHCPv6 下发的公网地址 / global address assigned by stateful DHCPv6&lt;br /&gt;
* &amp;lt;code&amp;gt;fdxx:....../64&amp;lt;/code&amp;gt; → ULA 私有地址，仅内网使用，不上公网 / ULA private address, LAN-only&lt;br /&gt;
* &amp;lt;code&amp;gt;fe80::/64&amp;lt;/code&amp;gt; → 链路本地地址，用于邻居发现/网关 / link-local, used for NDP and as gateway&lt;br /&gt;
只有 global (GUA) 地址可用于公网通信；“全球直连”意味着设备在公网可见，请合理配置防火墙。 / Only GUA addresses reach the internet; being globally reachable means you should keep the firewall sensible.&lt;/div&gt;</summary>
		<author><name>Guangyingmao</name></author>
	</entry>
</feed>