EdgeRouter PPPoE IPv6 完整配置指南(从 0 到通)

本文记录了 EdgeRouter X 下 PPPoE IPv6 配置的完整踩坑与成功流程,适用于国内运营商(电信/联通等)仅分配 /64 前缀的场景,可直接复制到博客发布。


🔍 需求与背景

  • 设备:Ubiquiti EdgeRouter X(ER-X)
  • 上网方式:PPPoE 拨号
  • 运营商 :国内 ISP(仅分配 /64 IPv6 前缀)
  • 目标:让路由器及内网设备均获取公网 IPv6 地址,实现 IPv6 网络连通

🧠 核心配置思路

EdgeRouter IPv6 配置分为 3 个核心环节:

  1. WAN 侧 PPPoE IPv6 拨号:从运营商获取公网 IPv6 地址
  2. PD(Prefix Delegation)前缀委托:将运营商分配的前缀切分后下发到 LAN 口
  3. RA(Router Advertisement)路由通告:向子网广播前缀,让设备自动生成 IPv6 地址

🚀 完整配置流程

1. 进入配置模式

bash 复制代码
configure

2. 配置 PPPoE IPv6 与 PD 前缀委托

bash 复制代码
# 启用 PPPoE 接口 IPv6
set interfaces ethernet eth0 pppoe 0 ipv6 enable
# 自动获取 PPPoE IPv6 地址
set interfaces ethernet eth0 pppoe 0 ipv6 address autoconf
# 启用快速前缀获取(加速 PD 协商)
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd rapid-commit enable
# ✅ 关键:匹配运营商实际前缀长度(国内通常为 /64,不要用默认 /56!)
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 prefix-length /64
# 将前缀分配给 LAN 口 switch0,使用 SLAAC 模式
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 prefix-id 0
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 service slaac
# 设置 LAN 口网关地址为 ::1
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 host-address ::1

3. 配置 LAN 口 IPv6 与 RA 广播

bash 复制代码
# LAN 口自动从 PD 前缀生成公网地址
set interfaces switch switch0 ipv6 address autoconf
# 启用重复地址检测(避免地址冲突)
set interfaces switch switch0 ipv6 dup-addr-detect-transmits 1
# 开启 RA 广播(向子网发布前缀)
set interfaces switch switch0 ipv6 router-advert send-advert true
# ✅ SLAAC 模式:设备自动生成地址,无需 DHCPv6 服务器
set interfaces switch switch0 ipv6 router-advert managed-flag false
set interfaces switch switch0 ipv6 router-advert other-config-flag false
# 发布 /64 子网前缀
set interfaces switch switch0 ipv6 router-advert prefix ::/64

4. 配置 IPv6 防火墙(放行必要流量)

bash 复制代码
# 定义 WAN 侧入站 IPv6 规则(默认拒绝,放行已建立连接)
set firewall ipv6-name WANv6_IN default action drop
set firewall ipv6-name WANv6_IN rule 10 action accept
set firewall ipv6-name WANv6_IN rule 10 state established enable
set firewall ipv6-name WANv6_IN rule 10 state related enable

# 定义 WAN 侧本地 IPv6 规则(放行 ICMPv6,保证 RA/邻居发现正常)
set firewall ipv6-name WANv6_LOCAL default action drop
set firewall ipv6-name WANv6_LOCAL rule 10 action accept
set firewall ipv6-name WANv6_LOCAL rule 10 state established enable
set firewall ipv6-name WANv6_LOCAL rule 10 state related enable
set firewall ipv6-name WANv6_LOCAL rule 20 action accept
set firewall ipv6-name WANv6_LOCAL rule 20 protocol icmpv6

# 将防火墙规则绑定到 PPPoE 接口
set interfaces ethernet eth0 pppoe 0 firewall in ipv6-name WANv6_IN
set interfaces ethernet eth0 pppoe 0 firewall local ipv6-name WANv6_LOCAL

5. 保存配置并生效

