BGP笔记全

自治系统---AS

定义:由一个单一的机构或者组织所管理的一系列IP网络及其设备所构成的集合

AS划分的原因

  • 如果整张网络很大,路由数量进一步增加,路由表规模变得太大,会导致路由收敛速度变慢,设备性能消耗加大,且全网设备对于路由信息的认知不同,造成流量通讯障碍。

  • AS之间可能是不同的机构、公司,相互之间无法完全信任,若使用IGP协议可能会造成暴露AS内部的网络信息风险。

AS号----16位二进制组成,32位二进制组成。----IANA(互联网数字分配机构)

  • 16位AS号,其取值范围:1-65534(0、65535保留);私有AS号:64512-65534;公有AS号:1-64511

  • 保留AS号

    • RFC4893标准中,支持16bitAS向32bitAS过渡,新增23456作为保留AS号

    • RFC5398标准中

      • 16bit中,64496-64511

      • 32bit中,65536-65551

BGP基础

  • 首先,RIP是基于UDP进行数据传输的,而UDP是一个不可靠的协议,他在传输过程中可能丢失某些数据。

  • RIP协议的路由更新报文的发送间隔是30S,而如果两个AS内部的路由表较为庞大,30秒的时间可能不够传输所有的路由条目,这样该条链路完全是为了RIP的通告报文服务,而不能进行数据转发。

解决思路:

  • 将UDP更换为TCP协议

  • 取消周期更新机制,仅保留触发更新

交换机转发靠硬件;路由器靠软路由

BGP特点

  • BGP基于TCP协议,只要能够建立TCP连接,就可以建立BGP连接

TCP是单播行为,用TCP要知道邻居

  • 触发更新,不再进行周期更新

  • 只传递路由信息,而不会暴露AS内的拓扑信息

    • 拓扑信息资源占用量大

    • 拓扑信息会暴露本AS内部的拓扑连接情况

  • BGP----无类别路径矢量协议

    • 无类别---传递路由信息时携带掩码信息

    • 矢量----指方向性,谁传递给我,谁就是下一跳。

    • 距离矢量----开销的体现,在距离矢量型协议中,将一个路由器看做是一个单位进行计算。

    • 路径矢量----将一个AS看做是一个整体,从而计算距离。

RIP---距离矢量协议 

IGP协议的主要任务是将AS内部的位置网段信息计算获取到,而BGP则主要是将IGP协议计算出来的路由信息进行搬运和传递,并不计算路由

BGP特征

  • 收敛速度

  • 资源占用

  • 选路

可控性

重发布因为度量值的原因,可能会出现选路不佳的情况。而BGP为了弥补这个不足,舍弃了开销值,取而代之的是设计了很多的路径属性。BGP通过这些路径属性来控制路径选择,从而干涉选路。

可靠性

BGP因为只有触发更新,而不存在周期更新,所以需要确保可靠性机制。使用TCP作为传输层来确保其可靠性,端口号为179。---路由器之间的BGP会话基于TCP连接而建立

IGP不选择使用TCP的原因

  • TCP传输效率低

  • TCP占用资源大

  • TCP只能实现单播数据传输,无法通过组播或者广播的形式发送数据,导致IGP协议无法自动发现邻居关系,只能手动配置。

AS-BY-AS

BGP将一个AS看做是一个整体。

BGP默认不支持负载均衡

IGP协议追求内容收敛速度快选路佳(无环路)占用资源少
EGP协议追求内容可控性可靠性AS-BY-AS

BGP的对等体关系

BGP因为传输层使用的是TCP协议,所以,只要TCP协议可以正常建立会话的基础上就可以完成BGP的建邻工作,而BGP支持非直连建邻------BGP设备必须具备邻居的路由信息

BGP存在两种对等体关系类型

  • EBGP

    • 位于不同自治系统的BGP路由器之间的BGP对等体关系

    • EBGP对等体一般使用直连建邻。TTL值=1

    • 两台路由器之间要建立EBGP对等体关系,必须满足如下条件

      • 两台路由器的所属AS号不同

      • 需要使用peer命令指定对等体的IP地址,且该IP地址的路由可达。

  • IBGP

    • 位于相同自治系统的BGP路由器之间的BGP对等体关系

    • IBGP对等体之间一般使用非直连建邻。TTL=255

    • 在IBGP对等体关系中,建邻使用的是环回接口IP地址。----原因在于环回接口是稳定接口;BGP建邻的流量可以借助AS内部的IGP协议来实现通讯冗余保证邻居正常建立。

