BGP同步规则实验
配置展示
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中。