BGP文档Word文档下载推荐.docx

上传人:b****6 文档编号:21120761 上传时间:2023-01-27 格式:DOCX 页数:25 大小:664.95KB
下载 相关 举报
BGP文档Word文档下载推荐.docx_第1页
第1页 / 共25页
BGP文档Word文档下载推荐.docx_第2页
第2页 / 共25页
BGP文档Word文档下载推荐.docx_第3页
第3页 / 共25页
BGP文档Word文档下载推荐.docx_第4页
第4页 / 共25页
BGP文档Word文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

BGP文档Word文档下载推荐.docx

《BGP文档Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《BGP文档Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

BGP文档Word文档下载推荐.docx

不存在选路的时候不需要BGP,路由器的性能不强的情况下不使用BGP。

来看下BGP的具体格式,BGP靠TCP来传输,端口号179,因为它靠的是TCP传输所以BGP得传输是非常可靠的。

BGP只有触发更新,也可说是增量更新;

BGP的邻居报文为keepallve报文,keepallve报文时周期性的为60秒,down时间为180秒。

keepallve报文类似于hello包,但是和hello包要区分开,周期性的hello包里面包含2个意思,第一建立邻居,第二keepallve确认你还活着。

而BGP里面第一次建立邻居靠的是open报文,确认好后往后只发keepallve报文。

我们在IGP中衡量路径的好坏靠的是metric值,但是在BGP中靠的是Richmetric我们也直接叫attributes(属性),metric值仅仅只是这些属性之一。

BGP设计对象主要就是大型网络。

BGP的3张表

首先建立邻居表neighbortable,使用open报文

然后开始传递BGP路由,并把这些信息传递给BGP表BGPtable。

注:

BGP默认的是不做负载均衡的。

最后把最好的放入路由表iproutingtable。

 

BGP的4种报文