总结BGP

  • 无类别路径矢量协议----AS-BY-AS

  • BGP使用单播来发送信息;基于TCP 179端口工作

  • 增量更新机制---仅触发更新

  • 具备丰富的路径属性来代替IGP中的度量值进行选路。

  • 可以在进出流量的接口实施路由策略---可控性

  • 默认不被用于负载均衡----会通过各种选路规则产生最佳的一条路由信息。

  • BGP支持认证和聚合。

BGP的数据包

image-20230323162229247

image-20230323162229247

BGP头部信息

image-20231115204243752

image-20230323153843010

Route-refresh----路由刷新报文

作用:用来要求对等体重新发送指定地址族的路由信息。

在某时刻,原本路由器已经学习到了对等体发送的BGP路由信息,而此时需要修改一下传递路由的内容,在控制层流量的入接口调用路由策略,但是此时该路由策略未生效。原因在于之前已经拿到了对等体发送来的路由信息,而此时需要让对方重新发送一次路由信息,进而根据本地新调整的策略内容,对路由信息进行修正。

双方均支持路由刷新功能

hello----周期保活,发现、建立邻居关系。

Open包

是在TCP连接建立之后发送的第一个报文内容,用以建立BGP对等体之间的连接关系。

image-20230323163521711

  • AS号

    • BGP的open报文会携带本地的AS号,通过对比两端的AS号可以判断对端是否和本端处于相同AS。从而选择建立IBGP对等体或者EBGP对等体关系。

      • 不管AS号是否相同,都并不影响BGP对等体的建立。

    • 如果接收到的OPen报文中的AS号与本地建邻时所配置的AS号不同,则将导致邻居关系无法建立。

  • hold time----保活时间----不影响BGP邻居对等体的建立。

    • BGP在建立对等体关系时两端需要协商该参数,并保持一致。若双方不一致,则选择最小的执行。默认180S。

    • 如果在该计时器时间内,没有收到updata报文和keepalive报文,则认为BGP连接中断

  • BGP标识符

    • 该参数值在open报文中携带,对比两端参数,相同则表示冲突,导致邻居建立失败。

  • 认证

    • BGP也可以进行认证,认证口令不同,则导致邻居建立失败。

    • 该字段存储在TCP的可选项字段。---永远以MD5形式存储。

  • 路由刷新功能-----route-refresh

Keepalive包

作用:主要用来进行周期保活;用来临时充当确认报文----确认open报文中的参数是否认可

该报文没有报文字段,仅仅具备BGP头部信息。---大小19字节。

周期保活时间默认是保活时间的三分之一,默认60S

TCP协议进行确认的目的是为了保证数据传输的可靠性,而keepalive报文确认的目的是为了认证认可对方发送的open报文中的参数

Update包----更新包

作用:用于在对等体之间传递路由信息,可以用于发布、撤销路由

image-20230324013846644

Notification包

纯粹的告警机制。---可以用在BGP协议启动的任意时刻,当任意时刻出现错误,都将以该报文的形式通知对方设备。

image-20230324015544017

BGP状态机

BGP状态机仅描述对等体建立过程的状态变化。----BGP将邻居建立和BGP路由收发过程分开

