CS 168 · LECTURE 10 · 2026-09-29 · 路由
把 BGP 从策略模型落到会话、增量更新与 IP 首部:一条跨域路如何进入路由器,又如何真正承载数据包。
版本快照:Fall 2026 官方课表与在线教材,核对日期 2026-09-02;官网仍标注 under construction,日期与政策可能变化。
控制平面选出的 BGP best path,经过哪些状态与协议边界才成为可用的数据平面下一跳?
eBGP 会话跨 AS 建立,携带外部前缀和路径属性;iBGP 把这些候选分发给同一 AS 内的其他边界路由器。iBGP 自身不替代 OSPF/IS-IS:路由器仍需 IGP 找到 BGP next hop。
因此一次 FIB 安装常是递归解析:前缀 P 的 BGP 路线指向出口 E,IGP 再告诉本机如何到 E。若 next hop 不可达,BGP 属性再漂亮也不能转发。
为避免环路,iBGP 学到的路线默认不再通告给其他 iBGP peer,所以朴素部署需要 full mesh。规模增大后使用 route reflector 或 confederation 降低会话数,但会隐藏部分路径并改变可见性。
控制平面可扩展不是只有表项数量,还包括会话数、更新风暴、策略计算和故障收敛。结构优化通常会以可见路径减少为代价。
BGP 不周期性广播整张全球表;建立会话后发送初始状态,之后主要传播增量 UPDATE 与 withdrawn routes。TCP 提供可靠有序的会话传输,但无法保证策略配置正确或收敛快速。
keepalive/hold timer 检测会话活性。会话断开会撤去经该邻居学习的大量路线,可能触发级联重算,因此实现需要批处理与抑制不必要抖动。
数据包只携带目的 IP,不携带完整 AS_PATH。BGP 属性在控制平面决定 FIB,随后每跳只做前缀查找、TTL 处理与下一跳封装。ICMP 和 traceroute 看到的是实际数据路径,未必直接揭示控制策略。
IPv4 首部 Protocol 字段支持上层解复用,TTL 防止瞬态环路无限消耗资源,checksum 保护首部。BGP 决策和 IP 转发是不同协议层,却通过 FIB 发生因果连接。
画三个边界路由器的 AS:eBGP 学到前缀,iBGP 分发,OSPF 到出口。人为让 IGP 到首选出口失效,解释 FIB 怎样变化。
检查:BGP 路线的 next hop 在本地 IGP 中不可达时,最合理的结果是?
UPDATE 到达后修改 Adj-RIB-In,decision process 选 best,Loc-RIB/FIB 改变,再按 export policy 生成 UPDATE。
UPDATE 到达后修改 Adj-RIB-In,decision process 选 best,Loc-RIB/FIB 改变,再按 export policy 生成 UPDATE。
检查:判断一个实现分支是否必要,最有力的问题是什么?
指出 import、selection、export 三处分别查什么 state。
答案必须出现 packet/message、local state/table、触发 event、after state 与 output;只给定义不算完成。
正文是 CourseStack 的中文解释与重新绘制的教学例子;官方页面负责课程原始定义,历史仓库只提供你的实现证据。