IBGP的水平分隔原则(Split Horizon Rule):
IBGP的水平分割原则:by default,routes learned via IBGP are never propagated to othe IBGP peers;默认情况下对于一个BGP路由器R1来说,从一个IBGP邻居R3那里学到的BGP路由,是不会传递给另外的一个IBGP邻居R2的。(提醒:EBGP是没有这种规则的!!!)
BGP路由反射器RR(Route Reflector):
事实证明:路由反射器就是搞传销地!!!
第一种:来自同一AS内的下线的路由,会反射给所有BGP session:
第二种:非下线的路由会发给自己的下线而不会发送给非下线,但可以发送给其他AS:
第三种:外部来的EBGP路由,可以发给所有本区内的下线和非下线:
LAB8:Part-Mesh IBGP +RR(Router-REfilector):
Step1:
删除R2-R3IBGP Session
删除之前:R2有105.5.0.0/16路由
R3(config-router)#no neighbor 2.2.2.2
R2(config-router)#no neighbor 3.3.3.3
删除之后
IBGP Split Horizon Rule:/IBGP的水平分割原则:
(已完成实验)
IBGP的水平分割原则,
by default,routes learned via IBGP are never propagated to othe IBGP peers.
默认情况下:
对于一个BGP路由器R1来说,从一个IBGP邻居R3那里学到的BGP路由,
是不是传递给另外的一个IBGP邻居R2的
提醒:EBGP是没有这种规则的!!
Step2:解决方法:BGP Route Reflector /RR
在R1上, 定义R2/R3为自己的"路由反射器的客户端"
2-1:
如果使用Peer-group:
R1#neighbor R1-PG route-reflecgtor-client
2-2:
如果没有使用peer-group:
R1(router bgp 123)#
neighbor 2.2.2.2 route-reflector-client
neighbor 3.3.3.3 route-reflector-client
Step3:查看:
问题:在R1上,定义R2为自己的"路由反射器的客户端",但R3不是.
R4能收到105的路由吗?
能!R5能收到114的路由吗?能!
LAB9:联邦(Confederation):
假定:子AS65003/AS65012之间是不运行IGP的、AS65012内部运行的IGP是RIP.
STEP1:删除原来的AS123.重新建AS123
R1/2/3#no router bgp 123
R1#(R2,R3建立IGP)
router rip
version 2
network 1.0.0.0
network 12.0.0.0
no auto-summary
step2:启动新的子AS:
R1/R2#
router bgp 65012
R3#
router bgp 65003
step3:R1/R2/R3指定自己是属于AS123这个联邦
r1/2/3(config-router)#
bgp confederation identifier 123
step4:在两个子AS相邻的边界路由器上,互相指定对方的子AS号
R1(config-router)#bgp confederation peers 65003
R3(config-router)#bgp confederation peers 65012
step5:在联邦中,互相BGP邻居
构建R3-R5之间的EBGP:
R5(config-router)#neighbor 35.0.0.3 remote-as 123
R3(config-router)#neighbor 35.0.0.5 remote-as 150
构建R2-R4之间的EBGP:
R2(config-router)#neighbor 24.0.0.4 remote-as 140
R4(config-router)#neighbor 24.0.0.2 remote-as 123
提醒:在 联邦以外的EBGP邻居,它们能查看到的是联邦的大AS号,而不是子AS号。
R1-R3的联邦EBGP:(联邦子AS间有IGP)
R3:
nei 1.1.1.1 remote-as 65012
nei 1.1.1.1 upd lo 3
nei 1.1.1.1 ebgp-multihop
R1:
nei 3.3.3.3 remote-as 65012
nei 3.3.3.3 upd lo 1
nei 3.3.3.3 ebgp-multihop
R1-R2的联邦IBGP
R1#
nei 2.2.2.2 remote-as 65012
nei 2.2.2.2 upda lo 1
R2#
nei 1.1.1.1 remote-as 65012
nei 1.1.1.1 upda lo 2
step6:宣告BGP路由
宣告104和105进BGP
step7:观察一下BGP的路由的传递
R3上有优化路由
*> 105 5.5.0/24 35.0.0.5
但是由于R1无法通过IGP获得到达35.0.0.0这个网络的路由,所以R1到此路由的 下一跳不可达,从而无法优化。
R1
* 105 5.5.0/24 13.0.0.3
解决办法:
R3(config-router)#neighbor 13.0.0.1 next-hop-self
R1# *>105.5.0.0/16 13.0.0.3
step8:联邦EBGP和普通EBGP的异同点(观察105.5.5.0)
下一跳:
在联邦的子AS中,所有路由器看到的BGP下一跳,都是相邻大AS的边缘节点,而不是本联邦内子AS的下一跳,这是区别与普通EBGP的.
同步:
联邦EBGP和普通EBGP一样,无需考察同步问题.
step9:联邦内的IBGP:(R1-R2)(观察105和104)
R2# *i105.5.0.0/16 13.0.0.3
R1#(config-router)#neighbor 2.2.2.2 next-hop-self
R2
*>i105.5.5.0/24 12.0.0.1 0 100 0 (65003) 150 i
R4#*> 105.5.0.0/16 24.0.0.2
结论:
联邦子AS之间的EBGP的下一跳,不像普通EBGP那样每经过一个AS,都发生改变.
而保留原始的BGP下一跳.
下一跳:
可达,因为两个AS间运行了RIP
同步:
原因是R2从IBGP学到的路由,默认要检查同步
但现在R2不可能通过RIP学到此BGP的路由(指这条路由:i105.1.0.0/16)
Step10:联邦内的同步问题:
R2/R3# no sy
R1(config-router-65012)#sy
R1#show ip bgp (当R1启动"同步")
* i104.4.4.0/24 2.2.2.2 (来自联邦IBGP)
* >105.5.0.0/16 13.0.0.3(来自联邦EBGP)
R2#sh ip bgp
R2#(config-router)#sync
结论:
联邦子AS之间的同步问题:
如果路由来自联邦IBGP,则需要审查同步条件.
如果路由来自联邦EBGP,则不需要审查同步条件.
step11:在两个AS间,无IGP的情况
R3(config)#no router rip
R1(config)#router rip
R1(config-router)#no net 13.0.0.0
手工建立到达对方环回口的静态路由;
R1:ip route 3.3.3.0 255.255.255.0 13.0.0.3
R3:ip route 1.1.1.0 255.255.255.0 13.0.0.1
到此,R1-R3之间的联邦EBGP关系,可以成功建立
但,R2无法通过IGP学到3.3.3.3的路由,所以下一跳不可达.需在R1指next-hop-self
以下是观察BGP的路由的传递:
LAB10:团体(Community)
(相当于一种BGP路由的标识位,常用于标识这条BGP路由应该传播的范围)
step1:通过prefix,定义出特定的BGP路由
R4:
ip prefix-list B-1 seq 5 permit 104.4.0.0/24
ip prefix-list B-2 seq 10 permit 104.4.1.0/24
ip prefix-list B-3 seq 15 permit 104.4.2.0/24
step2:通过route-map,调用前缀列表设定每类路由的community种类
route-map T-R2 permit 10
match ip add prefix B-1
set community no-advertise (do not advertise to any peer/R4通知R2,不要发给任何BGP邻居)
!
route-map T-R2 permit 20
match ip add prefix B-2
set community local-as(Do not send outside local AS/联邦的子AS/小AS)
!
route-map T-R2 permit 30
match ip add prefix B-3
set community no-export(do not export to next AS/联邦的大AS)
!
route-map T-R2 permit 40(match any,set nothing!)
!
step3:在R4上,对R2的BGP路由策略发生,"出方向"的改变
R4(config)#router bgp 140
R4(config-router)#nei 24.0.0.2 route-map T-R2 out
step4:每个BGP路由器,将conmmunity这些标签发送给下一个BGP路由器
每向前走一个BGP Router,就要"send-community"推一下。
在BGP进程中
R4#nei 24.0.0.2 send-community
R2#nei 1.1.1.1 send-community
R1#nei 3.3.3.3 send-community
clear ip bgp *
R2#sh ip bgp community
sh ip bgp community no-advertise
................... local-as
................... no-export
......... 104.4.3.0/24
step5:
如果route-map中,没有最后的那句空的route-map"route-map T-R2 permit 40",
R4向R2通告的bgp路由只有3条:
R4#sh ip bgp neigh 24.0.0.2 advertised-routes
*>104.4.0.0/24
*>104.4.1.0/24
*>104.4.3.0/24
BGP-Summarization
LAB11:非专业汇总(network命令,是不需要宣告明细路由的.)
step1:手工生成一条需要汇总的,静态的,空接口的路由:
R4指4条环回: 104.4.1.0/24
104.4.2.4/24
104.4.3.4/24
104.4.0.4/24
R4(config)#ip route 104.4.0.0 255.255.252.0 null 0 <---指这条静态的原因是为了network的时候能在路由
表里发现这条指向null 0 且22位的路由存在,才
能network成功
step2:将上述路由,宣告到BGP进程里
R4(config)#router b 140
R4(config-router)#net 104.4.0.0 mask 255.255.252.0
在R5上,可以查看到明细路由/汇总路由,
实际上,明细路由是不需要的:
Step3:删除原明细BGP路由的宣告:
R4(config-router)#
router bgp 140
no net 104.4.0.0 mask 255.255.255.0
no net 104.4.1.0 mask 255.255.255.0
no net 104.4.2.0 mask 255.255.255.0
no net 104.4.3.0 mask 255.255.255.0
step4:
R5#show ip bgp
*>104.4.0.0/22
step5:
R4(config)#no ip route 140.4.0.0 255.255.252.0 null 0 - 汇总不成功
R4在BGP表中都无法优化,更加不会传给别地BGP路由器了.
也可以由IGP自动生成
LAB12:BGP的专业汇总(推荐的方法)
step1:准确地宣告每一条BGP明细路由
net 104.4.0.0 ma 255.255.255.0
net 104.4.1.0 ma 255.255.255.0
net 104.4.2.0 ma 255.255.255.0
net 104.4.3.0 ma 255.255.255.0
(不要用network宣告汇总路由)
no net 140.4.0.0 ma 255.255.252.0
step2:使用aggregate命令,实现BGP路由的汇总(aggregate-address命令是不需要实现配置汇总路由的):
R4(config-router-BGP)#aggregate-address 104.4.0.0 255.255.252.0
此时,在BGP路由器上,都接收到了明细和汇总的路由.
step3:为了不让明细路由传播出去,启用summary-only参数.
R4(config-router-BGP)#aggregate-address 104.4.0.0 255.255.252.0 summary-only
此时的R4抑制了所有的明细路由,只发送了汇总路给R3,实现了BGP路由的汇总
step4:R4的BGP进程,自动生成了一条用于汇总的空接口路由
r4#show ip route
B 104.4.0.0/22[200/0]via 0.0.0.0
- 1.7-BGP⑥
BGP中的路由控制/过滤: LAB1:Distribute-list调用ACL(较落后) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Step1:通过ACL定义 ...
- 1.7-BGP⑤
BGP Attributes/BGP属性 (通过BGP的属性,实现对BGP路由的选择/操纵) BGP Route Selection/BGP的选路原则: 1: The BGP forwarding t ...
- 1.7-BGP④
注意:默认路由ip route 0.0.0.0 0.0.0.0 12.1.1.1是不可以作为BGP邻居TCP始发连接的(但回包可以) 要配静态路由:ip route 13.1.1.3 255.255. ...
- 1.7-BGP②
BGP的更新源(BGP Neighbor Update Source Address): 原则1: 在默认情况下, BGP路由器以自己路由表中,到达对方BGP邻居的地址的那条路由所指示的出接口(物理接 ...
- 1.7-BGP①
IGP: 包括RIP/EIGRP/OSPF/ISIS/ODR等动态路由协议 运行在同一个AS中, 通过Cost/Metirc来判断路由的优劣(越小越好): AS:自治系统(小) A ...
- BGP路由协议详解(完整篇)
原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...
- 边界网关协议BGP
Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...
- 1.4-动态路由协议OSPF④
多区域的OSPF: 划分多区域的主要目的: 1.减少每个区域中的路由条目,进而减少每个路由器的内存中的路由,及其内存消耗,提高转发效率. 2.因为每一个OSPF区域对应在一个OSPF LSDB,配合在 ...
- BGP MPLS IP V匹N基本概念
BGP/MPLS IP VPN基本概念 Site 在介绍VPN时经常会提到"Site",Site(站点)的含义可以从下述几个方面理解: · Site是指相互之间具备IP连通性的一组 ...
随机推荐
- RabbitMQ指南之四:路由(Routing)和直连交换机(Direct Exchange)
在上一章中,我们构建了一个简单的日志系统,我们可以把消息广播给很多的消费者.在本章中我们将增加一个特性:我们可以订阅这些信息中的一些信息.例如,我们希望只将error级别的错误存储到硬盘中,同时可以将 ...
- Java多线程——线程之间的同步
Java多线程——线程之间的同步 摘要:本文主要学习多线程之间是如何同步的,如何使用volatile关键字,如何使用synchronized修饰的同步代码块和同步方法解决线程安全问题. 部分内容来自以 ...
- linux mint 18.3设置分辨率死机问题的解决方法
linux mint 18.3由高分辨率设置为低分辨率的时候,会出现死机现象. 解决方法是:使用命令行: xrandr 查询所有支持的分辨率 然后通过 xrandr -s 1920x1080_59.9 ...
- Elasticsearch--地理搜索
目录 地理位置索引 空间搜索映射定义 示例 基于距离的排序 边界框过滤 距离的限制 任意地理形状搜索 点 包络线 多边形 多个多边形 把形状保存到索引中 地理位置索引 空间搜索映射定义 elastic ...
- Elasticsearch--预匹配器
当你对一个无限输入数据流进行操作并搜索特定事件的出现时,可以使用此模型.可以用于检测监控系统中的故障. 在新版本中的知识点位置https://www.elastic.co/guide/en/elast ...
- 开发一款APP需要多少钱
移动互联网近几年发展尤为迅速,越来越多的企业也开始将目光聚集到了移动互联网,这意味着移动互联网时代到来,而移动APP应用是竞争的一个因素.在移动互联网时代,移动APP开发已经不再是什么新鲜事了,许多的 ...
- RabbitMQ 为什么需要信道?为什么不是TCP直接通信?
交换器和队列的关系 1. 交换器是通过路由键和队列绑定在一起的,如果消息拥有的“路由键”跟队列和交换器的“路由键”匹配,那么消息就会被路由到该绑定的队列当中去 2. 也就是说,消息到队列的过程中,消息 ...
- C++(Typedef声明)
typedef 声明: 使用 typedef 为一个已有的类型取一个新的名字.下面是使用 typedef 定义一个新类型的语法: typedef type newname; 例如,下面的语句会告诉编译 ...
- 百度AI车牌识别测试
测试背景 百度已发布诸多AI应用,其中包含车牌识别,免费使用量是200次/日.付费的话,按月调用次数在20万次到50万次之间,每日10000次,月费用为0.0035*300000=1050元. 详见: ...
- Codeforces_761_E_(dfs)
E. Dasha and Puzzle time limit per test 2 seconds memory limit per test 256 megabytes input standard ...