image-20230323153930483

  • Idle----空闲状态

    • 所有设备启动BGP进程后首先进入该状态。

      • 原因在于BGP需要手工指定邻居,在BGP进程启动后就会进入该状态,然后等待手工指定邻居。

    • 当手工指定邻居后,将会进入一个检查环节。需要检查手工指定的IP地址在本地路由表中是否可达,只有可达,才可以正常建立TCP的会话,如果不可达,则邻居关系建立失败,停留在idle状态。

    • 如果检查共拓,则进入下一个状态。

  • Connect状态----连接状态

    • 正在进行TCP会话连接。

    • 在该状态下,会开启一个连接重传定时器----32秒

      • 该计时器超时,则代表此时设备可以重新发送一个TCP连接请求数据包。

    • 如果成功建立TCP会话,则进入opensent状态;如果建立失败,则进入active状态。

  • Active状态----尝试状态。

    • 因为第一次TCP会话建立失败进入该状态。会继续尝试与对等体建立TCP会话。

    • 与connect状态共用同一个连接重传定时器。

    • 如果成功建立TCP会话,则进入opensent状态;如果建立失败,则停留在active状态

  • Opensent状态

    • 发出本地的open报文。

    • 同时,会收到对方发送的open报文,将查看open报文中的参数,进行参数协商过程。

    • 如果参数本端认可,则本地发送keepalive报文,之后进入openconfirm状态。

    • 如果参数本端不认可,则本地发送notification报文,并将状态切换至idle状态。

    • 对等体关系的指定是双向的,所以当双方都使用peer命令指定了对等体后,均会主动与对等体建立TCP连接。但是这样会建立两条TCP双向连接,会选择第一个建立的连接进行断开(BGP会将最早启动BGP协议的设备所发起的TCP会话断开,而保留后启动BGP协议的设备发送的TCP会话。)

  • openconfirm状态----等待open报文确认

    • 如果收到了对方发送的keepalive报文,则代表双方open报文中的参数协商成功。最终进入到establish状态。

    • 如果收到notification报文,则转至idle状态。

  • Established状态----邻居建立状态

    • 对等体建立的标志

image-20230323153943738

BGP状态机

BGP状态机仅描述对等体建立过程的状态变化。----BGP将邻居建立和BGP路由收发过程分开

image-20230323153930483

  • Idle----空闲状态

    • 所有设备启动BGP进程后首先进入该状态。

      • 原因在于BGP需要手工指定邻居,在BGP进程启动后就会进入该状态,然后等待手工指定邻居。

    • 当手工指定邻居后,将会进入一个检查环节。需要检查手工指定的IP地址在本地路由表中是否可达,只有可达,才可以正常建立TCP的会话,如果不可达,则邻居关系建立失败,停留在idle状态。

    • 如果检查共拓,则进入下一个状态。

  • Connect状态----连接状态

    • 正在进行TCP会话连接。

    • 在该状态下,会开启一个连接重传定时器----32秒

      • 该计时器超时,则代表此时设备可以重新发送一个TCP连接请求数据包。

    • 如果成功建立TCP会话,则进入opensent状态;如果建立失败,则进入active状态。

  • Active状态----尝试状态。

    • 因为第一次TCP会话建立失败进入该状态。会继续尝试与对等体建立TCP会话。

    • 与connect状态共用同一个连接重传定时器。

    • 如果成功建立TCP会话,则进入opensent状态;如果建立失败,则停留在active状态

  • Opensent状态

    • 发出本地的open报文。

    • 同时,会收到对方发送的open报文,将查看open报文中的参数,进行参数协商过程。

    • 如果参数本端认可,则本地发送keepalive报文,之后进入openconfirm状态。

    • 如果参数本端不认可,则本地发送notification报文,并将状态切换至idle状态。

    • 对等体关系的指定是双向的,所以当双方都使用peer命令指定了对等体后,均会主动与对等体建立TCP连接。但是这样会建立两条TCP双向连接,会选择第一个建立的连接进行断开(BGP会将最早启动BGP协议的设备所发起的TCP会话断开,而保留后启动BGP协议的设备发送的TCP会话。)

  • openconfirm状态----等待open报文确认

    • 如果收到了对方发送的keepalive报文,则代表双方open报文中的参数协商成功。最终进入到establish状态。

    • 如果收到notification报文,则转至idle状态。

  • Established状态----邻居建立状态

    • 对等体建立的标志

image-20230323153943738

