「BGP」BGP的同步规则

Posted by Zhy on February 1, 2020

BGP同步规则实验

配置展示

184GcT.md.png

Router1配置

1
2
3
4
5
6
7
R1(config)# int l1
R1(config-if)# ip add 1.1.1.1 255.255.255.0
R1(config)# int e0/0
R1(config-if)# ip add 12.1.1.1 255.255.255.0
R1(config)# router bgp 10
R1(config-router)# network 1.1.1.0 mask 255.255.255.0
R1(config-router)# neighbor 12.1.1.2 remote-as 10

Router2配置

1
2
3
4
5
6
7
8
9
10
11
R2(config)# int l1
R2(config-if)# ip add 2.2.2.2 255.255.255.0
R2(config)# int e0/0
R2(config-if)# ip add 12.1.1.2 255.255.255.0
R2(config)# int e0/1
R2(config-if)# ip add 23.1.1.2 255.255.255.0
R2(config)# router bgp 10
R2(config-router)# synchronization
R2(config-router)# network 2.2.2.0 mask 255.255.255.0
R2(config-router)# neighbor 12.1.1.1 remote-as 10
R2(config-router)# neighbor 23.1.1.3 remote-as 20

Router3配置

1
2
3
4
R3(config)# int e0/0
R3(config-if)# ip add 23.1.1.3 255.255.255.0
R3(config)# router bgp 20
R3(config-router)# neighbor 23.1.1.2 remote-as 10

按照如上配置之后,R3的路由表将会出现只有2.2.2.0网段的路由信息。并不会收录1.1.1.0的信息,这是因为BGP的同步规则所限制,防止出现路由黑洞的。

结论:

1、同步规则的定义:

在BGP同步打开的情况下,一个BGP路由器不会把那些通过IBGP邻居学到的BGP路由通告给自己的EBGP邻居;除非自己的IGP路由表中存在这些路由,才可以通告给EBGP路由器。

在本次的实验过程中,充当 ”一个BGP路由器“ 的是我们的R2,R2不会将他的IBGP邻居R1的路由条目1.1.1.0网段信息发给自己的EBGP邻居R3,这就是被同步规则所限制(我R2开启了syn,这个就是开启同步功能)。

2、BGP同步规则的目的:

为防止一个AS(不是所有的路由器都运行BGP)内部出现路由黑洞,随后向外部通告了一个本AS不可达的虚假的路由。

3、BGP同步规则的基本需求

如果一个AS内部存在非BGP路由器,俺么就出现了BGP和IGP的边界,需要在边界路由器将BGP路由发布到IGP中,才能把哦哦正AS所通告到外部的BGP路由,在AS内部是联通的,实际上是要求BGP路由器和IGP路由的同步。

4、满足BGP同步规则的基本需求的结果

如果将BGP路由发布到IGP中, 由于BGP路由主要是来自AS外部的路由(来自internet),那么结果是IGP路由器要维护数以万计的外部路由,对路由器的cpu和内存以及AS内部的链路带宽的占用将带来巨大的开销

5、结论

同步开启的好处:防止IBGP路由内部出现路由黑洞,向外界公布虚假路由。

同步开启的坏处:当BGP和IGP同时存在时,为了保证外界公告的路由是真实的,理论上要求同步。但是,BGP路由主要来自互连网,传递的也主要是互联网条目,IGP不能承受数以万计的外部路由。故:一般不建议将BGP路由注入到IGP中。