0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BGP知识点总结

网络技术干货圈 来源:网络技术干货圈 2023-04-10 10:42 次阅读

一、BGP的宣告问题:

1、若通过BGP协议传递的路由条目与本地通过其他协议学习到的条目目标一致,将出现:

(1)该路由同时作为与其他BGP邻居建立邻居关系时的底层路由,那么这条BGP路由将不优,不能传递也不能加表

(2)该路由不作为建立其他BGP邻居的路由,将在本地不加表,但可以传递,属于优的路由;

fee9cee8-d5f9-11ed-bfe3-dac502259ad0.png

例:

(1)R2与R3运行了OSPF,之后R2学习到的R3的32位环回主机路由,再将R2与R3建立BGP的邻居关系;

(2)之后R3在BGP协议中宣告了32位的环回路由,那么该条目到达R2后,将不优; --BGP的建邻路由与BGP的传递路由相同;

(3)在R2与R3建立邻居关系时,ospf将R3环回以32位传递,但BGP使用24位来传递该环回路由的话,那么等于BGP建邻为32位,bgp传递为24位,不是同一条路由,可以优,可以传递,也可以加表。

注:以上问题在华为设备将出现,但cisco中若bgp传递路由在本地路由表中已经通过其他IGP拥有,将被标记为r-RIB 不装载—本地不加表,但可以传递;

2、在BGP协议中进行宣告时,是宣告本地路由表中任意路由,不关注这些条目的产生方式;

默认将携带这些路由的cost值到BGP的路由条目中去;若本地将本地宣告的BGP路由传递给本地的EBGP邻居,将携带这些cost,便于本地的EBGP邻居所在AS内部设备选路,当然该路由在进入其他AS时不会修改度量;

若本地通过IBGP邻居学习到了BGP路由,优且存在cost值,在本地将这些路由传递给本地的EBGP邻居时,将cost值归0,因为这些度量不是本地产生的。

例:

(1)R2与R1为EBGP邻居,那么R2宣告本地通过OSPF协议学习到的路由4.4.4.4/32度量为2,那么这条路由在进入BGP表时携带度量值2,传递给R1,R1在路由表中显示该度量,同时传递给R1内部AS时度量不变;

(2)该拓扑中R2与R4为IBGP邻居,这条BGP路由也会被R2传递给R4,但R4 再将该路由传递给R4的EBGP邻居关系R5时,将度量归0;

(3)若R4也宣告4.4.4.4/32这条路由,那么传递给R5时将携带R4到达该网段的cost值,因为只有本地最优路由可以传递,本地宣告优于其他邻居传递过来的BGP路由。

总结:

存在EBGP邻居关系(连接其他的AS)的所有BGP设备均建议宣告内部AS的路由;

二、重发布

BGP协议宣告的路由,基本是本地通过IGP学习到的本as路由;数量较大,若逐条宣告,配置量很大,但可控性强; 也可以在同时运行BGP和igp的设备,将IGP协议重发布到BGP协议中,来实现批量的路由宣告效果;

宣告相当于逐条的重发布,重发布相当于批量的宣告;两者产生的路由条目,起源属性不同,其他属性默认完全一致;

总结:

存在EBGP邻居关系(连接其他的AS)的所有BGP设备均建议重发布IGP到BGP;

三、自动汇总

默认cisco和华为设备均关闭了自动汇总

自动汇总对于BGP正常通过network宣告产生的路由没有影响;

仅针对从IGP重发布到BGP的路由条目产生影响;--- 路由条目以主类长度发送,不携带cost值;

[r1]bgp1

[r1-bgp]summaryautomatic开启自动汇总,建议维持默认关闭状态

四、手工汇总—聚合

fee9cee8-d5f9-11ed-bfe3-dac502259ad0.png

1、 利用了BGP的宣告的特点,本地路由表中任意路由,不关注来源均可以宣告到BGP中;

不用逐一宣告明细路由,先本地手工静态一条指向汇总网段的空接口防环路由,然后再将其宣告到BGP协议中来;从IGP表中宣告到BGP协议中的条目,仅携带目标网络号和度量值;

例:先在R1上手写两条环回路由分别为 99.1.1.1/24 和 99.1.2.1/24,再将两条路由汇总网段指向空接口,然后将网段宣告到BGP协议中。