BGP工作过程

  1. 基于IGP协议或者静态路由实现IP可达。

  2. 启动BGP协议,并指定邻居关系

    1. 邻居之间单播传输数据,通过三次握手,建立TCP会话通道。

    2. BGP之后所有的通讯都将基于TCP会话通道来传输,并由TCP提供传输的可靠性。

  3. 使用open报文和keepalive报文进行BGP对等体关系建立。open报文中携带建邻使用的参数,keepalive报文用于参数的确认。最终完成对等体关系的建立。生成邻居表

  4. 使用update报文来传递路由信息。信息中将携带目标网络号、掩码及路径属性信息。之后,设备会将所有自己发送的以及收到的BGP路由信息记录在BGP表中。

  5. 之后,将BGP路由表中最优的路由信息加载到全局路由表

  6. 收敛完成后,将使用keepalive报文进行周期保活,默认保活时间为180S,周期发送时间默认为保活时间的三分之一。

  7. 如果出现错误,将使用notification报文进行告警。

  8. 如果出现结构突变,将使用update报文进行增量更新。

BGP的防环

BGP水平分割机制

EBGP水平分割

依靠AS_PATH属性,该属性中记录了路由信息在控制层面传递时所经过的所有AS区域的编号。接收者根据AS_Path属性中的内容与本地对比,如果该属性中包含本地AS,则丢弃该路由信息

IBGP水平分割

image-20230327020905847

BGP规定,当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体。----IBGP水平分割规则。

解决方案:

  • 构建全联的IBGP对等体关系

    • 当AS内部设备数量过多时,IBGP邻居关系呈指数增长,而IBGP邻居一般使用非直连方式建立邻居,也就导致数据的传输需要依靠物理链路,故全联建邻会占用大量的链路资源。并且路由器需要维护大量的TCP和BGP连接,需要消耗大量设备资源。

    • 网络扩展性差。

  • 打破IBGP水平分割机制。

    • 该规则无法关闭。

    • 联邦:将IBGP路由变成EBGP

    • 路由反射器:强制让IBGP反射出去信息

BGP的路由黑洞

BGP同步更新规则---为了避免BGP路由黑洞问题

当一台路由器从自己的IBGP对等体学习到一条BGP路由时,它将不能使用该条路由或者把该路由通告给自己的EBGP对等体。除非它又从IGP协议学习到相同的路由信息,也就是要求IBGP路由与IGP路由同步

在华为数通产品上,BGP同步更新规则,默认关闭,且不允许打开BGP同步更新规则。---cisco默认关闭,但可以打开

image-20221011200405944

由于BGP协议可以非直连建邻,所以导致BGP协议可能出现跨越未运行BGP协议的设备,导致BGP路由传递后,控制层面显示为可达。但是,数据层面,流量在流经未运行BGP协议的设备时,无法通过,形成路由黑洞。

解决思路:

  • 物理或逻辑拓扑全联。

  • 让未运行BGP协议的设备运行BGP协议

  • 在IGP协议中,引入BGP路由信息。

  • MPLS----多协议标签交换

BGP基本配置

image-20231118145025649

使用直连接口IP地址建立EBGP对等体关系
<span style="background-color:#f8f8f8"><span style="color:#333333">1、启动BGP协议
[r1]bgp 100  ----该数字为AS号,而非进程号。
2、设置RID值
[r1-bgp]router-id 1.1.1.1   全网唯一
3、配置BGP对等体,并指定对等体所在AS号
[r1-bgp]peer 12.0.0.2 as-number 200  ---BGP协议需要手工指定邻居,且需要指定邻居所在AS编号,且该指定方式必须是双向的。</span></span>

[r1]display bgp peer ---查看BGP邻居表

image-20231118145700611

IGBP对等体关系的建立

在实际工程中,一个AS的内部正常具有较为复杂的网络拓扑结构,设备到设备之间存在大量的备份链路和负载均衡链路,因此,建立IBGP邻居关系时,建议使用双方的环回接口来作为源/目IP地址

<span style="background-color:#f8f8f8"><span style="color:#333333">[r2]bgp 200
[r2-bgp]peer 3.3.3.3 as-number 200
​
[r3]bgp 200
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2.2.2.2 as-number 200</span></span>

手工建立邻居关系时,所指定的建邻的IP地址必须和收到的数据包中的源IP地址相同才能正常建立邻居关系。否则,邻居关系建立失败

<span style="background-color:#f8f8f8"><span style="color:#333333">解决方式:
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0</span></span>

