计算机网络-BGP路由优选原则七

一、优选从EBGP对等体学来的路由

优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。

在保证前面的选路策略一致情况下,从EBGP和IBGP同时学习到路由,优选EBGP路由。

简单说就是如果同时通过IBGP和EBGP学习到相同路由,在前面的选路规则一致的情况下,优先选择EBGP学习到的路由,原因如下:

  • 自治系统内部一致性:IBGP是在同一自治系统内部运行的BGP,它保证了自治系统内部的路由一致性。当路由信息在自治系统内部传播时,IBGP确保所有路由器都有相同的路由视图。
  • EBGP作为入口点:EBGP用于连接不同的自治系统。当一个自治系统需要从外部接收路由时,EBGP提供了一个明确的入口点。这意味着通过EBGP学习到的路由被认为是从外部进入自治系统的,因此具有更高的优先级。
  • 路由来源的可信度:EBGP路由通常来自外部的邻居,这些邻居可能是更接近最终目的地的自治系统。因此,通过EBGP学习到的路由可能代表了更短的路径或更优的路径。
  • 防止路由循环:BGP的设计原则之一是防止路由循环。EBGP路由由于来自外部,因此不太可能在自治系统内部形成循环。而IBGP路由由于在自治系统内部传播,如果不当配置,可能会增加路由循环的风险。

二、实例配置

AR3从AR5直连EBGP邻居学习到192.168.1.0/24。这里假设从AR1这个IBGP也学习到了192.168.1.0/24,通过路由策略保证前六条选路规则一致,检验EBGP优于IBGP。

复制代码
# AR1配置

# 在AR1配置一条静态路由指向NULL0,代表本地已经存在的路由,可以注入BGP路由表了
ip route-static 192.168.1.0 255.255.255.0 NULL0


# 前缀列表
ip ip-prefix AR3 index 1 permit 192.168.1.0 24

# 配置路由策略
route-policy AR3 permit node 10 
 if-match ip-prefix AR3 
 apply as-path 500 additive   # 默认IBGP通告的路由AS-Path为空nil,所以要增加一个AS-path属性保持前面的选路规则一致
#
route-policy AR3 permit node 20 

# 
bgp 100
 peer 2.2.2.2 as-number 100 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 3.3.3.3 as-number 100 
 peer 3.3.3.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 192.168.1.0 
  peer 2.2.2.2 enable
  peer 3.3.3.3 enable
  peer 3.3.3.3 route-policy AR3 export       # 在向AR3通告路由的出方向应用路由策略

AR3上查看路由。

这里设置了AS-Path,保证下一跳可达、路由优先级、MED、AS-Path、Origin等都一致,虽然这里IBGP多了一个本地优先级,但是最终优选不是通过这个值决定,而是对等体类型来确定的。

总结:在前面的BGP优选原则一致的情况下,EBGP对等体学习的路由优于IBGP对等体发布的路由。

本文由mdnice多平台发布

相关推荐
sxjk19871 天前
宁亢勿卑 如何理解
程序人生
山楂树の2 天前
原生 WebGL + Canvas 实现鱼眼图像去畸变(Shader逐像素计算)
图像处理·数码相机·学习·程序人生
白晨并不是很能熬夜2 天前
【RPC】第 4 篇:服务发现 — Zookeeper + 缓存容错
java·后端·程序人生·缓存·zookeeper·rpc·服务发现
Codigger官方2 天前
Phoenix 语言起步指南:开启 Polyglot Singularity 之门
开发语言·人工智能·程序人生
瞎某某Blinder3 天前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
流年似水~3 天前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程
愚者游世4 天前
noexcept 说明符与 noexcept运算符各版本异同
开发语言·c++·程序人生·面试·visual studio
GeLx4 天前
从反爬角度:Playwright CDP 模式、Playwright 传统模式与 DrissionPage 的比较
python·程序人生·playwright·drissionpage·pyppeteer·浏览器自动化控制
浮尘笔记4 天前
在Snowy后台无需编码实现自动化生成CRUD操作流程
java·开发语言·经验分享·spring boot·后端·程序人生·mybatis
流年似水~4 天前
Docker/Kubernetes 实战:从入门到生产级部署
人工智能·程序人生·docker·语言模型·ai编程