BGP实验.docx
《BGP实验.docx》由会员分享,可在线阅读,更多相关《BGP实验.docx(24页珍藏版)》请在冰豆网上搜索。
![BGP实验.docx](https://file1.bdocx.com/fileroot1/2023-2/23/64c20df6-1070-42c8-bd2a-02612dbab89d/64c20df6-1070-42c8-bd2a-02612dbab89d1.gif)
BGP实验
基本BGP配置实验
1.实验拓扑:
2.实验需求:
按照上述拓扑图使用BGP基本配置,使得R2和R3使用物理接口建立IBGP邻居,R2、R3、R1运行OSPF路由协议,R2和R4使用直连接口建立EBGP邻居,R3和R5使用直连接口建立EBGP邻居,R1不运行BGP路由协议,在R4上NETWORK4.4.4.4/32,看看R5能否学习到路由信息?
在R5上PING4.4.4.4/32看看能否ping通?
如果R2和R3使用环回口能不能够建立邻居关系呢?
R2和R4、R3和R5能否通过环回口能不能够建立邻居关系?
路由黑洞的解决方法
1.实验拓扑:
2.实验需求:
解决上个实验产生的路由黑洞
方法一、R1运行BGP路由协议,并且与R2、R3都建立IBGP邻居关系,实现全互联的的逻辑拓扑
方法二、使用物理互联来解决路由黑洞
方法三、使用隧道模式解决路由黑洞
拓展:
如果使用创建TUNNEL隧道模式解决路由黑洞问题,但是题目要求必须还是使用R2和R3的环回口建立邻居,我们怎样做到呢?
方法四、使用重分布来解决路由黑洞问题(不推荐)
在R2上把BGP123重分布进OSPF1(一般不建议将BGP的路由重分布进IGP,因为路由条目很大,很容易造成IGP的瘫痪。
)
EBGP和IBGP邻接关系建立实验
1.实验拓扑:
2.实验需求:
要求R4和R2使用环回口建立EBGP邻接关系,并且修改R4的BGPkeepalive时间间隔和HOLD时间间隔,修改成keepalive时间间隔是10S,HOLD时间间隔是30S。
修改R2的BGPKEEPALIVE时间间隔为30S,HOLD时间是150S,看看R4和R2还能否建立RBGP邻接关系?
要求IBGP也使用环回口建立邻接关系。
即使keepalive时间间隔不一致也是能够建立邻接关系的,但是他们会协商出一个最小的keepalive时间间隔和一个最小的HOLD时间。
使用peer-group来简化BGP邻居命令的配置
1.实验拓扑:
2.实验需求:
要求AS12345内部建立全互联的IBGP邻居。
并且全部邻居都是汉斯用环回口建立邻居。
3.实验结论:
使用pee-group的作用是可以有效地节省路由器的带宽,如果没有使用peer-group,那么BGP会为每一个邻居都创建一个数据表,使用peer-group后路由器只创建一个数据表应用于整个对等体组。
第三方下一跳路由实验
1.实验拓扑:
2.实验需求:
R4和R2使用直连接口建立EBGP邻居,R1和R2使用直连接口建立IBGP邻居,R1和R3使用直连接口建立EBGP邻居,查看第三方下一跳现象。
3.实验结论:
在MA环境下运行BGP,如果使用直连接口指定邻居,会产生第三方下一跳现象,有效的利用了带宽。
MA网络的下一跳:
当把一条路由发送给EBGP邻居时,如果接收这条路由的接口与EBGP邻居的更新源地址在同一网段的时候,路由的下一跳不改变。
BGP的认证试验
1.实验拓扑:
2.实验需求:
由于BGP只支持MD5认证,要求R4和R2直连简历EBGP邻居并且其认证,password为cisco
BGP同步问题
BGP同步的定义(只针对IBGP邻居):
从BGP学习到的路由不会最优除非从IGP业学习到这条相同的路由信息
BGP同步的目的就是为了防止路由黑洞。
如果BGP同步开启的情况下,AS内的一个路由器从IBGP邻居处学到一条路由,不会最优(不会传递),除非是从IGP学到同样一条路由。
在IOS12.2(8)T以后,BGP同步默认被禁用。
同步规则是为了在一个不是full-mesh的网络中解决【黑洞】而产生的。
如果路由器认为一条BGP路由存在黑洞的可能性,它就不会去传这条路由。
由于同步规则会对路由的传递产生影响,所以建议关闭它。
1.实验拓扑:
2.实验需求:
完全理解BGP同步的概念。
3.实验结论:
BGP同步的定义(只针对IBGP邻居):
从BGP学习到的路由不会最优除非从IGP业学习到这条相同的路由信息
BGP同步的目的就是为了防止路由黑洞。
如果BGP同步开启的情况下,AS内的一个路由器从IBGP邻居处学到一条路由,不会最优(不会传递),除非是从IGP学到同样一条路由。
在IOS12.2(8)T以后,BGP同步默认被禁用。
同步规则是为了在一个不是full-mesh的网络中解决【黑洞】而产生的。
如果路由器认为一条BGP路由存在黑洞的可能性,它就不会去传这条路由。
由于同步规则会对路由的传递产生影响,所以建议关闭它。
BGP自动汇总实验
BGP自动汇总定义:
是指其他路由协议重分布到BGP时会进行自动汇总,在最新的IOS中默认就关闭自动汇总的。
如果打开自动汇总,使用network可以使用主类网络通告路由条目,前提是路由表中要有明细路由条目。
也可以使用精确宣告的network。
如果关闭自动汇总,必须使用精确宣告的network,network必须和路由表中的路由条目一模一样。
1.实验拓扑:
2.实验需求:
了解BGP中自动汇总的定义。
R4和R2使用直连接口建立邻居关系,R2和R1、R3只用LO0建立邻居关系。
看看在默认情况下BGP是不是关闭自动汇总的?
在关闭自动汇总情况下,在R4上面宣告一条172.16.1.0/24路由条目,看看能否主类宣告?
打开R4的自动汇总宣告172.15.1.0/24,看看能否进行主类宣告?
查看自动汇总对BGP的影响。
3.实验结论:
BGP自动汇总定义:
是指其他路由协议重分布到BGP时会进行自动汇总,在最新的IOS中默认就关闭自动汇总的。
BGP的自动汇总对整个BGP路由协议是没有作用的,只是对重分布进BGP的其他路由协议进行自动汇总。
如果打开自动汇总,使用network可以使用主类网络通告路由条目,前提是路由表中要有明细路由条目。
也可以使用精确宣告的network。
当其他IGP协议重分布进BGP时,默认会进行自动汇总,不会携带原有的METRIC值值和掩码,next-hop
如果关闭自动汇总,必须使用精确宣告的network,network必须和路由表中的路由条目一模一样。
当其他IGP协议重分布进BGP时,携带原有的METRIC值和掩码,next-hop
BGP计时器实验
1.实验拓扑:
2.实验需求:
首先确保邻接关系建立起来,然后修改R4的本地BGP计时器,keepalive时间间隔改成70S,HOLD时间改成200S,看看能不能够与R2形成邻接关系?
在把R2的BGP计时器改成keepalive时间间隔为100S,HOLD时间为250S,看看能否形成邻居?
在使用neighbor命令看看是什么现象?
3.实验结论:
两个BGP路由器建立邻接关系,将会协商使用最小的keepalive时间间隔和最小的HOLD时间,如果使用的是neighbor关键字命令就会覆盖掉使用timesbgp关键字设置的值,而不管他的大小。
BGP邻居关系的建立过程
1.实验拓扑:
2.实验需求:
要求R1用R2的环回口2.2.2.2建立邻居关系,R2用R1的环回口11.1.1.1建立邻居关系,看看是否能够建立起来?
1、idle空闲--查找是否有去往邻居的路由
2、connect连接--建立TCP三次握手
3、Active活动--协商还未成功
4、opensent打开发送--互发参数进行协商,也就是发送open报文,确定能否建立邻居。
5、openconfirm打开确认--协商取得一致,开始发送和接受keepalive报文,成功后进入established状态
6、established邻居建立完成并开始交换update数据包。
4.实验结论:
Bgp建立邻居实际上是互相建立邻居,互相备份
只要一个方向上建立的邻居,邻居就会up起来。
邻居建立的含义:
在邻居各接口路由互通的前提下,允许对方的更新源地址访问本地的179端口。
BGP聚合实验
1.实验拓扑:
2.实验需求:
按照上述拓扑配置,要求EBGP使用直连接口建立邻居,IBGP使用环回口建立邻居关系,在R4上创建4个环回口,宣告进BGP,使用BGP聚合命令,了解BGP聚合命令的使用方法
3.实验结论:
BGP下发默认路由
1.实验拓扑:
2.实验需求:
使用尽可能多的方法使得BGP下发默认路由
方法一:
创建一条默认路由并且宣告进BGP
方法二:
创建一条就默认路由,再使用重分布进BGP
方法三:
使用命令neighborXXXXXdefault-originate来实现
方法四:
使用条件下发默认路由
IGP和BGP的重分布
1.实验拓扑:
2.实验需求:
假设AS123内运行EIGRP路由协议,正常运行BGP,把IGP重分布进BGP看看现象?
假设IGP是OSPF呢?
再把BGP重分布进IGP,看看产生什么现象?
3.实验结论:
将OSPF重分布进BGP的时候,默认只能将internal的路由重分布进BGP。
如果还想将OSPF的其他路由重分布进BGP,可以用以下命令:
redistributeospf110match[internal|external|nssaexternal]
向IGP中注入BGP路由:
一般不建议将BGP的路由重分布进IGP,因为路由条目很大,很容易造成IGP的瘫痪。
默认情况下只能将EBGP的路由重分布进IGP。
默认不让IBGP的路由重分布进IGP是为了防止环路。
如果非要将IBGP的路由重分布进IGP。
需要在进程内使用命令:
bgpredistribute-internal
BGP属性实验
1.实验拓扑:
2.
3.实验需求:
了解BGP选路规则
一、修改weight值:
目前R3上去4.4.4.4/32的数据下一跳是指向R2的,假设我们想在R3上看到去4.4.4.4/32的数据下一跳是指向R1的,修改weight怎么实现?
二、修改local-preference值
目前R4上面去172.16.1.0/24的数据下一跳是指向R1的,R2上面去172.16.1.0/24的数据下一跳是指向RBGP邻居R3的,我们现在要使得AS124内部的路由器去172.16.1.0/24的数据下一跳指向R1,怎样实现?
三、修改AS-PATH属性
四、修改起源属性
目前R3收到两条4.4.4.4/32的路由,现在对4.4.4.4/32这条路由修改起源属性。
R3(config)#access-list1permit4.4.4.4
五、修改MED值
R4上目前是选择下一跳是R1去192.168.1.0/24我们修改MED值使得R4去192.168.1.0/24下一跳指向R2。
是用next-hop属性代替next-hop-self命令
1.实验拓扑:
2.实验需求:
是用下一跳属性代替命令next-hop-self。
路由反射器实验
1.实验拓扑:
2.实验需求:
要求实验路由反射器实现5.5.5.5能够ping通4.4.4.4
BGP联邦实验
1.实验拓扑:
2.实验需求:
要求使用联邦使得R4上能够学习到5.5.5.5/24的路由条目
3.实验结论:
路由属性实验2
1.实验拓扑:
2.实验需求:
3.实验步骤:
一、修改MED值
现在目前R4去往172.16.0.0的数据下一跳是3.3.3.3,我们通过修改MED属性来调节成下一跳指向R2的2.2.2.2。
可以再R3把路由条目传给R4的时候作用route-map来实现:
二、修改起源属性
R1#shipbg
NetworkNextHopMetricLocPrfWeightPath
*4.4.4.0/2413.0.0.30234i
*>12.0.0.20234i
目前R1上面学习过来的4.4.4.4/24的路由条目起源都是i的,表示是BGP内的,现在我们通过修改起源属性来修改使得R1去4.4.4.4/24下一跳指向13.0.0.3。
三、修改AS-path属性
R4#shipbg
NetworkNextHopMetricLocPrfWeightPath
*i192.168.0.02.2.2.2010001i
*>i3.3.3.3010001i
目前R4上面去往192.168.0.0的数据下一跳是3.3.3.3最优,我们通过修改R1传给R3是AS-PATH属性使得R4去往192.168.0.0下一跳是指向2.2.2.2
四、修改nexthop属性
R4#shipbg
NetworkNextHopMetricLocPrfWeightPath
*>i192.168.0.03.3.3.301000111111i
*i2.2.2.2010001i
目前R4去往192.168.0.0的数据是走下一跳是3.3.3.3,是通过第8条选路原则选路的,我们通过修改nexthop让R3传给R4的192.168.0.0的路由下一跳不可达。
五、修改localprf属性
R4#shipbg
NetworkNextHopMetricLocPrfWeightPath
*i172.16.0.0/243.3.3.325010001i
*>i2.2.2.2010001i
目前R4上面去往172.16.0.0/24的数据下一跳是指向2.2.2.2,现在通过修改localprf值使得去往172.16.0.0数据下一跳指向3.3.3.3。
六、修改weight值
R1#shipbg
NetworkNextHopMetricLocPrfWeightPath
*4.4.4.0/2412.0.0.20234?
*>13.0.0.30234e
目前R1去往4.4.4.0/24的数据下一跳是指向13.0.0.3,我们通过修改本路由器的weight值使得下一跳指向12.0.0.2。
Bgp社团属性实验
1.实验拓扑:
2.实验需求:
用实验来验证社团属性的作用(共有的和私有的)
·社团属性中已经预定义好的三类well-known属性:
Internet:
此属性为默认属性会全internet传递
local-AS:
携带此属性的路由不会传出小AS。
no-export:
携带此属性的路由不会传出本AS外,只会传给IBGP。
(联邦中的小AS会传递)。
no-advertise:
携带此属性的路由不会通告给任何BGP邻居。
也就是说只传达给一个邻居,只传一跳
3.实验步骤:
BGP一些小feature实验
1.实验拓扑:
2.实验需求:
按照上述拓扑图配置bgp路由协议,要求修改R4和R2的路由更新最小时间间隔为20S,在R4上做配置使得通告4.4.4.4/24的时候能够抑制掉44.4.4.4/24路由条目,仅当4.4.4.4/24断掉了才会自动通告44.4.4.4/24。
使用distribute-list来过滤22.2.2.0/24这条路有明细传给R4。
拓展:
现在假设在R4上面添加4个环回口172.16.0.1/24172.16.1.1/24172.16.2.1/24172.16.3.0/24,并且宣告到BGP中,使用路由聚合聚合4条明细,现在需求使用分发列表来实现抑制明细路由条目,怎样实现?
BGP最大路由条目实验
1.实验拓扑:
2.实验需求:
按照上述拓扑配置,把R2的最大路由条目数修改成10条,阀值调成8条,看看现象。
BGP邻居flapping实验
1.实验拓扑:
2.实验需求:
R1、R2运行EIGRP100,宣告环回口,R1、R2使用环回口建立EBGP邻居,并且把R1、R2的BGPkeepalive时间间隔改成10S,holdtime改成30S,这样方便查看现象,看看会产生什么现象呢?
假如我们使用静态路由的方式替代EIGRP,使用24位的静态路由指向对端的环回口地址,又会出现什么问题呢?
尽可能用最多的方法解决问题。
我们发现邻居关系抑制在UP和DOWN状态切换,这时我们很不想看到的,这是为什么呢?
根据推敲我们发现,BGP建立邻居关系是使用TCP连接的。
原本的1.1.1.1和2.2.2.2建立BGP的邻居关系,本来有EIGRP的路由条目使得路由可达,所以EBGP邻居成功建立。
建立完毕后BGP宣告自己的环回口,使得BGP学习到环回口的网络信息,由于EBGP的管理距离是20,所以会覆盖掉EIGRP管理距离为90的路由条目信息,在路由表中出现B2.2.2.2[20/0]via2.2.2.2,00:
00:
06的路由信息,但是BGP需要发送keepalive包来保鲜,进过路由器的递归查询发现去往2.2.2.2的路由下一跳是2.2.2.2,这样问题就出现了。
我们在HOLD时间内都收不到keepalive包,邻居关系就会DOWN掉。
之后EIGRP的路由又出现在路由表中,所以邻居关系又能够建立起来。
这就是问题形成的原因
解决方法一:
使用直连口建立邻居关系
方法二、使用静态路由代替EIGRP
这两种方法是最普遍的,因此不做阐述。
方法三:
修改BGP的管理距离
AS迁徙实验
1.实验拓扑:
2.实验需求:
现在R1为某公司的边界网路由器,R2为已经被R4的AS200兼并了的AS,现要求使用AS迁徙来实现不用改变R1上的配置实现AS300到AS200的兼并。
Backdoor实验
1.实验拓扑:
2.实验需求:
R1和R2、R1和R3都形成EBGP邻居关系,并且宣告172.16.0.0/24。
R2和R3运行EIGRP,并且宣告172.16.0.0/24。
我们看看会发生什么现象,怎么解决?
BGP环路实验
1.实验拓扑:
2.实验需求:
R1和R2建立EBGP邻居关系,R2和R3建立IBGP邻接关系,全网运行EIGRP100,不宣告172.16.0.0/24路由条目。
在BGP中宣告172.16.0.0/24的路由条目,看看会出现什么问题,怎么解决?
解决方法二:
使用route-map来修改路由的下一跳属性
解决方法三:
使用PBR的next-hop来解决下一跳问题
使用dampening技术解决路由抖动
1.实验拓扑:
2.实验需求:
R1和R2建立EBGP邻接关系,R2在BGP中宣告172.16.0.0/24,在R1上配置dampening,使得172.16.0.0/24反复抖动,查看现象!
查看dampening技术的原理。
Dampening的原理:
当在路由器上启用Dampening后,如果有一条路由up->down,路由器会对这条路由记录一个惩罚值,每down一次,惩罚值加1000,当惩罚值达到startsuppress(开始抑制)值时,这条频繁抖动的路由被抑制。
一条被抑制的路由不会被使用,也不会传递。
BGP默认不启用Dampening,需要手一启用,Dampening仅对EBGP邻居传来的路由起效。
3.实验结论:
Dampening的原理:
当在路由器上启用Dampening后,如果有一条路由up->down,路由器会对这条路由记录一个惩罚值,每down一次,惩罚值加1000,当惩罚值达到startsuppress(开始抑制)值时,这条频繁抖动的路由被抑制。
一条被抑制的路由不会被使用,也不会传递。
BGP默认不启用Dampening,需要手一启用,Dampening仅对EBGP邻居传来的路由起效。
AS-PATH和正则表达式实验
1.实验拓扑:
(1)实验需求:
按照上述拓扑配置,全网运行BGP,在R1上能够看到许多路由条目,使用正则表达式来过滤路径路由。
现在我们进行过滤:
要求在R1上面有AS300的路由条目拒绝掉,过滤掉带有AS200的(穿越的和AS200自己产生的)路由条目。
只能看见本地产生的路由条目以及AS500的路由条目。
最后R1上面应该只有4条路由(2条自身产生的,两条是AS500传递过来的),现在需求把AS500做路由策略使得as-path增加5次。
要求R1路由器不接收4条AS以上的路由。
正则表达式我们可以通过shipbgpregexp来查看这个正则表达式匹配了多少路由条目,这样可以减少很多错误,很方便,强烈推荐。
2.实验结论:
<RegularExpression>正则表达式:
正则表达式:
一种用来做匹配的工具,可用来匹配字符串,在BGP中可用来按AS号进行路由过滤,控制路由器只接受某些特定的AS传来的路由。
常用的通配符:
^:
代表路径列表(字符串)的开头
$:
代表路径列表(字符串)的结尾
_:
代表一个符号(只能是空格/逗号/左括号/右括号)
.:
代表任何一个字符
*:
星号前的字符可重复0次或多次