BGP会话的建立仅仅是依靠TCP会话,而并没有对这个TCP会话建立的方式有任何要求,该TCP会话是由谁发起的,谁是客户端,谁是服务端并不影响BGP对等体的建立

在BGP中,TCP会话建立两次是完全多余的。故修改一端的源报文IP也可以正常完成BGP会话建立。一般会将两端均进行修改,做连接的备用使用

使用环回地址IP建立EBGP对等体关系
<span style="background-color:#f8f8f8"><span style="color:#333333">[r4-bgp]peer 5.5.5.5 as-number 300
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
​
[r5]bgp 300
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 200
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0</span></span>

在EBGP对等体之间使用环回建立邻居时,必须保证拥有双方的环回路由信息。

<span style="background-color:#f8f8f8"><span style="color:#333333">[r4]ip route-static 5.5.5.5 32 45.0.0.5
[r5]ip route-static 4.4.4.4 32 45.0.0.4</span></span>

在此时,邻居间会发生对等体震荡,原因在于双方已经建立了TCP连接,并建立了BGP会话,从而来到了establish状态,但在该状态中,因为TTL值为1,本地会感知此时不应该处于establish状态,故发送notification报文从而释放会话关系

<span style="background-color:#f8f8f8"><span style="color:#333333">[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
[r5-bgp]peer 4.4.4.4 ebgp-max-hop 2
如果未标明数值,则代表将TTL值修改为最大255</span></span>

BGP的路由发布过程

通过network命令发布路由

对于BGP而言,只要是路由表中存在的路由信息都可以通过该命令发布

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-bgp]network 1.1.1.1 32  ----目标网络号和掩码信息,两个参数必须与全局路由表中的内容相同。</span></span>

[r1]display bgp routing-table ----查看BGP路由表。

NextHop----谁发送的路由信息,则下一跳字段就写谁(实际上写的是update报文中的源IP);如果是自己始发的路由信息,则下一跳写0.0.0.0。

状态码

*----代表可用-----设备收到路由条目后,会根据下一跳属性中的参数来查找本地路由表,检测该条路由信息的可用性,如果下一跳属性可达,则本条路由可用。---如果不可用,则该路由忽略。

>----代表优选----当收到多条到达相同网段的路由信息时,并且都可用,则将依据属性在其中选择最优的路由作为优选者,优选路由可以加入到全局路由表并进行路由传递。

i-----代表该路由是从IBGP对等体学习到的

BGP协议在传递路由信息时,只有该路由信息可用且优时,才可以进行传递

华为将BGP协议的路由信息优先级设定为255

因为AS-BY-AS规则,认为一个AS是一个整体,那么路由项在一个整体内部传递时,所有的路径属性都应该是相同的,否则就不是一个整体。而下一跳也是路径属性之一,默认情况下无法修改,故导致路由可用性校验失败。

<span style="background-color:#f8f8f8"><span style="color:#333333">解决方案:
[r2-bgp]peer 3.3.3.3 next-hop-local  ---将传递给3.3.3.3邻居的路由信息中的下一跳属性修改为本地。该命令仅在IBGP对等体关系中修改。</span></span>

总结配置逻辑

  1. 完成所有路由器的IGP配置

  2. 使用直连接口建立EBGP对等体关系

  3. 使用环回接口建立IBGP对等体关系

  4. 使用connect-interface命令修改IBGP建邻源IP地址

  5. 使用next-hop-local命令修改路由传递时的下一跳属性

  6. 若存在使用环回接口建立EBGP对等体关系,则需要建立通讯条件,并使用ebgp-max-hop命令修改TTL值。

通过重发布的方式发布路由
<span style="background-color:#f8f8f8"><span style="color:#333333">[r2-bgp]import-route ospf 1  ---通过重发布的方式引入路由信息</span></span>

Ogn----起源码属性----在标识本条路由信息的起源。

  • i----代表本条路由信息起源于AS内部使用network命令通告出来。

    • 该路由信息的来源为IGP协议、静态路由、直连路由。

  • e----代表本条路由信息起源于EGP协议---现在几乎看不到

  • ?---除了以上两种方式,其他方式获取的路由信息都是?

BGP路由聚合

自动聚合