ff1a7b06-d5f9-11ed-bfe3-dac502259ad0.png

在R2上查看:

ff2a6b38-d5f9-11ed-bfe3-dac502259ad0.png

聚合的缺点是将多个网络号合成一个,导致访问整个聚合网段时,仅存在唯一的路径;

若在多路径建邻的前提下,将无法精确的选路;故在大型的多链路的网络中为了更好控制选路,必然在传递聚合条目的同时,再在最佳路径处传递部分的明细路由。

若需要在传递聚合条目的同时,传递部分明细路由,只需要在宣告的空接口路由后,逐一宣告需要的明细路由即可。

以上做法的缺点是:不能携带原有明细路由的cost值,因为宣告的是本地路由表中人为添加那条静态空接口路由。

2、 标准的BGP路由聚合—先逐一手工宣告明细,或批量重发布路由;再进行聚合配置,默认在本地生成空接口防环路由

[r1-bgp]aggregate99.1.0.022聚合和所有明细路由均发送

[r1-bgp]aggregate99.1.0.022detail-suppressed抑制所有的明细路由,仅发送聚合条目
ff3cad3e-d5f9-11ed-bfe3-dac502259ad0.png

如果直接配置聚合和所有明细路由,在R2上查看:

ff493f72-d5f9-11ed-bfe3-dac502259ad0.png

会发现聚合和所有明细路由均会被传递,也意味着所有明细路由会被加表

如果在聚合路由后边加上抑制明细:

ff538202-d5f9-11ed-bfe3-dac502259ad0.png

然后查看R1的BGP表,发现所有明细均被抑制

ff676538-d5f9-11ed-bfe3-dac502259ad0.png

查看R2的BGP表:往下只发送聚合路由

ff7e7f98-d5f9-11ed-bfe3-dac502259ad0.png

使用该方法配置聚合会在该路由器R1上自动生成一条汇总网段指向空接口的放环路由

ff92f338-d5f9-11ed-bfe3-dac502259ad0.png

以上操作方法:若需要在发送聚合条目的同时携带部分的明细路由,需要使用策略

五、路由控制

fee9cee8-d5f9-11ed-bfe3-dac502259ad0.png

1、 抑制列表

抑制列表——默认传递所有明细和聚合条目,通过抑制列表,限制不需要传递的明细路由。

如果只抑制 99.1.2.1/24 这条路由,首先抓取路由

[r1]ipip-prefixapermit99.1.2.124

[r1]route-policyaapermitnode10

[r1-route-policy]if-matchip-prefixa

进入BGP协议并做策略抑制该路由

[r1]bgp1

[r1-bgp]aggregate99.1.0.022suppress-policyaa在传递聚合条目的同时,抑制99.1.2.1/24这一条明细,其他明细正常转发
ffd07c94-d5f9-11ed-bfe3-dac502259ad0.png

在BGP协议中进行匹配抑制目标路由

ffe7d0ce-d5f9-11ed-bfe3-dac502259ad0.png

查看R1的BGP表:只有目标路由被抑制

fffed2b0-d5f9-11ed-bfe3-dac502259ad0.png

查看 R2的BGP表:被抑制的路由并没有往下传递

00213508-d5fa-11ed-bfe3-dac502259ad0.png

2、使用路由策略在邻居间直接进行收发路由的管理

[r1]ipip-prefixwpermit99.1.2.124

[r1]route-policywwdenynode10

[r1-route-policy]if-matchip-prefixw

[r1-route-policy]q

[r1]route-policywwpermitnode20



[r1]bgp1

[r1-bgp]aggregate99.1.0.022

[r1-bgp]peer12.1.1.2route-policyqqexport

抓取目标路由并在路由策略中进行抑制

004140d2-d5fa-11ed-bfe3-dac502259ad0.png

然后做一个空表放过所有:

005e90a6-d5fa-11ed-bfe3-dac502259ad0.png

进入BGP中宣告聚合条目并在邻居出口的方向执行该路由策略:

00788902-d5fa-11ed-bfe3-dac502259ad0.png

R2上查看BGP表:目标路由被抑制

00944ba6-d5fa-11ed-bfe3-dac502259ad0.png

