bgp个人总结.docx

上传人:b****8 文档编号:29691852 上传时间:2023-07-26 格式:DOCX 页数:17 大小:84.83KB
下载 相关 举报
bgp个人总结.docx_第1页
第1页 / 共17页
bgp个人总结.docx_第2页
第2页 / 共17页
bgp个人总结.docx_第3页
第3页 / 共17页
bgp个人总结.docx_第4页
第4页 / 共17页
bgp个人总结.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

bgp个人总结.docx

《bgp个人总结.docx》由会员分享,可在线阅读,更多相关《bgp个人总结.docx(17页珍藏版)》请在冰豆网上搜索。

bgp个人总结.docx

bgp个人总结

http:

//www.cidr-report.org

BGP中的三张表:

neighbortable、BGPtable(forwardingdatabase)、iproutingtable

BGP的四种报文:

open报文:

包括holdtime和BGProuter-id

router-id:

手工指定、loopback接口ip地址大的、物理接口IP地址大的

keepalive报文:

update报文:

路由更新报文

notification报文:

错误报告报文

EBGP:

在不同的AS之间建立,一般需直连20IBGP:

在同一个AS内建立,无需直连200

BGP的水平分割:

EBGP的水平分割:

不接收含有本AS号的BGP路由

IBGP的水平分割:

从IBGP的学过来的路由不会再通告给其他的IBGP邻居

如上图示:

A与B之间建立的是EBGP邻居,E与F之间建立的也是EBGP邻居,B与E之间建立的是IBGP邻居,C、D路由器没有运行BGP路由协议。

BE之间要建立IBGP邻居,则他们之间的要有到达彼此的路由,故在AS65102中必须运行IGP路由。

当所有BGP邻居都建立起来以后,我们来分析:

A通告出来的路由S通过EBGP可以传给B,B通过IBGP可以传给E,E再通过EBGP可以传给F,从控制层面来说,是通的(类似于ARP逐跳改变了源目IP地址);但是我们从数据层面来看一下,从F来的数据包要发给A,F通过EBGP交给E,E通过C或D交给B,但是由于C、D上没有运行BGP路由协议,根本就没有到达A的S路由,故数据包无法到达A。

------------------路由黑洞。

为什么C、D可以帮助传递路由信息而不能传递数据信息?

答:

因为BGP是通过TCP来建立连接的,A在将路由信息S发给B时,数据包的源目地址分别是A和B,B在将路由信息S发给E时,源目IP地址分别是S和E(通过IGP),E在将路由信息S传递给F时,其源目IP地址分别是E和F。

但数据包要从F交到A时,其目标地址一直是A,路由器C、D没有运行BGP协议,没有到达A的路由,故当E将此数据包交给没有运行BGP的路由器C、D时,数据包被丢弃。

路由黑洞的解决办法:

1、物理线路FULLMESH。

2、BGP邻居的FULLMESH。

3、BGP重分发进OSPF(LAB)。

4、MPLS

IGP中network的作用:

1、发hello包建立邻居(组播地址直接封装)

2、通告路由(只能通告相应接口的路由反掩码)

BGP中:

1、neighbor建BGP邻居(neighbor指定邻居再封装)

2、network宣告路由(只要是路由表中有的路由都可以宣告正掩码)

一般通过还回口建立IBGP邻居:

从稳定性的角度来考虑,但这样容易造成更新源的不一致

IGP通过组播地址发送hello报文,BGP中通过点对点的地址来发送open报文。

EBGP在配置了EBGP邻居之后,EBGP邻居关系能够马上起来,但是IBGP之间不能够马上起来必须要配置更新源,使得neighbor和更新源(US)一致。

例如:

EBGPA和B之间:

A:

B:

NEI:

11.1.1.2NEI:

11.1.1.1

US:

11.1.1.1US:

11.1.1.2

而IBGPB和E之间:

B:

E:

NEI:

3.3.3.3NEI:

2.2.2.2

US:

12.1.1.1.US:

13.1.1.1

不对称,需要用命令:

neighbor*.*.*.*update-source*修改open报文的源IP地址,使得更新源和neighbor都是同一对象,这样IBGP邻居才能起来。

注意:

原则上两边都要修改,但是实际上只要有一边配置了就可以了,建议两边都配置上。

如图所示的:

