【HCIP】3BGP协议-2.4BGP邻居关系的建立

前期回顾:

BGPTCP三次握手后发送的报文:
open报文:
邻居建立和能力参数协商,(至少有一个地址簇能力要一致)
keepalive报文:
默认每隔60s周期性发送,如果180s没有收到keepalive报文,则认为BGP邻居失效
断开TCP连接。
update报文:
BGP路由传递以及撤销
Route-refresh报文:
用于手动进行BGP路由的触发更新,或者用于ORF功能。
Notificationn报文:
通知报文,用于报错,收到该报文会断开TCP连接。
BGP的状态机:
Idle:
产生原因:
1、没有去往邻居地址的路由,无法发起TCP三次握手,也无法完成TCP的三次握手。
2、发起TCP连接请求后被对端拒绝,发起TCP报文的源地址,不是本端指定的邻居地址。
Connect(连接):
产生原因:发起TCP连接路由器,无法收到邻居的TCP回应报文时会变为connect状态,并且5s后重传一次TCP连接请求,再等待32s左右,重新发起TCP连接请求。
Active状态:
产生原因:

本节我们继续从BGP建立邻居前的TCP三次握手到发送Open报文、Keepalive报文。邻居建立之后,我们对现网的操作可能会产生update报文。
现在我们谈一谈Update报文

Update报文

BGP通过Network和Import两种方式生成BGP路由,BGP路由封装在Update报文中通告给邻居,BGP在邻居关系建立后才开始通告路由信息。
Update消息主要用来发布可用路由和撤销路由,Update中包含以下信息:
1、网络层可达信息(NLRI):用来公布IP前缀和前缀长度。
2、路由属性:为BGP提供环路检测,控制路由优选。
3、撤销路由:用来描述无法到达且从业务中撤销的路由前缀和前缀长度。
再通告BGP路由时,由于各种因素的影响,为了避免路由通告过程中出现的问题,BGP路由通告需要遵守一定的规则,下面进行详细分析。

1、BGP通告原则之一:仅将自己最优的路由发布给邻居

[R1]dis bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
           h - history,  i - internal, s - suppressed, S - Stale
           Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 2
  Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   2.2.2.2/32         0.0.0.0         0                     0      ?
 *>   10.1.12.0/24       0.0.0.0         0                     0      i

BGP路由信息中如何看一条邻居是最好的路由?
在BGP路由表中,带>的路由是最优的路由。

2、BGP通告原则之二:通过EBGP获得的最优路由发布给所有BGP邻居

3、BGP通告原则之三:通过IBGP获得的最优路由不会发布给其他的IBGP邻居

这是IBGP中重要的防止环路规则之一,又称之为IBGP的水平分割。

4、BGP通告原则之四:BGP与IGP同步

这个只会产生在BGP非全互联的拓扑中,即同一个AS内存在没有做BGP处理的路由器中,才会进行BGP与IGP的同步。

路由黑洞

我们看以下实验:


图片.png

在这个拓扑图中,BGP传播路由是可以跨路由器传递的,A路由器可以将路由通过EBGP传递给B,B可以通过IBGP传递给D,因为B路由器到D路由器有运行OSPF协议,路由可达,D再次通过EBGP传递给E。
但是C路由器上却没有A路由器100.0.o.o的路由,因为C路由器没有运行BGP协议。
这样就会导致E路由器在回包的时候,将100.0.o.o的路由先发送给D,D继续转发给C,C直接丢弃。这就出现了BGP的路由黑洞。最终导致路由不通。
这种又该怎么处理呢?
其实,我们的D路由器会在IBGP报文发送过来之后,查询自己的IGP路由表中是否存在该路由,如果存在,则认为在这个区域内,其他路由器都存在该条路由,就认为是同步了,继续通过EBGP传递给E路由器,反之,则认为在这个区域内,其他路由器都不存在该条路由,直接丢弃。
*1、将EBGP路由引入到IGP协议中,(基本被淘汰)比较消耗设备资源,因为BGP路由数量过于庞大,引入到IGP协议,增加的IGP协议计算路由负担。BGP路由震荡,IGP路由也会产生震荡。
*2、AS内部所有路由器均运行BGP协议,即IBGP全互联。主流架构,此时不再需要同步检测。
从IBGP邻居得到的路由不会传递给IBGP邻居
从IBGP邻居得到的路由同步检测后传递给EBGP

记录:

BGP防环机制:

1、AS内部防患,IBGP的水平分割:通过IBGP获得的最优路由不会发布给其他的IBGP邻居。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容