3、 直接使用前缀列表来实现方法的功能

[r1]ipip-prefixedeny99.1.2.124

[r1]ipip-prefixepermit0.0.0.00le32

[r1]bgp1

[r1-bgp]peer12.1.1.2ip-prefixeexport

使用前缀列表拒绝目标路由并允许所有路由:

00b85ff0-d5fa-11ed-bfe3-dac502259ad0.png

在BGP协议中的邻居出口的方向执行该前缀列表策略

00cb93c2-d5fa-11ed-bfe3-dac502259ad0.png

在R2上查看BGP表

00df428c-d5fa-11ed-bfe3-dac502259ad0.png

六、有条件的打破IBGP水平分割

IBGP水平分割,用于避免在一个AS内部由IBGP邻居间产生的环路;

规则:从一个iBGP邻居处学习到的BGP路由不能传递给下一个IBGP邻居;因为BGP的非直连建邻能力,因此可以在一个AS内部建立多个邻居来实现连接关系备份的作用;故正常一台设备只要运行bgp,那么应该处于AS的边界,存在ebgp邻居;

所有运行bgp协议的设备正常都会从其他AS学习到路由条目,然后共享到本地所在的AS,由于IBGP水平分割,导致本地需要和所有AS内部的BGP设备建立IBGP邻居关系;

IBGP邻居关系的数量成指数上升;

所谓有条件的打破是指在打破IBGP水平分割的时候,不能产生环路;--AS-BY-AS

1. 路由反射器 -- RR(反射器)、客户端、非客户端;

客户端、非客户端必须分别为RR的IBGP邻居关系;三种角色构建为一个簇(组);

一个簇内可以存在多台设备,但至少一个簇内存在一个RR和一个客户端;

规则:

1)RR从一台EBGP邻居处学习到的路由可以共享给本地的其他客户端、非客户端、EBGP邻居;

2)RR从一台客户端邻居处学习到的路由可以共享给本地的其他客户端、非客户端、EBGP邻居;

3)RR从一台非客户端邻居处学习到的路由可以共享给本地的其他客户端、EBGP;不能共享给其他的非客户端;

注: 被反射路由,在反射过程中,其属性不发生任何变化;若RR接收的条目不优,不具备传递性,将不被反射;

00fab418-d5fa-11ed-bfe3-dac502259ad0.png

在上边拓扑图中,将R3作为反射器,R2作为它的客户,再R3上配置下边一条命令即可

[r3-bgp]peer 2.2.2.2 reflect-client ibgp邻居2.2.2.2成为本地的客户端,同时本地成为RR

然后将R1环回路由宣告,查看路由的传递:

011da1bc-d5fa-11ed-bfe3-dac502259ad0.png0139f9ca-d5fa-11ed-bfe3-dac502259ad0.png

可以看到R3作为RR可以将IBGP学到的路由传给R4和R5

在拓扑图中,R4和R5均为非客户,如果将R4环回宣告看一下效果:

015ae040-d5fa-11ed-bfe3-dac502259ad0.png017e28b6-d5fa-11ed-bfe3-dac502259ad0.png

019c92ec-d5fa-11ed-bfe3-dac502259ad0.png01c37ff6-d5fa-11ed-bfe3-dac502259ad0.png

可以看到只有R5不能学到R4宣告的路由,因为非客户之间是不能传递路由的

2. 联邦---将一个大as逻辑分为多个小as;小AS使用私有AS号,小AS间为联邦内的ebpg邻居关系,可以像EBGP一样传递路由,但不能修改属性; 对于联邦外的AS,只能看到大AS号;

所有的启动,建邻、管理均基于小AS号进行

联邦内所有设备需要声明自己所在的大AS号

小AS间的ebgp邻居需要互指对端的小as号

01e26cea-d5fa-11ed-bfe3-dac502259ad0.png

[r3]bgp64512

[r3-bgp]router-id3.3.3.3

[r3-bgp]confederationid2声明本地的大AS号

[r3-bgp]confederationpeer-as64513对端小AS号

[r3-bgp]pe2.2.2.2as-number64512

[r3-bgp]pe2.2.2.2connect-interfaceLoopBack0

[r3-bgp]pe4.4.4.4as-number64513

[r3-bgp]pe4.4.4.4connect-interfaceLoopBack0

