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

    文章

    3692

    浏览量

    113405
  • OSPF协议
    +关注

    关注

    0

    文章

    17

    浏览量

    9371
  • BGP
    BGP
    +关注

    关注

    0

    文章

    83

    浏览量

    15301
  • 反射器
    +关注

    关注

    0

    文章

    47

    浏览量

    12223

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

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

收藏 人收藏

    评论

    相关推荐

    嵌入式C语言知识点总结

    怎么才能做好嵌入式开发?学好C语言吧!今天就来推荐一篇大佬写的嵌入式C语言知识点总结
    发表于 09-27 09:53 1159次阅读

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

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

    C语言程序小知识点总结

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

    高一数学知识点总结

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

    高二数学知识点总结

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

    C语言学习入门知识点/干货

    C语言知识点总结
    的头像 发表于 07-18 17:54 5878次阅读
    C语言学习入门<b class='flag-5'>知识点</b>/干货

    Python的知识点总结详细说明

    本文档的主要内容详细介绍的是Python的知识点总结详细说明。
    发表于 09-29 17:13 14次下载
    Python的<b class='flag-5'>知识点</b><b class='flag-5'>总结</b>详细说明

    嵌入式知识点总结

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

    人教版八年级生物下册知识点归纳总结

    人教版八年级生物下册知识点归纳总结
    发表于 09-13 09:14 0次下载

    开关电源模块知识点总结

    开关电源模块知识点总结(现代电源技术基础pdf)-该文档为开关电源模块知识点总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,
    发表于 09-22 13:42 27次下载
    开关电源模块<b class='flag-5'>知识点</b><b class='flag-5'>总结</b>

    嵌入式C语言知识点总结

    导读:怎么做好嵌入式?相信这个问题无论问谁你都会得到一句学好C语言!今天推荐一篇大佬写的嵌入式C语言知识点总结,非常值得一读。
    的头像 发表于 04-13 11:12 2666次阅读

    数字信号处理知识点总结

    数字信号处理知识点总结
    发表于 08-15 15:16 0次下载

    C语言最重要的知识点

    C语言知识点总结.doc
    发表于 02-16 16:37 9次下载

    数字电路知识点总结

    本文整理了数字电路课程中的相关基本的知识点和较为重要的知识点,用于求职的数电部分的知识准备,差缺补漏。
    的头像 发表于 05-30 15:07 4588次阅读
    数字电路<b class='flag-5'>知识点</b><b class='flag-5'>总结</b>

    模拟电子技术知识点问题总结概览

    给大家分享模拟电子技术知识点问题总结
    的头像 发表于 05-08 15:16 1071次阅读
    模拟电子技术<b class='flag-5'>知识点</b>问题<b class='flag-5'>总结</b>概览