单线复用下的双 PPPoE(上网 + IPTV) MTU 黑洞排查记录
dlcy08
2026年01月18日 19:00

一、问题背景

在家庭或企业宽带环境中,单线复用是一个非常常见的需求:

  • 一根网线

  • 普通上网使用一个 PPPoE

  • IPTV 使用运营商指定 VLAN(如 VLAN 45)单独 PPPoE

目标是:

在不增加物理线路的情况下,实现上网与 IPTV 业务完全隔离、互不影响。(去掉机顶盒)

二、整体网络拓扑(文字版)

         ┌────────────┐

         │ 运营商网络 │

         └──────┬─────┘

            │

         ┌──────┴─────┐

         │  光猫   │

         └──────┬─────┘

            │ 单线

        ┌───────┴────────┐

        │  OpenWrt 路由器 │

        │         │

        │ wan      │

        │  ├─ pppoe-wan → 普通上网

        │  └─ wan.45   → VLAN 45

        │    └─ pppoe-wan_v45 → IPTV

        └───────┬────────┘

             │

         ┌──────┴─────┐

         │  内网PC   │

         └────────────┘

三、关键设计原则(非常重要)

1️⃣ 单线复用 ≠ 单 MAC

每一个 PPPoE 拨号必须使用不同的 MAC 地址:

  • 普通上网 PPPoE:MAC A

  • IPTV PPPoE(VLAN 45):MAC B

否则常见问题包括:

  • 拨号成功但业务异常

  • IPTV 播放几秒就断

  • 认证通过但数据流异常

四、路由策略说明(只基于 route -n)

本方案 不使用:

  • iptables

  • policy routing

  • fwmark

仅通过 路由表 metric 区分流量出口:

0.0.0.0 via 普通上网 PPPoE metric 0 0.0.0.0 via IPTV PPPoE metric 30

业务特点:

  • IPTV 业务本身走运营商私网

  • 不依赖复杂分流规则

  • 路由清晰、稳定

五、问题现象描述

异常表现

  • ✅ PC 直接 PPPoE(VLAN 45)可以正常播放 IPTV

  • ❌ 路由器 PPPoE(VLAN 45)无法播放 IPTV

  • ✅ IPTV 内网 NTP 服务器始终可达

    • 例如:124.232.139.1

这类现象非常具有迷惑性:

“能通、能 ping、能 NTP,但就是不能播放视频”

六、VLAN 标签排查(排除二层问题)

抓包验证 VLAN 45 是否正常

tcpdump -i wan -e vlan

观察到:

ethertype 802.1Q (0x8100), vlan 45, ethertype PPPoE

结论:

  • VLAN 45 打标签正常

  • 回包进入内网前 标签被正确剥离

  • 二层交换逻辑无误

七、PPPoE 会话确认

tcpdump -i wan.45 pppoes or pppoed

可见完整流程:

  • PADI / PADO

  • PADR / PADS

说明:

VLAN 45 上 PPPoE 会话建立完全正常

八、关键对比:PC 拨号 vs 路由器拨号

PC 端(Windows 11)

MTU 探测:

ping 124.232.139.1 -f -l 1460 ✔ ping 124.232.139.1 -f -l 1464 ✘

计算:

1460 + 28 = 1488

➡ 实际可用 MTU = 1488

路由器端默认配置

option mtu '1492'

问题在于:

运营商网络并不保证返回 ICMP Fragment Needed

九、MTU 黑洞现象确认(tcpdump 关键证据)

抓 PPPoE 接口

tcpdump -i pppoe-wan_v45 -n

当 MTU = 1492 时:

  • 能看到:

    • TCP 建连

    • NTP / DNS

  • 看不到:

    • 持续大流量 IPTV 数据

表现为:

  • 包发出

  • 对端静默丢弃

  • 无 ICMP 返回

这是标准的:

MTU Black Hole(MTU 黑洞)

十、最终解决方案

IPTV PPPoE MTU 调整为 1488

config interface 'wan_v45' option proto 'pppoe' option device 'wan.45' option mtu '1488'

重新拨号:

ifdown wan_v45 && sleep 3 && ifup wan_v45

十一、结论总结

排查项结论VLAN 45 标签正常PPPoE 会话正常路由策略正常IPTV 异常原因MTU 黑洞最终 MTU1488