BGP防环

本文详细介绍了BGP中的防环机制,包括AS内通过IBGP水平分割、路由反射器的CLUSTER_LIST和ORIGINATOR_ID,以及AS间通过AS_PATH防止环路。还讨论了如何处理接收本AS路由和特定场景下的环路问题,如引入路由和使用策略解决环路和路由黑洞。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

防环机制种类

(1)AS内防环:
① IBGP邻居之间通过IBGP的水平分割防止环路。
② 配置路由反射器之后,路由反射器通过CLUSTER_LIST防止环路;路由反射器的客户端通过ORIGINATOR_ID防止环路。
③ 在confederation 内部,confederation 成员AS间使用成员的AS号来防环。
(2)AS间防环:EBGP邻居通过AS_PATH防止环路。

BGP 路由经过 RR,会添加几种属性,如何避免环路

(1)cluster-list
在这里插入图片描述
cluster-list 就是路由沿途经反射器反射,RR默认就会将自己的cluster-id(默认为router-id)写进cluster-list,接收路由器,一旦发现cluster-list里面有跟自己cluster-id一样的,就会拒收路由,所以上图R1会拒收传回来的路由从而起到防环的作用。
(2)originator-id
在这里插入图片描述
路由器发现originator-id 跟自己router-id一致就不收,所以上图的情况r4会拒收自己发起的被RR反射回来的路由。

要接收带有本AS的路由时如何做,设计这种机制的原因

(1)可以使用peer allow-as-loop
(2)可以使用route-policy(apply as-path overwrite,覆盖as号)
(3)做聚合(不加as-set)
(4)可以使用peer fake-as
场景:
一个公司如果有两个站点,但是只申请了一个as号的时候。此时就需要做相应的操作,不然会因为AS-Path防环机制而导致一边学习不到路由

BGP存在的环路的场景说明

  • 第一种场景:

在这里插入图片描述
拓扑描述:
R1和R3之间没有直连链路,R1、R2、R3之间运行rip,R1和R3建立IBGP邻居关系,R1和R2建立EBGP邻居关系,R2和R3之间不建立邻居关系,在R3上宣告一条30.30.30.0/24的BGP路由
现象:
在R1和R2之间会有数据包环路
解释:
R3把这条路由通过IBGP传给R1,R1收到这条路由会把这条路由通过EBGP传给R2,所以,R1、R2、R3都是有这条路由。但是数据在传输的时候,当R1去访问30.30.30.0/24时下一跳指向R3,通过迭代,数据发给R2,R2查找自己路由表,发现下一跳指向R1,又把数据包扔回给R1,环路出现
解决方法:
在R1上传路由给R2时,下一跳不改变

  • 第二种场景:
    在这里插入图片描述
    拓扑描述:
    R2、R3、R4之间运行rip,R2和R4之间建立IBGP,R2和R1建立EBGP,R3上没有起BGP,为了保证网络可达性,在R4上将BGP引入到RIP(import-routebgp permit-ibgp)
    现象:
    R3和R4之间出现数据包环路
    解释:
    R1把1.1.1.0/24传给R2,R2将路由传给R4并将下一跳改为自己,R4上学到这条路由后,将此路由从BGP引入到RIP,R3通过RIP学到这条路由。当R4去访问1.1.1.0/24时,下一跳指向R2,通过迭代,把数据扔给R3,R3关于1.1.1.0/24路由,是通过R4学到的,下一跳指向R4,又把数据包扔回给R4,环路出现
    解决方法:
    1.在R2上做引入。或者不将BGP引入rip。
    2.通过其他方法解决路由黑洞(mpls、隧道)
### OSPF 和 BGP 协议中的防环机制 #### OSPF 中的防环机制 OSPF 使用链路状态通告 (LSA) 来共享网络拓扑信息,在同一区域内所有路由器都拥有相同的链路状态数据库。为了确保路由表中不存在路,OSPF 利用了最短路径优先 (SPF) 算法,即 Dijkstra 算法来计算最优路径[^2]。 当一台路由器接收到 LSA 后,它会更新自己的链路状态数据库并重新运行 SPF 算法。该算法构建了一棵以当前节点作为根节点的最小生成树,从而自然地排除了任何可能形成路的情况。此外,对于区域间的通信,OSPF 还采用了分层设计,通过引入骨干区(Area 0),使得不同区域之间的流量必须经过此核心部分转发,进一步减少了跨域路的风险。 #### BGP 中的防环机制 相比之下,BGP 主要用于自治系统间路由选择,并不依赖于整个互联网范围内的统一视图来进行决策。因此其策略有所不同: - **AS_PATH 属性**:每当一条路由被传播到另一个 AS 时,接收方会在原有基础上附加自身的 ASN 号码至 `AS_PATH` 字段内;如此一来,其他 BGP 对等体会依据这一属性判断是否存在重复项——一旦发现相同编号,则认为存在潜在路而拒绝接受相应前缀。 - **同步规则**:早期版本规定 IBGP 邻居之间需保持完全互联才能保证无特性,不过随着技术发展现已放宽限制但仍建议维持全网格连接模式以增强稳定性。 - **最大跳数控制**:某些实现允许管理员设置一个阈值,超过指定次数仍未找到有效出口则丢弃报文,间接达到抑制无限循的效果。 ```bash router bgp 65001 neighbor 192.168.1.2 remote-as 65002 address-family ipv4 unicast maximum-paths ibgp 2 exit-address-family ``` 上述配置展示了如何在一个典型的 Cisco 设备上设定多条最佳路径数量上限为两条,以此方式可以提高冗余度而不至于引发不必要的复杂性或安全隐患。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值