-
. No markdown, no html/body.
- Don't fabricate statistics, market share, prices, or customer cases. Use plausible example values, noting they are examples.
- No vague conclusions.
Let me draft the article.
Title idea / opening opinion: 你的 Looking Glass 只能看到你自己的位置,路由问题往往只在别人眼里才存在。验证路由必须跳出去看。
Sections:
1. 公开 LG 的局限
2. 多点验证怎么做
3. 配合 RIPE Atlas
4. 记录基线
Checklist at end as or .
Let me think about technical content:
公开 Looking Glass 局限:
- 视角受限:只反映 LG 服务器所在位置/所在 AS 的 BGP 视图,看到的是该 vantage point 的 Loc-RIB,不一定代表真实转发路径(数据平面 vs 控制平面)。
- 很多公开 LG 输出被裁剪:只给 BGP 路由表摘要,不给 community、不给 AS-Path 完整细节、不给 route origin validation 状态。
- 查询频率限制、缓存、接口不统一。
- LG 常只在"能通"时有用;对数据平面问题(丢包、asymmetric path、MTU)无能为力——它只展示控制平面。
- 有些 LG 反映的是 iBGP 最佳路径,可能和实际 egress 选择不同(如 local-pref、MED 在 LG 上看不到)。
- traceroute from LG 是 ICMP/UDP 探测,可能被策略影响。
多点验证:
- 不能只查一个 LG;至少选不同地区、不同类型的 AS(Tier1、IX 节点、区域 ISP、大内容商)。
- 选择 vantage point 的原则:你客户的上游、你_peer 的_peer、对标 AS(如 15169 Google, 13335 Cloudflare, 16509 AWS)。
- 具体做法:发布一条新前缀或改 prepending 后,用 5-10 个 LG 覆盖三大洲;记录每个 LG 看到的 AS-Path、_next-hop、community。
- 用 bgp.tools / RIPE RIS / RouteViews 的 raw MRT 数据做补充——RIS RRC 节点本身就是多视角。
- 检查 propagation 时间:BGP 收敛通常几分钟内,但跨大洋的 RRC 可能滞后;等待窗口。
与 RIPE Atlas 配合:
- LG 是控制平面,Atlas 是数据平面。Atlas probes 分布全球,可以做 traceroute/ping/DNS。
- 用Atlas 的 traceroute(尤其是 with BGP mapping via bgp.tools 或 RIPEstat 的 traceroute with ASN)验证实际转发路径是否和 LG 看到的 AS-Path 一致。
- 方法:RIPE Atlas API / App,选 probe(按 ASN、国家、前缀覆盖),建 oneoff measurement,例如 10 个 probe traceroute 到你的 anycast 节点。
- 注意:Atlas probe 不能直接给你 "AS-Path",需要借助 IP-to-ASN mapping(RIPEstat 或 bgp.tools 的 traceroute-to-ASN 功能),中间跳的 ASN 映射可能失真(IX LAN、未注册 IP)。
- Credit 有限,oneoff measurement 成本低但要控制 probe 数量和频率。
- 反向验证:从你的机器向 Atlas probe ping?不行,probe 不接受入站。可以做 DNS 测量(内网权威 DNS anycast 验证)。
- 也可以用 M-Lab、CLAW 等,但保持范围。
记录基线:
- 平时(没故障时)就要采样并归档:每条公告前缀在每个 LG 的 AS-Path、每条 Atlas 常态测量的 RTT/traceroute。
- 存什么:时间戳、vantage point、prefix、AS-Path、next-hop、community、RPKI status、RTT 分位数。
- 用脚本(cURL + cron)定期抓 LG 和 RIPEstat API,存 JSON/CSV 到 git 或时序库。
- 故障时 diff 基线,快速定位"哪一侧变了"——是上游 prepending、还是第三方宣布了冲突前缀、还是 peer 撤销。
- 基线也帮助回答"这是我们的问题还是 ISP 的问题"。
Checklist at end:
- 公告变更前后各用 ≥3 大洲、≥5 个独立 AS 的 LG 核对 AS-Path
- LG 与真实 traceroute(Atlas)对不上时先怀疑数据/控制平面差异
- 建立 cron 抓取 + 归档,至少覆盖自家所有前缀
- 用 RIS/RouteViews raw 数据交叉验证 LG 的裁剪输出
- 故障演练:随机抽一天对比当日与基线的 diff
Also mention communities: 看不到 community 是一个常见局限。Some LGs (e.g., some) hide communities.
开头观点:Looking Glass 看到的是"某一台路由器认为的世界",不是世界本身。验证路由的核心是制造视角差——从和你位置、策略都不同的点去看。
Length: aim ~1100 Chinese characters. Let me write carefully.
Let me count roughly as I write. Chinese characters count; code/technical terms also count-ish. I'll aim for around 1100-1250.
Structure:
opening (opinion):
"每个网络工程师都会查 Looking Glass,但多数人把它当事实来源,而不是视角来源。LG 的输出只代表某一台路由器在某一个位置的 Loc-RIB……验证路由的真正方法,是有意识地制造视角差:跳出到和你策略不同、位置不同的点上反过来看自己。"
公开 LG 的三个局限:它连控制平面都只给你一半
- 视角单一
- 输出被裁剪
- 只有控制平面
多点验证:按"谁会用你的路由"来选 vantage point
or just list. Maybe h2 with paragraphs + list.
把 RIPE Atlas 当作 LG 的数据平面补充
没有基线,多视角只是噪音
Then checklist 检查清单
with .
Include a small table maybe for baseline fields? Could be useful: 字段/说明 table. That adds structure. Table: 字段 | 作用. Rows: as-path, next-hop/egress, community, rpki status, rtt p95, timestamp+vantage. Good use of table tag.
Include example commands? Use for things like `bgpq4`, `curl https://stat.ripe.net/data/...`, but avoid fabricating API endpoints that are wrong. RIPEstat data API: https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS... — that's real. Also traceroute-to-asn? There's "traceroute-to-asn" widget data? There is RIPEstat data API "bgp-as-path"? Hmm. Safer: mention RIPEstat's traceroute mapping in Atlas results, and the API https://stat.ripe.net/data/ris-prefixes/data.json? Or "looking-glass" data API exists: https://stat.ripe.net/data/looking-glass/data.json?resource=AS64512 — yes, RIPEstat has a "looking-glass" data endpoint that aggregates RIS route collectors. I believe that exists. To be safe, I can say "RIPEstat 的 looking-glass 数据接口" without full URL, or give URL with caveat. I'll keep it generic: stat.ripe.net 数据接口. That's safe.
Example values: "示例:对外公告 203.0.113.0/24" — use documentation prefix 203.0.113.0/24 (TEST-NET-3) — good practice, it's explicitly a documentation prefix, not fabricated stats. AS numbers: use AS64512–AS64534 (private use range) for examples, clearly marked as 示例.
Atlas oneoff: "创建一个一次性测量:10 个 probe,traceroute 到 203.0.113.1,间隔一次" — plausible example.
Mention RRC nodes: RIPE RIS route collectors (RRC00–RRC 20+). Say "RIS 的十几个 route collector(RRC)" — number of RRCs is around 25 now; saying "二十多个" is roughly right. Or avoid the count: "RIS 各地的 route collector". Safe.
bgp.tools also fine to mention.
Prepending example: "把 203.0.113.0/24 对上游 AS64530 prepending 一次" — fine.
Let me write the HTML now, watching length.
Draft:
查 Looking Glass 是每个网络工程师的肌肉记忆,但很多人把 LG 当成事实来源,而它本质上只是视角来源。你看到的输出,是某台路由器在某个位置的 Loc-RIB 快照,不是全球路由的真实状态。验证路由变更是否生效、故障到底出在哪一侧,正确姿势是反过来做:刻意跳出到和你位置、商业关系、路由策略都不同的点上去看自己。下面按实际操作顺序展开。
Count: ~150 chars.
公开 LG 的局限:它连控制平面都只给你一半
三个必须心里有数的坑。第一,视角单一且不透明:你不一定知道那台 LG 设备的 local-pref、import policy,它显示的 best path 可能和你流量实际走的 egress 不是一回事。第二,输出被裁剪:不少公开 LG 隐藏 BGP community、只显示最佳路径不显示备选路径、甚至不显示 RPKI 状态——而 community 恰恰是排查 prepending 和流量工程时最有用的字段。第三,只有控制平面:LG 告诉你"路由表里有这条前缀",但丢包、非对称路径、中间路由器 ACL 都不会体现在 LG 上。控制平面看着健康、数据平面一塌糊涂的情况并不罕见。
~200 chars.
多点验证:按"谁会用你的路由"来选 vantage point
单点 LG 只能证明"某一个点能收到你的公告"。正确做法是把 vantage point 当采样集来设计,而不是随便挑两台。选择原则按优先级:
- 你客户的对端:公告最终要被这些 AS 用于转发,它们的视角最接近"真实效果"。
- 不同大洲、不同类型:至少覆盖三级运营商、IX 附近、区域性 ISP 各一类,避免全是一类视角的镜像偏差。
- route collector 而非只有 LG:RIPE RIS 与 RouteViews 的 raw MRT 数据可以看到全部备选路径,比单台 LG 的 best-path 更适合交叉核对。
举例(示例值):变更 203.0.113.0/24 的 prepending 后,从至少 3 个大洲、5 个互相独立的 AS 的 LG 核对 AS-Path,同时用 RIS collector 确认 prepending 只影响了预期上游、没有把某些选择器推过阈值导致路径翻转。注意 BGP 收敛需要时间,公告后等几分钟再采样,跨洋 collector 往往滞后更久。
~330 chars.
把 RIPE Atlas 当作 LG 的数据平面补充
LG 说"我收到了",Atlas 回答"流量真的这么走吗"。方法是一次性测量:在 RIPE Atlas 上创建 oneoff traceroute,选 10 个左右分布在目标区域的 probe 探测你自己的地址,然后把结果中的 IP 跳段用 IP-to-ASN 映射(RIPEstat 或 bgp.tools 的 traceroute-to-ASN 功能)转成 AS 级路径,再和 LG 看到的 AS-Path 对比。两条路径一致,说明控制平面和数据平面没有脱节;不一致,先怀疑中间有 Policy-Based Routing、anycast 命中差异或 IX 交换机不回 ICMP。
注意 Atlas 的映射失真点:IX 局域网段和未注册 IP 会映射不出 ASN,probe 的 credit 消耗虽小但 probe 数量要克制。反向测量做不了(probe 不接受入站),验证 anycast 时应从 Atlas 侧向你的节点发探测,而不是反过来。
~280 chars.
没有基线,多视角只是噪音
故障时刻最贵的问题不是"现在路由什么样",而是"和平时差在哪"。基线要在没有变更、没有故障的日子建立:用脚本定期抓取自家所有前缀在各 vantage point 的输出并归档,最简单的方案是 cron + curl 调 RIPEstat 数据接口,落成 JSON 存进 git。建议至少记录:
table:
字段 作用
时间戳 + vantage point 确定"谁、什么时候"看到的,收敛有先后
AS-本文由 南方数据技术博客编辑整理,涉及具体环境时请以官方文档与实际配置为准。
-
. No markdown, no html/body. - Don't fabricate statistics, market share, prices, or customer cases. Use plausible example values, noting they are examples. - No vague conclusions. Let me draft the article. Title idea / opening opinion: 你的 Looking Glass 只能看到你自己的位置,路由问题往往只在别人眼里才存在。验证路由必须跳出去看。 Sections: 1. 公开 LG 的局限 2. 多点验证怎么做 3. 配合 RIPE Atlas 4. 记录基线 Checklist at end as - or
- 你客户的对端:公告最终要被这些 AS 用于转发,它们的视角最接近"真实效果"。
- 不同大洲、不同类型:至少覆盖三级运营商、IX 附近、区域性 ISP 各一类,避免全是一类视角的镜像偏差。
- route collector 而非只有 LG:RIPE RIS 与 RouteViews 的 raw MRT 数据可以看到全部备选路径,比单台 LG 的 best-path 更适合交叉核对。
- .
Let me think about technical content:
公开 Looking Glass 局限:
- 视角受限:只反映 LG 服务器所在位置/所在 AS 的 BGP 视图,看到的是该 vantage point 的 Loc-RIB,不一定代表真实转发路径(数据平面 vs 控制平面)。
- 很多公开 LG 输出被裁剪:只给 BGP 路由表摘要,不给 community、不给 AS-Path 完整细节、不给 route origin validation 状态。
- 查询频率限制、缓存、接口不统一。
- LG 常只在"能通"时有用;对数据平面问题(丢包、asymmetric path、MTU)无能为力——它只展示控制平面。
- 有些 LG 反映的是 iBGP 最佳路径,可能和实际 egress 选择不同(如 local-pref、MED 在 LG 上看不到)。
- traceroute from LG 是 ICMP/UDP 探测,可能被策略影响。
多点验证:
- 不能只查一个 LG;至少选不同地区、不同类型的 AS(Tier1、IX 节点、区域 ISP、大内容商)。
- 选择 vantage point 的原则:你客户的上游、你_peer 的_peer、对标 AS(如 15169 Google, 13335 Cloudflare, 16509 AWS)。
- 具体做法:发布一条新前缀或改 prepending 后,用 5-10 个 LG 覆盖三大洲;记录每个 LG 看到的 AS-Path、_next-hop、community。
- 用 bgp.tools / RIPE RIS / RouteViews 的 raw MRT 数据做补充——RIS RRC 节点本身就是多视角。
- 检查 propagation 时间:BGP 收敛通常几分钟内,但跨大洋的 RRC 可能滞后;等待窗口。
与 RIPE Atlas 配合:
- LG 是控制平面,Atlas 是数据平面。Atlas probes 分布全球,可以做 traceroute/ping/DNS。
- 用Atlas 的 traceroute(尤其是 with BGP mapping via bgp.tools 或 RIPEstat 的 traceroute with ASN)验证实际转发路径是否和 LG 看到的 AS-Path 一致。
- 方法:RIPE Atlas API / App,选 probe(按 ASN、国家、前缀覆盖),建 oneoff measurement,例如 10 个 probe traceroute 到你的 anycast 节点。
- 注意:Atlas probe 不能直接给你 "AS-Path",需要借助 IP-to-ASN mapping(RIPEstat 或 bgp.tools 的 traceroute-to-ASN 功能),中间跳的 ASN 映射可能失真(IX LAN、未注册 IP)。
- Credit 有限,oneoff measurement 成本低但要控制 probe 数量和频率。
- 反向验证:从你的机器向 Atlas probe ping?不行,probe 不接受入站。可以做 DNS 测量(内网权威 DNS anycast 验证)。
- 也可以用 M-Lab、CLAW 等,但保持范围。
记录基线:
- 平时(没故障时)就要采样并归档:每条公告前缀在每个 LG 的 AS-Path、每条 Atlas 常态测量的 RTT/traceroute。
- 存什么:时间戳、vantage point、prefix、AS-Path、next-hop、community、RPKI status、RTT 分位数。
- 用脚本(cURL + cron)定期抓 LG 和 RIPEstat API,存 JSON/CSV 到 git 或时序库。
- 故障时 diff 基线,快速定位"哪一侧变了"——是上游 prepending、还是第三方宣布了冲突前缀、还是 peer 撤销。
- 基线也帮助回答"这是我们的问题还是 ISP 的问题"。
Checklist at end:
- 公告变更前后各用 ≥3 大洲、≥5 个独立 AS 的 LG 核对 AS-Path
- LG 与真实 traceroute(Atlas)对不上时先怀疑数据/控制平面差异
- 建立 cron 抓取 + 归档,至少覆盖自家所有前缀
- 用 RIS/RouteViews raw 数据交叉验证 LG 的裁剪输出
- 故障演练:随机抽一天对比当日与基线的 diff
Also mention communities: 看不到 community 是一个常见局限。Some LGs (e.g., some) hide communities.
开头观点:Looking Glass 看到的是"某一台路由器认为的世界",不是世界本身。验证路由的核心是制造视角差——从和你位置、策略都不同的点去看。
Length: aim ~1100 Chinese characters. Let me write carefully.
Let me count roughly as I write. Chinese characters count; code/technical terms also count-ish. I'll aim for around 1100-1250.
Structure:
opening (opinion): "每个网络工程师都会查 Looking Glass,但多数人把它当事实来源,而不是视角来源。LG 的输出只代表某一台路由器在某一个位置的 Loc-RIB……验证路由的真正方法,是有意识地制造视角差:跳出到和你策略不同、位置不同的点上反过来看自己。"
公开 LG 的三个局限:它连控制平面都只给你一半 - 视角单一 - 输出被裁剪 - 只有控制平面
多点验证:按"谁会用你的路由"来选 vantage point
or just list. Maybe h2 with paragraphs + list.
把 RIPE Atlas 当作 LG 的数据平面补充
没有基线,多视角只是噪音 Then checklist
检查清单
with- .
Include a small table maybe for baseline fields? Could be useful: 字段/说明 table. That adds structure. Table: 字段 | 作用. Rows: as-path, next-hop/egress, community, rpki status, rtt p95, timestamp+vantage. Good use of table tag.
Include example commands? Use
for things like `bgpq4`, `curl https://stat.ripe.net/data/...`, but avoid fabricating API endpoints that are wrong. RIPEstat data API: https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS... — that's real. Also traceroute-to-asn? There's "traceroute-to-asn" widget data? There is RIPEstat data API "bgp-as-path"? Hmm. Safer: mention RIPEstat's traceroute mapping in Atlas results, and the API https://stat.ripe.net/data/ris-prefixes/data.json? Or "looking-glass" data API exists: https://stat.ripe.net/data/looking-glass/data.json?resource=AS64512 — yes, RIPEstat has a "looking-glass" data endpoint that aggregates RIS route collectors. I believe that exists. To be safe, I can say "RIPEstat 的 looking-glass 数据接口" without full URL, or give URL with caveat. I'll keep it generic:stat.ripe.net数据接口. That's safe. Example values: "示例:对外公告 203.0.113.0/24" — use documentation prefix 203.0.113.0/24 (TEST-NET-3) — good practice, it's explicitly a documentation prefix, not fabricated stats. AS numbers: use AS64512–AS64534 (private use range) for examples, clearly marked as 示例. Atlas oneoff: "创建一个一次性测量:10 个 probe,traceroute 到 203.0.113.1,间隔一次" — plausible example. Mention RRC nodes: RIPE RIS route collectors (RRC00–RRC 20+). Say "RIS 的十几个 route collector(RRC)" — number of RRCs is around 25 now; saying "二十多个" is roughly right. Or avoid the count: "RIS 各地的 route collector". Safe. bgp.tools also fine to mention. Prepending example: "把 203.0.113.0/24 对上游 AS64530 prepending 一次" — fine. Let me write the HTML now, watching length. Draft:查 Looking Glass 是每个网络工程师的肌肉记忆,但很多人把 LG 当成事实来源,而它本质上只是视角来源。你看到的输出,是某台路由器在某个位置的 Loc-RIB 快照,不是全球路由的真实状态。验证路由变更是否生效、故障到底出在哪一侧,正确姿势是反过来做:刻意跳出到和你位置、商业关系、路由策略都不同的点上去看自己。下面按实际操作顺序展开。
Count: ~150 chars.公开 LG 的局限:它连控制平面都只给你一半
三个必须心里有数的坑。第一,视角单一且不透明:你不一定知道那台 LG 设备的 local-pref、import policy,它显示的 best path 可能和你流量实际走的 egress 不是一回事。第二,输出被裁剪:不少公开 LG 隐藏 BGP community、只显示最佳路径不显示备选路径、甚至不显示 RPKI 状态——而 community 恰恰是排查 prepending 和流量工程时最有用的字段。第三,只有控制平面:LG 告诉你"路由表里有这条前缀",但丢包、非对称路径、中间路由器 ACL 都不会体现在 LG 上。控制平面看着健康、数据平面一塌糊涂的情况并不罕见。
~200 chars.多点验证:按"谁会用你的路由"来选 vantage point
单点 LG 只能证明"某一个点能收到你的公告"。正确做法是把 vantage point 当采样集来设计,而不是随便挑两台。选择原则按优先级:
举例(示例值):变更 203.0.113.0/24 的 prepending 后,从至少 3 个大洲、5 个互相独立的 AS 的 LG 核对 AS-Path,同时用 RIS collector 确认 prepending 只影响了预期上游、没有把某些选择器推过阈值导致路径翻转。注意 BGP 收敛需要时间,公告后等几分钟再采样,跨洋 collector 往往滞后更久。
~330 chars.把 RIPE Atlas 当作 LG 的数据平面补充
LG 说"我收到了",Atlas 回答"流量真的这么走吗"。方法是一次性测量:在 RIPE Atlas 上创建 oneoff traceroute,选 10 个左右分布在目标区域的 probe 探测你自己的地址,然后把结果中的 IP 跳段用 IP-to-ASN 映射(RIPEstat 或 bgp.tools 的 traceroute-to-ASN 功能)转成 AS 级路径,再和 LG 看到的 AS-Path 对比。两条路径一致,说明控制平面和数据平面没有脱节;不一致,先怀疑中间有 Policy-Based Routing、anycast 命中差异或 IX 交换机不回 ICMP。
注意 Atlas 的映射失真点:IX 局域网段和未注册 IP 会映射不出 ASN,probe 的 credit 消耗虽小但 probe 数量要克制。反向测量做不了(probe 不接受入站),验证 anycast 时应从 Atlas 侧向你的节点发探测,而不是反过来。
~280 chars.没有基线,多视角只是噪音
故障时刻最贵的问题不是"现在路由什么样",而是"和平时差在哪"。基线要在没有变更、没有故障的日子建立:用脚本定期抓取自家所有前缀在各 vantage point 的输出并归档,最简单的方案是 cron + curl 调 RIPEstat 数据接口,落成 JSON 存进 git。建议至少记录:
table:字段 作用 时间戳 + vantage point 确定"谁、什么时候"看到的,收敛有先后 AS- 本文由 南方数据技术博客编辑整理,涉及具体环境时请以官方文档与实际配置为准。