bash 复制代码
# 提交配置(系统自动重启相关服务)
commit
# 保存到启动配置(重启后不丢失)
save
# 退出配置模式
exit

✅ 验证配置是否生效

1. 验证路由器 WAN 侧 IPv6

bash 复制代码
ip -6 addr show pppoe0

成功标志 :输出中出现 2408:xxxx:xxxx:xxxx::xxxx/64 开头的 global 地址(公网 IPv6)

2. 验证路由器 LAN 侧 IPv6

bash 复制代码
ip -6 addr show switch0

成功标志 :输出中出现 2408:xxxx:xxxx:xxxx::1/64 开头的 global 地址(内网网关)

3. 验证内网设备获取 IPv6

在 Linux 设备上执行:

bash 复制代码
# 释放现有 IPv6 地址
sudo dhclient -6 -r
# 重新获取 IPv6 地址
sudo dhclient -6
# 查看设备 IPv6 地址
ip -6 addr show wlp1s0

成功标志 :设备出现 2408:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 开头的公网 IPv6 地址

4. 测试 IPv6 连通性

bash 复制代码
ping6 -c 4 ipv6.baidu.com

成功标志:能正常收到 ICMP 响应,说明 IPv6 网络通畅


⚠️ 踩坑总结(关键避坑点)

坑 1:前缀长度不匹配

  • 问题 :默认配置请求 /56 前缀,但国内运营商实际只给 /64,导致 PD 申请失败,LAN 口无公网地址
  • 解决 :强制将 prefix-length 改为 /64,完全匹配运营商实际分配

坑 2:在配置模式下执行系统命令

  • 问题sudo /etc/init.d/dhcp6c restart 只能在 shell 下执行,configure 模式下会报错
  • 解决 :修改配置后执行 commit,系统会自动重启相关服务,无需手动操作

坑 3:RA 标志位错误

  • 问题managed-flagother-config-flag 设为 true,导致设备尝试 DHCPv6 而非 SLAAC,无法自动生成地址
  • 解决 :保持 managed-flag false + other-config-flag false,使用标准 SLAAC 模式

🎯 最终效果

  • 路由器:WAN 口和 LAN 口均获取公网 IPv6 地址
  • 内网设备:自动生成公网 IPv6 地址,无需额外配置
  • 网络连通性 :IPv6 访问正常,可访问 IPv6 网站(如 ipv6.baidu.com

📝 附录:完整配置导出

可在 configure 模式下执行以下命令,导出当前配置核对:

bash 复制代码
show interfaces ethernet eth0 pppoe 0
show interfaces switch switch0
show firewall ipv6-name WANv6_IN
show firewall ipv6-name WANv6_LOCAL

💡 总结

EdgeRouter IPv6 配置的核心是 匹配运营商前缀长度 + 正确配置 RA 标志位。只要这两点做好,内网设备就能自动获取公网 IPv6,实现"开箱即用"的 IPv6 体验。


相关推荐
2401_858936882 小时前
深入浅出 TCP 通信:从基础到并发服务器实现
服务器·网络·tcp/ip
野犬寒鸦2 小时前
SAP后端实习开发面试:操作系统与网络核心考点及Linux与Redis
java·服务器·网络·后端·面试
偷影子的机2 小时前
LVS实验
网络
战神/calmness2 小时前
应急响应-勒索病毒 13
网络·web安全·php·勒索病毒
乾元3 小时前
RAG 架构: 利用向量数据库构建企业的安全知识库
运维·网络·数据库·人工智能·安全·网络安全·架构
袁小皮皮不皮3 小时前
【HCIA】第一章网络基础
运维·服务器·网络·网络协议·智能路由器
AI周红伟3 小时前
周红伟:OpenClaw+ 微信+ QQ+云上OpenClaw(Clawdbot)快速接入企业微信指南
运维·服务器·网络
bug攻城狮3 小时前
Docker高级篇04:Docker网络
网络·docker·php
数通工程师4 小时前
搞定数通设备账号安全:登录审计、紧急踢线、故障排查与配置规范
运维·网络·网络协议·安全·网络安全