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 体验。


相关推荐
江畔何人初1 天前
iptables 和 IPVS 代理模式 Service 的区别
linux·运维·服务器·网络·云原生·kubernetes·代理模式
123过去1 天前
nfc-list使用教程
linux·网络·测试工具·安全
攻城狮在此1 天前
华三交换机链路聚合配置(三层聚合)
网络·华为
evo-master1 天前
网络故障排除方法
linux·服务器·网络
Johnstons1 天前
网络流量监控工具怎么选
运维·网络·网络故障排除·网络流量分析·网络性能监控
jiankeljx1 天前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
三三有猫1 天前
代理IP:按流量还是按IP/时长计费更划算?
网络·网络协议·tcp/ip
A.A呐1 天前
【Linux第十九章】网络基础
linux·网络
程序猿追1 天前
HarmonyOS 6.0 网络请求深度解析:从基础调用到生产级封装
网络·华为·harmonyos
桌面运维家1 天前
BGP路由优化实战:加速收敛,提升网络稳定性
网络·windows·php