EBGP邻居之间有两条链路来实现冗余备份,这个时候一般就不使用物理端口来建立EBGP邻居,(达不到冗余备份的目的)。

此时一般也通过LP口来建立EBGP邻居,但是这个时候要注意修改TTL值,EBGP默认TTL值为1。

命令为:

neighbor*.*.*.*ebgp-multihop2后不跟数值,默认是255

同时通过静态路由来实现LP接口互通。

没有标示“>”的BGP路由(不是最优的)

1、不会放进路由表

2、不会给其他BGP邻居传

BGP路由优的条件:

1、同步(从IBGP学到的路由,不使用(不放进路由表)也不传给其他BGP邻居,直到从IGP也学到了这条路由)方法:

1、从IGP学到2、关闭同步功能

2、下一跳方法:

1、静态2、next-hop-self

命令:

nosynchronization

Neighbor*.*.*.*next-hop-self

Peergroup:

1、减小buffer大小

2、减少命令行

命令:

1、neighborwolfpeer-group给peer-group取一个名字

2、neighborpeer-groupremote-as*

3、neighborpeer-groupupdate-sourdeloopback0

可以把所有相同的命令写在一个模板中

BGP状态机:

Idle:

查找路由表,看是否有道我们用neighbor配置的邻居的路由

(没有找到到邻居的路由时会停留在该状态,一般查找IGP问题)

Connect:

找到去邻居的路由,且TCP三次握手成功

Opensent:

发送open报文,协商BGP会话的参数

Openconfirm:

同意BGP会话的确认报文

Established:

BGP会话建立成功

状态停留在active状态(发送了opensent报文但没有收到openconfirm报文):

1、对端邻居没有我本端的路由

2、对端配错了neighbor地址

3、对端根本就没有配置neighbor

4、对端配错了AS自制系统号

Showipbgprib-failure:

Rib:

routinginformationbase路由信息表

同一条路由既从IGP学到,也从BGP学到,且IGP学过来的AD小于从BGP学过来的AD。

AD:

管理距离IGP(AD)

标识为“r”的BGP路由:

1、不放进路由表

2、会传给BGP邻居

标识为“s”的BGP路由:

suppressed

1、被抑制的路由,不会传递给其他邻居

Debugipbgpupdate

Clearipbgp*硬清TCP连接都断开了

Clearipbgp*soft软清TCP三次握手还在,只是重发open报文建立BGP邻居,一般修改一些BGP的属性时,软清就可以了。

查看本端路由器是否发送给邻居的路由信息(排错用:

看是我没发还是对方没收)

Showipbgpneighbor*.*.*.*advertised-routes

查看本端路由器从邻居那里收到了哪些路由(排错用:

看是我没收还是对方没发)

Showipbgpneighbor*.*.*.*received-routes

但应该注意:

路由器默认是没有缓存来保存接收到的路由信息的。

需通过一下命令来开启

Neighbor*.*.*.*soft-reconfigurationinbound

Noauto-summary

BGP路由默认是不会发生自动汇总的,发送的就是明细路由

那么这条命令用在什么地方呢?

答:

当我们将其他路由协议充分发到BGP中时,如果该协议原来默认就自动汇总(如rip),那么重分发进BGP也会自动汇总,而BGP需要知道的是明细路由,故此时需要用到此命令。

Auto-summary

A重分发进B:

1、不携带下一跳和metric值2、自动汇总

Noauto-summary

A重分发进B:

1、携带下一跳和metric值2、不自动汇总

把A协议重分发进B协议执行什么操作?

答:

是将本台路由器运行A协议的接口以及本台路由器运行A协议学到的路由,重分发进B协议。

IGP:

summary自动汇总

BGP:

aggregate聚合

1、手工写静态汇总路由,下一跳指向空接口NULL0

然后用network命令发布汇总路由

Iproute200.1.16.0255.255.255.0null0

Iproute200.1.17.0255.255.255.0null0

Iproute200.1.18.0255.255.255.0null0

Iproute200.1.19.0255.255.255.0null0

Routerbgp2

Network200.1.16.0mask255.255.252.0

2、先用network明细路由

再Aggregate

Routerbgp2

Network200.1.16.0

Network200.1.17.0

Network200.1.18.0

Network200.1.19.0mask255.255.255.0(效果跟上面的一样)

Aggregate-address200.1.16.0255.255.252.0

