routing - BGP:最长前缀与最短路径
问题描述
假设自治系统 AS0 从其对等体接收到以下两个公告:
AS1:42.0.0.0/8,路径长度为 10
AS2:42.0.0.0/16,路径长度为 20
现在,目标地址为 42.0.0.1 的数据包将被 AS0 路由到哪里?
到 AS1 是因为它有更短的路径,还是到 AS2 因为它有更长的前缀?
解决方案
就BGP而言:
- 它们是两个不同的目的地前缀。
- BGP 只有一个目标前缀 42.0.0.0/ 8的候选路由(路径) ,因此只有一个可供选择的路由,它会自动赢得最佳路径选择,并将安装在转发表(FIB)中。
- 类似地,BGP 只有一条目标前缀 42.0.0.0/ 16的候选路由(路径) ,因此只有一条可供选择的路由,它会自动赢得最佳路径选择,并将安装在转发表(FIB)中。
- 因此,我们最终在转发表 (FIB) 中有两条路由: 42.0.0.0/ 8和 42.0.0.0/ 16。
- 当数据包到达并且需要在转发平面中做出转发决策时,转发硬件将始终选择最具体的路由。请注意,此时 BGP 已经不存在了。
- 例如,目标地址为 42.0.0.1 的数据包将使用路由 42.0.0.0/ 16,目标地址为 42.1.0.1 的数据包将使用路由 42.0.0.0/ 8。
推荐阅读
- sed - 如何用bash在行尾增加一个数字?
- java - WorkManager 自定义初始化抱怨 WorkManager#initialize
- python - 通过比较替换python中列表/数据框列中的字符串
- git - NFS 共享上的相对符号链接
- scala - 播放框架 - 使表单验证异步 - 编译错误
- caching - 高速缓存设计——地址解码
- reactjs - JSX 条件渲染
- azure - 如何将 IIS 服务器在 Windows VM 中生成的日志存储到 blob 存储中?
- c++ - 在 C++ 中将 ddhhmm 转换为 YYYY-MM-DD hh:mm 格式
- c# - 无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型需要 JSON 数组(例如 [1,2,3])才能正确反序列化