open报文(包含了hold时间和BGP的routerID,这个ID和ospf的ID意思是一致的。

keepallve报文

update报文,发送路由条目的

notification报文,当出现错误的时候就会发送notification报文。

EBGP和IBGP

首先来看EBGP,外部的BGP,不同的AS号之间建立BGP邻居关系就叫做EBGP。

再来看IBGP,同一个AS内建立的BGP邻居关系就叫做IBGP。

BGP的邻居关系很有特点,在BGP的邻居关系中要建立邻居并不需要直连;

“看个例子:

R1----R2---R3---R4在这个拓扑里面运行BGP只要R1的路由能到达R4那么R1和R4直接就可以建立邻居关系”。

这点和IGP是绝对不同的,还有就是BGP是不需要组播地址的,因为BGP采用的是TCP协议这个协议的特点就是点到点的协议,所以不需要使用组播地址,而是单播地址。

还有一点要注意,在一个IBGP内部一定要运行一个IGP,不然前面的拓扑R1和R4是没有办法建立起来BGP邻居关系的。

我们先来看一张图:

在这张典型的BGP拓扑图中我们可以看见,

第一步我们首先假设在A路由器上通告一条路由X,我们可以发现由A发往F的路由也就是控制层面来说是OK的,因为A首先发往B他们之间是EBGP关系,然后B会直接发向E(通过D或者是C),在BGP中建立邻居关系是不需要直连的,在中间这个AS中,BCDE之间都运行了OSPF协议也就是说他们之间有路由相通,那么B就可以直接和E建立邻居关系,最后由E发往F,他们之间也是EBGP关系。

第二步我们紧接着来看再假设F下面有一个用户这会他要访问X,我们会发现他根本不通,这也就是数据层面。

因为F所发的信息会传递给E,这会E肯定会传给C或者D其中任何一个,那么我们这会可以看见不管是C还是D他们上面都没有运行BGP。

那么他们肯定没有通往X的路由,掉包就掉在这里了,我们也称为数据层面的路由黑洞。

重要难点:

BGP只发路由是不发数据包。

杨老师解释重难点:

为什么A到F只能传路由而数据包是不通的,首先我们要搞清楚BGP是个TCP协议那么A到F的路由首先到B,A为原B为目的,然后B传给E,这会我们就要看C和D上是有E的地址的,因为运行了OSPF。

那么原是B目的是E,这会再传,由E传给F,原是E目的是F。

从路由的角度上面来说源和目的地址是一直在变的。

它是以每一段为基础。

从数据层面来说源和目的地址是不变的,源地址就是F目的就是A。

这样问题就来了,首先F是有到达A的路由,F发给E,E知道去往A怎么走(不管是发给C或者D总是要发一个的),那么这会数据包到达C或者D的时候我们可以看见不管是C或者D他们都没有到达A的路由信息,这样数据包就掉在C或者D这里了。

三种方法解决:

1物理线路fullmesh(基本不用太贵了)

2BGP邻居的fullmesh(这种方式最多,就是让C和D都运行BGP)

3将BGP重发布到IGP中(只限于LAB,各位可以想象一下可不可能把公网上面的BGP全部重发布到你的本OSPF地来,这样的话内网瞬间就垮了)

4MPLS这是最好的解决方案,可惜今天不讲,各位不要着急过两天杨老师就交给你们。

^_^

BGP防止环路:

BGP防环分为IBGP和EBGP我们首先来看

EBGP的水平分割

这是个典型的环路那么EBGP怎么防止环路,首先当A1发出来BGP路由信息的时候就会携带A1自治系统号,传到A2的时候这会A2再发出去那么就有两个AS号,分别是A1和A2的。

再传给A3,这会A3传给A1的时候,

A1是不会接受含有自己AS号的路由信息的。

这就是EBGP的水平分割。

IBGP的水平分割

其实这段英文解释已经说得非常清楚,默认情况下IBGP学习到的路由是不会通告给IBGP邻居的,杨老师认为这样做其实也不好如果C和D都不传路由信息那F是没有办法收到A的路由的,当然我们还有其他的解决办法这里先不讲。

------有条件的打破IBGP水平分割。

BGP的基本配置:

R1------------R2------------R3-------------R4-----------------R5

R1在BGPAS4

R2,R3,R4在AS1

R5在AS5

R1和R2是EBGP关系

R2R3R4是IBGP关系

R4和R5是EBGP关系

R1和R21.1.1.0/24

R2和R32.2.2.0/24

R3和R43.3.3.0/24

R4和R54.4.4.0/24

每台路由器的回环接口依次是R1=11.11.11.1/24

R1:

r1(config)#routerbgp4

r1(config-router)#bgprouter-id11.11.11.1

r1(config-router)#neighbor1.1.1.2remote-as1

r1(config-router)#network11.11.11.0mask255.255.255.0

R2:

r2(config)#routerospf110

r2(config-router)#router-id12.12.12.1

r2(config-router)#network12.12.12.00.0.0.255area0

r2(config-router)#network2.2.2.00.0.0.255area0

r2(config)#routerbgp1

r2(config-router)#bgprouter-id12.12.12.1

r2(config-router)#neighbor1.1.1.1remote-as4

r2(config-router)#neighbor14.14.14.1remote-as1

r2(config-router)#neighbor14.14.14.1update-sourceloopback1

r2(config-router)#nosynchronization

r2(config-router)#neighbor14.14.14.1next-hop-self

r2(config-router)#neighbor13.13.13.1remote-as1

r2(config-router)#neighbor13.13.13.1update-sourceloopback1

r2(config-router)#neighbor13.13.13.1next-hop-self

就是把所通告得路由的下一跳设为自己,让对方知道,到达这些目的的下一跳,要给我这边,而不是那些路由原本的下一跳,防止下一跳不可达问题出现。

R3:

r3(config)#routerospf110

r3(config-router)#router-id13.13.13.1

r3(config-router)#network13.13.13.00.0.0.255area0

r3(config-router)#network2.2.2.00.0.0.255area0

r3(config-router)#network3.3.3.00.0.0.255area0

r3(config)#routerbgp1

r3(config-router)#bgprouter-id13.13.13.1

r3(config-router)#neighboryangshupeer-group

r3(config-router)#neighboryangshuremote-as1

r3(config-router)#neighboryangshuupdate-sourceloopback1

r3(config-router)#neighbor12.12.12.1peer-groupyangshu

r3(config-router)#neighbor14.14.14.1peer-groupyangshu

r3(config-router)#nosynchronization

R4:

r4(config)#routerospf110

r4(config-router)#router-id14.14.14.1

r4(config-router)#network14.14.14.00.0.0.255area0

r4(config-router)#network3.3.3.00.0.0.255area0

r4(config)#routerbgp1

r4(config-router)#bgprouter-id14.14.14.1

r4(config-router)#neighbor12.12.12.1remote-as1

r4(config-router)#neighbor12.12.12.1update-sourceloopback1

r4(config-router)#neighbor15.15.15.1remote-as5

r4(config-router)#neighbor15.15.15.1update-sourceloopback1

r4(config-router)#neighbor15.15.15.1ebgp-multihop

r4(config-router)#nosynchronization

r4(config-router)#neighbor13.13.13.1remote-as1

r4(config-router)#neighbor13.13.13.1update-sourceloopback1

r4(config-router)#neighbor13.13.13.1next-hop-self

r4(config-router)#neighbor12.12.12.1next-hop-self

r4(config)#iproute15.15.15.1255.255.255.255serial1/1

R5:

r5(config)#routerbgp5

r5(config-router)#bgprouter-id15.15.15.1

r5(config-router)#neighbor14.14.14.1remote-as1

r5(config-router)#neighbor14.14.14.1update-sourceloopback1

r5(config-router)#neighbor14.14.14.1ebgp-multihop

r5(config-router)#network15.15.15.0mask255.255.255.0

r5(config)#iproute14.14.14.1255.255.255.255serial1/0

最后在R5上ping11.11.11.1source15.15.15.1!

r1#showipbgpsummary

BGProuteridentifier11.11.11.1,localASnumber4

BGPtableversionis1,mainroutingtableversion1

NeighborVASMsgRcvdMsgSentTblVerInQOutQUp/DownState/PfxRcd

1.1.1.2414410000:

00:

490

r1#shipbgp

BGPtableversionis2,localrouterIDis11.11.11.1

Statuscodes:

ssuppressed,ddamped,hhistory,*valid,>

best,i-internal,

rRIB-failure,SStale

Origincodes:

i-IGP,e-EGP,?

-incomplete

NetworkNextHopMetricLocPrfWeightPath

*>

11.11.11.0/240.0.0.0032768i

在BGP中没有标识>

(不优路由)

1,不会放进路由表

2,不会给其他BGP邻居

BGP路由优化的条件:

1,同步问题,同步(synchronization)默认状态下本路由器通过IBGP学习到的路由,是不会放进路由表,也不会通告给其他邻居的,直到本路由器通过IGP也学习到这条路由。

解决方法:

nosynchronization

2,下一跳,下一跳不可达,解决方法在R2上向AS1内部发出信息告诉R4把下一跳指向自己。

如果说上面的实验可以搞定那么恭喜各位BGP基础部分就OK啦。

这张图的官话叫MA网络下一跳特例

我们来想一个问题,A路由器看见的下一跳路由是B还是C?

我们在建立好所有BGP邻居关系后,我们在A路由器上查看:

Showipbgp会突然发现A路由器的下一跳指向的是C,而不是和A建立邻居关系的B,这是为什么了,因为在B路由器上面有一个技术会启用,叫ICMP重定向,(当A要去D的时候,信息首先是传给B的但是B要传给C,也就是说B收到A传过来的信息,这个信息又从自己的接口又发出去了发给C,这样ICMP就会起作用直接告诉原也就是A你去D直接走C就行了。

我们再来考虑下控制层面的事情,当A路由器的下一跳指向的是C,那么这个信息是由B发起的还是A发起的。

我在B路由器上debugipbgpupdates一下,这会我相信一定会有人在敲完debug命令后在这死等~~~~等吧等到天荒地老也不会出现任何反应。

一定要搞清楚BGP的一些属性,BGP在建立好后是不会发任何更新的,除非是触发和增量更新。

那么我们clearipbgp*soft一下,里面就会有一条*Oct2421:

02:

35.851:

BGP(0):

123.1.1.1sendUPDATE(format)4.4.4.0/24,next123.1.1.3,metric0,path4。

OK全解释了。

那么B路由器为什么会把A路由器的信息直接传给C了,只要是看B路由器的路由表就行。

BGP状态:

Idle空闲状态,类似初始状态。

Connect找到我的邻居的路由并且完成了3次握手。

Opensent发送OPEN报文。

看对方发送的是否一样,看对方有无加密。

Openconfirm如果他们的open报文一致,那么正常情况下就到达established。

Established建立完成啦

-----那么建立状态的时候出现问题的就会在idle和openconfirm(active)这两个地方,我们最终看见的应该就是数字就是established。

那么什么情况下会出现IDLE状态了,就是在没有IGP路由的情况下会出现idle。

所以bgp告诉我们一个问题就是一定要保证IGP的畅通。

那什么情况会出现active了,幻灯片告诉我们一共有四个问题。

1邻居没有我本端的路由表

2邻居建立的时候写错地址

3对端任何一个端没有配置路由

4AS号配置错了

BGP认证

BGP的认证比较简单,默认就是MD5加密的。

比该死的OSPF好多了。

Router(config-router)#

neighbor{ip-address|peer-group-name}passwordstring

简单。

RouterA#showipbgprib-failure

NetworkNextHopRIB-failureRIB-NHMatches

172.31.1.0/24172.31.1.3Higheradmindistancen/a

172.31.11.0/24172.31.11.4Higheradmindistancen/a

在BGP表里面有时候会出现打r的信息,

那么这个信息的意思代表为,从IGP里面学到该信息又从BGP里面学到该信息,并且igp的AD小于bgp的AD就会出现打r的信息。

打r的路由,是不会放进路由表的,但是会传给BGP的邻居,因为只要我这条路径是优的就会传。

》》》扩展下在bgp中关于打r的信息如果各位想考IE的话是必须要涉及里面的实验的。

BGP的汇总

BGP的汇总方式:

接上面的图在D路由器上增加4个回环接口接口IP:

200.1.17.1/24,200.1.18.1/24,200.1.19.1/24.

在此之前我们先做个从发布把rip路由重发布到bgp里面去。

路由器上做。

r3(config-router)#redistributerip

做完后我们尝试开启和关闭自动汇总看看bgp表。

手工写静态路由NULL0

Network汇总路由

r4(config)#iproute200.1.16.0255.255.252.0null0

Showiprouter后

S200.1.16.0/22isdirectlyconnected,Null0

然后我们去通告这条路由

r4(config-router)#network200.1.16.0mask255.255.252.0

这会在R3上去查看

r3#showipbgp

BGPtableversionis21,localrouterIDis3.3.3.3

2.2.2.0/24123.1.1.2132768?

3.3.3.0/240.0.0.0032768?

4.4.4.0/2434.34.34.2004i

123.1.1.0/240.0.0.0032768?

200.1.16.0/2234.34.34.2004i

---------------------------------------

agg方式,上面这种方式是比较原始的,那么在BGP中针对汇总专门有一个方法agg

Agg方式是首先将明细路由通告出来,然后再来做聚合。

通俗点也就是先network再agg。

在BGP协议中通告明细

network200.1.16.0

network200.1.17.0

network200.1.18.0

network200.1.19.0

查看

r4#shipbgp

BGPtableversionis23,localrouterIDis4.4.4.4

2.2.2.0/2434.34.34.11023?

3.3.3.0/2434.34.34.10023?

4.4.4.0/240.0.0.0032768i

123.1.1.0/2434.34.34.10023?

200.1.16.00.0.0.0032768i

200.1.17.00.0.0.0032768i

200.1.18.00.0.0.0032768i

200.1.19.00.0.0.0032768i

然后再回到BGP协议中。

r4(config-router)#aggregate-address200.1.16.0255.255.252.0

做完

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1