(后面不加任何参数,默认既传明细路由,也传聚合路由)

Aggregate-address200.1.16.0255.255.252.0summary-only(只传聚合路由)

问题1:

现要求routerA上能收到3条路由,聚合路由和18、19网段的路由(抑制16、17网段的路由),怎么做?

这里我们需要用到抑制列表:

suppress-map

Ipprefix-list1permit200.1.16.0/lengeylez

Len

注意一下几者的区别:

Ipprefix-list1permit200.1.16.0/23匹配网络号前23位,子网掩码为23

Ipprefix-list1permit200.1.16.0/23le24匹配网络号前23位,子网掩码为23或24

Ipprefix-list1permit200.1.16.0/23ge24匹配网络号前23位,子网掩码大于等于24

Ipprefix-list1permit200.1.16.0/23ge24le24匹配网络号前23位,且子网掩码等于24位

具体实现如下:

1、抓出想要抑制的路由

Ipprefix-list1permit200.1.16.0/23ge24le24

2、在router-map中去调用

Route-mapSUP

Matchipaddressprefix-list1

3、在聚合路由后面挂上suppress-map

Routerbgp2

Aggregate-address200.1.16.0255.255.252.0suppress-mapSUP

问题2:

如果聚合不做在routerB上而直接做在routerA上,会出现些什么情况?

答:

routerA上接收routerB传过来的明细路由,自己产生聚合路由,且改聚合路由AS-path值为1,会回传给AS2,这样会出现什么问题呢?

假设routerB后面还连着很多路由器,比如routerF,那么路由器F上既收到了聚合路由也收到了明细路由,当我routerB上的明细路由中的一条down掉了以后,routerF路由表中关于该条明细路由会消失,但聚合路由还是存在的,数据包会传给routerB,B在传给A,但此时A上已没有该条明细路由,故丢弃该数据包。

一般情况下,如果聚合路由和明细路由不是在同一台路由器上做的,而且穿越了AS,我们不应该让该聚合路由传回去。

(基于EBGP的水平分割)

命令:

aggregate-address200.1.16.0255.255.252.0summary-onlyas-set

As-set:

还原明细路由的某些属性(让聚合后的路由继承明细路由的某些属性)

问题3:

routerD是跟routerC建立的EBGP邻居,但它的下一跳为什么指向的是routerA?

答:

icmp的重定向,

BGP的属性:

是否识别

是否遵守

传播范围

添加的一些其他属性

公认必遵:

ASpath、next-hop、origin

Origin:

i-------IGP:

用network命令发布的

?

--------将IGP或静态路由重分发进BGP

e--------将EGP重分布进BGP(注:

现在很少见EGP

(1)包含:

EGP

(2)和BGP,这里指的是将EGP

(2)重发布进BGP)

可以手动将属性改成e:

在routerA上做如下配置

1、抓路由

Ipprefix-list2permit2.2.2.2/24

2、Router-map中调用

Router-maporigin

Matchipaddressprefix-list2

Setoriginegp2(此处的2为AS号)

3、在neighbor后挂上router-map

Neighbor2.2.2.2router-maporiginin

具体实现:

Ipprefix-list2permit2.2.2.2/24

Router-maporiginpermit10

Matchipaddressprefix-list2

Setoriginegp2

Router-maporiginpermit20(空语句:

放通其他明细路由)

Routerbgp1

Neighbor2.2.2.2router-maporiginin

在BGP和重分发的时候,都必须考虑空语句

BGP选路原则:

前提:

路由器同步,下一跳可达---------确保它是最优的

1、权值(weight)最大(1、传播范围:

仅在本路由器上生效2、默认值:

32768----本台路由器上通告的0----其他路由器3、越大越好4、cisco私有)

2、本地优先级(1、传播范围:

仅在一个AS内有效2、默认值:

100

3、越大越优)作用:

告诉IBGP邻居怎样离开AS

3、优选起源于本地的路由(next-hop:

0.0.0.0)

4、ASpath越短越好