[r3-bgp]pe4.4.4.4ebgp-max-hop2

查看配置(R2-R5):

R2:

02080734-d5fa-11ed-bfe3-dac502259ad0.png

R3:

02222506-d5fa-11ed-bfe3-dac502259ad0.png

R4:

023d8bb6-d5fa-11ed-bfe3-dac502259ad0.png

R5:

025ead8c-d5fa-11ed-bfe3-dac502259ad0.png

注: 在实际工程中,路由器反射器与联邦技术是结合在一个拓扑中共同使用的。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 路由器
    +关注

    关注

    22

    文章

    3500

    浏览量

    111342
  • OSPF协议
    +关注

    关注

    0

    文章

    17

    浏览量

    9325
  • BGP
    BGP
    +关注

    关注

    0

    文章

    80

    浏览量

    15221
  • 反射器
    +关注

    关注

    0

    文章

    45

    浏览量

    12172

原文标题:BGP 知识点总结,网络工程师收藏!

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【信盈达】C语言知识点总结

    一、嵌入式C/单片机C/标准C知识点知识点1:嵌入式C、标准C、单片机C区别知识点2:程序组成和程序原则知识点3:变量类型(函数、数组、指针、结构体等类型)知识点4:常用的运算符和关系
    发表于 10-08 14:41

    神经网络DNN知识点总结

    DNN:关于神经网络DNN的知识点总结(持续更新)
    发表于 12-26 10:41

    场效应管知识点总结

    的设计这两章节。问了一些为什么,最终也搞清楚了一些知识点,特在此分享一下!FET知识点总结.pdf (162.96 KB )
    发表于 08-12 04:36

    NFC技术基础知识点总结的太棒了

    RFID频段有什么应用?NFC技术基础知识点总结的太棒了
    发表于 05-21 06:57

    微型计算机原理及应用知识点总结

    微型计算机原理及应用知识点总结
    发表于 07-16 07:51

    单片机期末知识点总结

    单片机期末知识点总结,单片机期末复习临近期末,单片机复习没有头绪,怎么办?一个字,背。但是,背要有背的方法,干背是很头痛也很难的,所以,我总结了一部分思路帮助大家,希望能帮助大家。根据参考教材顺序,分为以下几个内容:一、单片机绪
    发表于 07-16 08:34

    单片机的知识点总结

    单片机的知识点总结,按键没有按下的时候是高电平,按下时低电平。(接地)当型循环,输入空语句可以停止整个主程序的循环。 STM32小说明1、数据手册标注FT的IO口,都是兼容5V。有ADC都不...
    发表于 07-21 07:14

    关于C++的知识点总结的太棒了

    关于C++的知识点总结的太棒了
    发表于 10-11 08:12

    关于电机与拖动的知识点总结的太棒了

    关于电机与拖动的知识点总结的太棒了
    发表于 10-20 07:34

    C语言程序小知识点总结

    C语言总结(stm32嵌入式开发)文章目录C语言总结(stm32嵌入式开发)c程序小知识点总结1.静态变量static与外部变量extern的使用2.函数封装后返回值的方法3.软件寄存
    发表于 11-05 07:45

    UCOSIII的基础知识点汇总,总结的太棒了

    UCOSIII的基础知识点汇总,总结的太棒了
    发表于 11-30 07:22

    关于程序变量和内存分配的知识点总结

    属于C语言方面非常基础的知识,但是工作中一不小心还是会发生一些内存泄漏、内存溢出之类的问题。所以自己对这块的理解也还远远不够。在这总结一下关于这方面的知识点,用来互相学习,更用来提醒自己,并作为自己的一...
    发表于 02-28 07:03

    高一数学知识点总结

    高一数学知识点总结高一数学知识点总结高一数学知识点总结
    发表于 02-23 15:27 0次下载

    高二数学知识点总结

    高二数学知识点总结高二数学知识点总结高二数学知识点总结
    发表于 02-23 15:27 0次下载

    嵌入式知识点总结

    嵌入式知识点总结(arm嵌入式开发led过程)-嵌入式知识点总结                    
    发表于 07-30 14:20 23次下载
    嵌入式<b class='flag-5'>知识点</b><b class='flag-5'>总结</b>