博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.7-BGP③
阅读量:5302 次
发布时间:2019-06-14

本文共 6170 字,大约阅读时间需要 20 分钟。

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路由反射器RRRoute Reflector):
事实证明:路由反射器就是搞传销地!!!
第一种:来自同一AS内的下线的路由,会反射给所有BGP session
721057-20161210103038382-277624086.png
    第二种:非下线的路由会发给自己的下线而不会发送给非下线,但可以发送给其他AS
721057-20161210103038663-1474216476.png
    第三种:外部来的EBGP路由,可以发给所有本区内的下线和非下线:
721057-20161210103038866-674672628.png
LAB8Part-Mesh IBGP RRRouter-REfilector):
721057-20161210103039147-1885478853.png
Step1:
删除R2-R3IBGP Session
删除之前:R2105.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):
721057-20161210103039366-1943894037.png
假定:子AS65003/AS65012之间是不运行IGP的、AS65012内部运行的IGPRIP.
STEP1:删除原来的AS123.重新建AS123 
R1/2/3#no router bgp 123
R1#R2R3建立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/3config-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路由
宣告104105BGP
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)(观察105104
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
同步:
原因是R2IBGP学到的路由,默认要检查同步
但现在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的路由,所以下一跳不可达.需在R1next-hop-self
以下是观察BGP的路由的传递:
LAB10:团体(Community
(相当于一种BGP路由的标识位,常用于标识这条BGP路由应该传播的范围)
721057-20161210103039694-1571298474.png
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-asDo 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 40match any,set nothing!
!
step3:R4,R2BGP路由策略发生,"出方向"的改变
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",
R4R2通告的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命令,是不需要宣告明细路由的.)
721057-20161210103040022-343001801.png
step1:手工生成一条需要汇总的,静态的,空接口的路由:
R44条环回:  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   -  汇总不成功
R4BGP表中都无法优化,更加不会传给别地BGP路由器了.
也可以由IGP自动生成
LAB12:BGP的专业汇总(推荐的方法)
721057-20161210103040304-336226873.png
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:R4BGP进程,自动生成了一条用于汇总的空接口路由
r4#show ip route
B 104.4.0.0/22[200/0]via 0.0.0.0

转载于:https://www.cnblogs.com/sanyuanempire/p/6155022.html

你可能感兴趣的文章
一步步教你轻松学奇异值分解SVD降维算法
查看>>
使用pager进行分页
查看>>
UVA - 1592 Database
查看>>
Fine Uploader文件上传组件
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>