5、Origin属性(i

6、MED(metric)(1、传播范围:

传一个AS2、默认值:

03、越小越好)

作用:

告诉EBGP如何进入一个AS

7、EBGP优于IBGP

8、优选于最近的IGP邻居

9、最小的BGP邻居的ROUTER-ID

注:

前3条是越大越优先,后6条是越小越优先

问题1:

如果AS1中IGP跑的是ospf,则路由器2到路由器3的路由会怎么走?

为什么?

如果IGP中跑的是RIP呢?

其结果又将如何?

答:

如果IGP中跑的是OSPF,则根据BGP选路原则,此时匹配其中的第八条,从R4学到到R2LP口的metric值是10,而从R1学过到的metric值为64,因而会优选从R4学到的去R2LP的路由;如果IGP中跑的是RIP,则根据BGP选路原则,此时匹配其中的第九条,因为R1的router-id小于R4的router-id。

问题2:

现要求从R3去R2的路由全部走R1,通过修改Weight值怎么来实现?

答:

在R3上执行如下命令:

neighbor1.1.1.1weight1(in)(从邻居R1传过来的路由的权值全部改成1,默认是0)-------修改从邻居传过来路由的weight值

问题3:

现要求从R3去R2的2网段路由全部走R1,去9网段走R4,通过修改Weight值怎么来实现?

答:

1、抓路由

Ipperfix-list3permit2.2.2.2/24

2、router-map调用

Router-mapweightpermit10

Matchipaddressprefix-list3

Setweight3

Router-mapweightpermit20(将其他没有抓住的流量放通)

3、挂在BGP上

Routerbgp1

Neighbor1.1.1.1router-mapweightin

问题4:

用localpreference怎样来实现问题2的要求?

答:

在R1上用如下命令可实现此需求:

Bgpdefaultlocal-preference111

注:

敲上这条命令后,在本地肯定是能生效的,但是我们通过showipbgp去看LocPrf的值,发现该值不一定发生了改变。

可以通过输入详细的BGP路由信息去看,如:

showipbgp2.2.2.0/24

实验:

测试改命令对下列哪些路由生效:

1、Network发布的路由

2、从EBGP传过来的路由(可以)

3、从IBGP传过来的路由

4、Aggregate

问题5:

用localpreference来实现问题3的需求?

答:

1、抓路由

Access-list1permit2.2.2.0

2、调用router-map

Router-mapLpermit10

Matchipaddress1

Setlocalpreference123

Router-mapLpermit20

3、挂在BGP上

Routerbgp1

Neighbor3.3.3.3router-mapLout(发往邻居3.3.3.3去的路由的本地优先级设成123)

问题6:

用as-path来实现问题3的需求?

答:

分析:

As-path分为in和out两个方向,我们可以选择在R2的out方向上来增大经过R4的as-path值的大小,也可以选择在R4的in方向上来做。

方法1:

在R2的out方向上做

1、抓路由

Ipprefix-list4permit2.2.2.0/24

2、调用router-map

Router-mapAS

Matchipaddressprefix-list4

Setas-pathprepend789(经过的AS号不能随便指,最好指自己)

Router-mapASpermit20

3、挂在R2的BGP上

Routerbgp2

Neighbor4.4.4.4router-mapASout

方法2:

在R4的in方向上做

1、抓路由

Ipprefix-list4permit2.2.2.0/24

2、调用router-map

Router-mapAS

Matchipaddressprefix-list4

Setas-pathprepend222

Router-mapASpermit20

3、挂在R4的BGP上

Routerbgp1

Neighbor4.4.4.4router-mapASin

问题7:

在R3上宣告一个8.8.8.0/24位的网段,R2访问R3是通过R1还是R4?

为什么?

答:

根据BGP选路原则,此时匹配其中的第九条,因为R1的router-id小于R4的router-id,故数据包从R1到达R3。

问题8:

怎样通过控制MED,R2访问R3从R4走?

答:

通过增大R1上的MED值来实现。

具体可通过如下命令实现:

Router-mapMEDpermit10

Setmetric8

Routerbgp1

Neighbor12.1.1.2router-mapMEDout

怎么测试MED设置成功?

1、带源Ping

在R3上ping,,ENTER选择记录r

2、debug

在R1上,debugipbgpupdate

如何解决IBGP的水平分割:

1、路由反射器

2、联邦

路由反射器:

1、RR从EBGP收到的路由,即会发给客户端,也会发给非客户端

2、RR从客户端收到的路由,会发给客户端、EBGP邻居以及非客户端

RR从非客户端收到的路由,只会发给客户端和EBGP邻居

3、

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

当前位置:首页 > 人文社科 > 文化宗教

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

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