image-20231120191833022

该方式仅针对于重发布的路由信息生效

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1]ip ip-prefix aa permit 172.16.1.0 24
[r1]ip ip-prefix aa permit 172.16.2.0 24
[r1]ip ip-prefix aa permit 172.16.3.0 24
​
[r1]route-policy aa permit node 10
[r1-route-policy]if-match ip-prefix aa
​
[r1-bgp]import-route direct route-policy aa</span></span>

华为默认关闭自动汇总功能

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-bgp]summary automatic   ----开启自动汇总</span></span>

自动聚合功能开启后,本地会生成一条指向空接口的汇总网段路由,且该路由信息的来源为IBGP。然后本地将该路由信息传递给自己的BGP邻居,且传递时不携带掩码信息

状态码s----代表本条路由信息被抑制,被抑制的路由信息将不会再加表或传递

自动汇总特点

  1. 自动聚合将直接把明细路由汇总到主类网段

  2. 仅对于重发布的路由条目生效

  3. 会抑制明细路由

  4. 会在始发路由器生成一条指向空接口的汇总路由进行防环

  5. 聚合成功后,在始发路由器中,该路由的下一跳为本地127.0.0.1

自治系统----AS:由一个单一的机构或者组织所管理的一系列IP网络及其设备所构成的集合

AS划分的原因:如果网络太大,路由数量进一步增加,路由表规模变得太大,会导致路由收敛速度变慢,设备性能消耗加大,且全网设备对于路由信息的认知不同,造成流量通讯障碍

AS号:16位AS号,其取值范围:1-65534(0,65535保留)

RFC4893标准中,支持16bitAS向32bitAS过滤,新增23456作为保留

BGP基础

在当前IPV4环境下,主要使用BGPv4版本;但目前市场上还存在BGPv4+版本

BGP基础:

1.RIP基于UDP进行数据传输,而UDP是不可靠协议,传输中会丢失

2.RIP协议更新报文的发送时间是30s,

k

可控性:

重发布因为度量值的原因,可能会出现选路不佳的情况。而BGP为了弥补这个不足,舍弃了开销值,取而代之的是设计了很多的路径属性。BGP通过这些路径属性来控制路径选择,从而干涉选路。

可靠性:BGP因为只有触发更新,而不存在周期更新,所以需要确保可靠性机制。端口号179

认证:BGP支持认证和聚合

1.认证类型

2.认证数据

在TCP去写:因为BGP头部已经固定,19字节不能在加了,那么就在TCP的可选字段加

BGP也可以进行认证,认证口令不同,则导致邻居建立失败

该字段存储在TCP的可选项字段----永远以MD5形式存储

路由刷新功能-------route-refrish

keepalive包

主要作用进行周期保活,用来临时充当确认保活

该报文没有报文字段,仅仅具有BGP头部信息。----大小19字节

Update包---更新包

作用:用于在对等体之间传递路由信息,可以用于发布,撤销路由

传送目标网络号,路径,撤销路由字段

LSA:传送掩码开销

Notification 报告错误信息,中止对等体关系----可以用在BGP启动的任意时刻

BGP状态机角色:speaker:

BGP将邻居建立和BGP路由收发过程分开了

IGP宣告1.激活接口2.发送路由

idle开始准备TCP连接,为BGP打基础
Connect正式进行TCP连接,等待完成中,认证都是在TCP建立期间完成。
  • Idle---空闲状态
  • 所有设备启动BGP进程后首先进入该状态。
  • 原因在于BGP需要手工指定邻居,在BGP进程启动后就会进入该进程,然后等待手工指定邻居

Connect状态---连接状态

正在进行TCP会话

在该状态下,会开启一个连接重传定时器---32秒

Opensent状态

发出本地的open报文

同时,会收到对方发送的open报文

BGP工作过程:

IGP协议或者静态路由实现全网IP可达

启动BGP协议,并指定邻居关系

1.邻居之间单播传输

2.

使用OPEN和keeplive

使用update传递路由信息。信息中将携带目标网络号,掩码及路由信息,之后设备会将已发送的BGP记录到BGP表中

将BGP表最优的路由信息加载到全局路由表

收敛完成后,周期发送时间默认为保活时间1/3

如果出现错误,将使用notification报文进行告警

如果出现结构突变,使用update进行增量更新

idle:

BGP防环:

BGP水平分割机制:

EBGP水平分割:依靠AS—PATH属性,该属性记录了路由信息在控制层面传递时经过的所有AS区域的编号。接收者根据

IBGP水平分割

network宣告不能宣告汇总在BGP里,用的重发布

通过重发布的方式发布路由

[r2-bgp]import-router ospf 1

Ogn---起源码属性---在标识本条路由信息的起源

i---代表本地路由信息起源于AS内部使用的network命令通告出来

e---代表本条路由起源于EGP协议

?---

BGP路由聚合

自动聚合

手工聚合

华为默认关闭自动汇总功能

summary automatic

自动聚合功能开启后,本地会生成一条指向空接口

 自动汇总特点:

1.将直接把明细路由汇总到主类网段

2.仅对于重发布的路由条目生效

3.会抑制明细路由

4.会在始发路由器生成一条指向空接口的汇总路由进行防环

手工汇总

[r3-bgp]aggregate 172.16.0.0 20  ---手工聚合

强关联机制:

路由反射器场景下的防环

在一个AS内部,可能会存在多个

RR的设定会导致IBGP水平分割机制失效,导致环路产生,为此BGP添加了两个

当一条BGP路由被路由反射器反射给其他路由器时,如果该条路由已经携带了Originator-ID属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/188453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

paho mqtt的keepAliveInterval

一、keepAliveInterval 所用的版本为1.3.12 实验一、 这个值设置的30&#xff0c;打开mqtt的trace&#xff0c;发现每隔33s发送一次pingreq note&#xff1a; 期间&#xff0c;client和server一直保持qos0的消息交互&#xff08;client->server&#xff09; 实验二、 …

activiti流程回退与跳转

学习连接 【工作流Activiti7】3、Activiti7 回退与会签 【工作流Activiti7】4、Activiti7 结束/终止流程 Activiti-跳转到指定节点、回退 ativiti6.0 流程节点自由跳转实现、拒绝/不同意/返回上一节点、流程撤回、跳转、回退等操作&#xff08;通用实现&#xff0c;亲测可用…

1panel可视化Docker面板安装与使用

官网地址1Panel - 现代化、开源的 Linux 服务器运维管理面板 文章目录 目录 文章目录 前言 一、环境准备 二、使用步骤 1.安装命令 2.一些命令 3.使用 总结 前言 一、环境准备 虚拟机centos 已经安装好docker和 Docker Compose 或者都没安装 1panel会帮你自动安装 二、使用…

使用YOLOV8 CLI训练自己的数据集

YOLOV8现在可以直接通过命令行工具运行训练, 推理过程了, 方法如下, 首先安装ultralytics的包: pip install ultralytics接着尝试使用yolov8n来简单做个推理: yolo taskdetect modepredict modelyolov8n.pt conf0.25 sourcesome_picture.jpeg接下来我们使用一个安全防护, 包括…

【SpringCloud】设计原则之单一职责与服务拆分

一、设计原则之单一职责 设计原则很重要的一点就是简单&#xff0c;单一职责也就是所谓的专人干专事 一个单元&#xff08;一个类、函数或微服务&#xff09;应该有且只有一个职责 无论如何&#xff0c;一个微服务不应该包含多于一个的职责 职责单一的后果之一就是职责单…

【数据结构实验】图(二)将邻接矩阵存储转换为邻接表存储

文章目录 1. 引言2. 邻接表表示图的原理2.1 有向权图2.2 无向权图2.3 无向非权图2.1 有向非权图 3. 实验内容3.1 实验题目&#xff08;一&#xff09;数据结构要求&#xff08;二&#xff09;输入要求&#xff08;三&#xff09;输出要求 3.2 算法实现 4. 实验结果 1. 引言 图是…

软件测试 | MySQL 主键约束详解:保障数据完整性与性能优化

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析模拟实现

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; 啊森要自信的主页 ✏️真正相信奇迹的家伙&#xff0c;本身和奇迹一样了不起啊&#xff01; 欢迎大家关注&#x1f50d;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;>希望看完我的文章对你有小小的帮助&am…

Keil5个性化设置及常用快捷键

Keil5个性化设置及常用快捷键 1.概述 这篇文章是Keil工具介绍的第三篇文章&#xff0c;主要介绍下Keil5优化配置&#xff0c;以及工作中常用的快捷键提高开发效率。 第一篇&#xff1a;《安装嵌入式单片机开发环境Keil5MDK以及整合C51开发环境》https://blog.csdn.net/m0_380…

⑧【HyperLoglog】Redis数据类型:HyperLoglog [使用手册]

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Redis HyperLoglog ⑧Redis HyperLoglog基本操…

如何把自己银行卡里的钱转账充值到自己支付宝上?

原文来源&#xff1a;https://www.caochai.com/article-4524.html 支付宝余额是支付宝核心功能之一&#xff0c;主要用于网购支付、线下支付、转账等场景。用户可以将银行卡、余额宝等资金转入或转出至支付宝余额&#xff0c;实现快速转账和支付。 如何把自己银行卡里的钱转账…

用Python进行数据分析:探索性数据分析的实践与技巧(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

停车管理系统

1 用户信息管理 2 车位信息管理 3 车位费用设置 4 停泊车辆查询 5 车辆进出管理 6 用户个人中心 7 预定停车位 8 缴费信息 9 业务逻辑详解 1 用户停车&#xff1a;user用户登录&#xff0c;在预定停车位菜单&#xff0c;选择一个车位点击预定即可 2 车辆驶出&#xff1a;admin…

【数据结构实验】排序(二)希尔排序算法的详细介绍与性能分析

文章目录 1. 引言2. 希尔排序算法原理2.1 示例说明2.2 时间复杂性分析 3. 实验内容3.1 实验题目&#xff08;一&#xff09;输入要求&#xff08;二&#xff09;输出要求 3.2 算法实现3.3 代码解析3.4 实验结果 4. 实验结论 1. 引言 排序算法在计算机科学中扮演着至关重要的角色…

Python武器库开发-前端篇之CSS元素(三十二)

前端篇之CSS元素(三十二) CSS 元素是一个网页中的 HTML 元素&#xff0c;包括标签、类和 ID。它们可以通过 CSS 选择器选中并设置样式属性&#xff0c;以使网页呈现具有吸引力和良好的可读性。常见的 HTML 元素包括 div、p、h1、h2、span 等&#xff0c;它们可以使用 CSS 设置…

王者农药小游戏

游戏运行如下&#xff1a; sxt Background package sxt;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\24465\\D…

图的邻接矩阵,邻接表的C语言实现(408真题)

图的邻接矩阵 数据结构定义 #define MAXV 50;//顶点数目的最大值 typedef struct{int vex[MAX]; //顶点表 int edge[MAXV][MAXV]; //邻接矩阵 int edgeNum,vexNum; //图中实际的边数和顶点数 }MGraph;初始化 void Matrix_Init(MGraph *Mgraph) {int v1, v2;//存储有边的…

【极客技术】真假GPT-4?微调 Llama 2 以替代 GPT-3.5/4 已然可行!

近日小编在使用最新版GPT-4-Turbo模型&#xff08;主要特点是支持128k输入和知识库截止日期是2023年4月&#xff09;时&#xff0c;发现不同商家提供的模型回复出现不一致的情况&#xff0c;尤其是模型均承认自己知识库达到2023年4月&#xff0c;但当我们细问时&#xff0c;Fak…

【Linux】指令详解(三)

目录 1. 前言2. 常见指令2.1 重定向2.1.1 >2.1.2 >>2.1.3 < 2.2 与文件有关指令2.2.1 more2.2.2 less &#xff08;推荐使用&#xff09;2.2.3 head2.2.4 tail2.2.5 wc2.2.6 | 2.3 find2.4 grep 3. 时间相关的指令3.1 data3.2 时间戳3.3 cal 4. zip/unzip 1. 前言 …

【LeetCode】挑战100天 Day16(热题+面试经典150题)

【LeetCode】挑战100天 Day16&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-182.1 题目2.2 题解 三、面试经典 150 题-183.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&…