BGP基础详解(HCIP)

一、BGP概述

二、BGP邻居关系的建立和配置

BGP邻居类型:

BGP邻居关系建立方法:

三、BGP路由产生方式

四、BGP通告原则与路由处理

五、BGP常用属性介绍

六、BGP选路原则

BGP十三条选路原则:

七、BGP路由聚合(汇总)

BGP路由汇总方法:

1、静态汇总:

2、自动汇总:一般不用

3、手动聚合(常用,主流)


学习目标:

一、BGP概述

二、BGP邻居关系建立与配置

三、BGP路由产生方式

四、BGP通告原则与路由处理

五、BGP常用属性介绍

六、BGP选路原则

七、BGP路由聚合

一、BGP概述

BGP 边界网关路由协议(边界:AS的边界),AS由同一个技术管理机构管理(企业、运营商ISP),使用统一的选路策略的一些路由器集合。

IGP:AS内部网关路由协议,实现AS内部的互联互通。

不同AS之间连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选。

BGP:AS互联互通的一种路由协议(数据中心、广域网、超大型企业)。

AS号:区分识别不同的AS,取值范围1-65535,分类两种:

1、1-64511是公有AS号,需要为用户或者企业提供互联网接入服务。

2、64512-65535是私有AS号,用于内部AS规划。

AS号老的长度为2个字节,16bit。

AS号新的长度为4个字节,32bit。

AS内部使用IGP协议计算和发现路由,例如:OSPF、ISIS、RIP、EIGRP等。

AS之间使用BGP来传递和控制路由。

BGP可以跨越多跳路由器建立邻居关系(IGP只能直连建立邻居,连续的建立邻居关系)

BGP是应用层协议

中国的BGP路由器和俄罗斯BGP路由器建立邻居,只要BGP邻居能建立,就能在邻居直接传递路由信息,中间路由器不需要存放路由器信息(中间路由器只是把BGP路由当做普通数据包进行路由转发)

为了实现路由按需求进行控制和选路,BGP设计了诸多属性携带在路由中,BGP的路由属性是人为设计的,BGP的路由属性是对BGP路由的进一步描述,作用就是为了实现BGP路由的控制选路防环管理

二、BGP邻居关系的建立和配置

BGP邻居发现,BGP是一种基于TCP协议的应用层路由协议,邻居关系不会自动建立,需要手动配置

BGP是一种单播通信,目的IP要事先知道。

80端口 HTTP

23端口 Telnet

20、21端口 FTP

25端口 SMTP

110端口 POP3

22端口 SSH

先运行BGP的一端发起TCP连接,源端口随机,目的端口179。

BGP建立邻居的地址要保证连通性。

1、B使用源端口号随机,目的端口号为179,向A发起连接。

BGP邻居类型:

1、EBGP:运行在不同的AS之间的BGP路由器建立的邻居关系为EBGP(External BGP外部BGP邻居)

2、IBGP:运行在相同AS内的BGP路由器建立的邻居关系为IBGP(Interna BGP)

BGP邻居关系建立方法:

EBGP实验:

1、直连物理接口配置EBGP邻居

在BGP中,一台路由器只能属于一个AS,只能配置一个AS号的进程

[R1]bgp 1

[R1-bgp]peer 192.168.10.2 as-number 2 指定的邻居地址为本端向邻居发送BGP报文的目的地址,同时这个地址应该是对端向本端发送BGP报文的源地址(我向邻居发包的目的地址,就是邻居向我发包的源地址,邻居一定能建立起来)

私网地址和公网地址不重要,根据实际情况确定,保证地址可达就行。

源地址默认为去往邻居地址路由的出接口IP:

(1)、查去往目的IP的路由表:

找到了出接口

(2)、查出接口对应IP,找到了发包去往目的IP的源IP:

BGP local router ID : 192.168.10.1 自己的Router ID

Local AS number : 1 自己所在AS号

Total number of peers : 1 邻居的数量 

Peers in established state : 1 已经正常建立邻居关系数量

BGP邻居表信息
PeerV AS MsgRcvdMsgSentOutQUp/DownStatePrefRcv
192.168.10.24 27676001:14:33Established0

Peer :邻居是谁。

V:使用BGP版本,目前使用版本4。

AS:邻居所在AS号。

MsgRcvd:从邻居收到的BGP报文数量。

MsgSent :发送给邻居的BGP报文数量。

OutQ:发送BGP出口队列上,有多少个BGP报文在等待传递给邻居,不是0可能是链路拥塞,还可能对端有问题。

Up/Down:邻居建立起来了多久,越长越稳定。

State:邻居状态,Established代表邻居OK。

PrefRcv:前缀接收情况,代表从邻居收到BGP路由的数量。

2、用Loopback接口配置EBGP邻居

使用两个物理口冗余建立BGP邻居,引入一条静态,两条链路会传递两条一样的路由:(增加了协议负担)

Loopback建立EBGP邻居,多链路上保障了冗余,而且不会重复传递路由。

写两条的等价路由:

peer 2.2.2.2 connect-interface LoopBack0

指定向邻居发送BGP报文的源地址为loopback0接口的地址

默认情况下EBGP邻居之间发送BGP报文的TTL=1(默认IBGP邻居TTL为255),既强制要求EBGP邻居直连(收到BGP报文减1,发的时候不减)

[R1-bgp]peer 2.2.2.2 ebgp-max-hop 2 (仅在EBGP邻居上使用)

修改EBGP邻居之间发送BGP报文的TTL值,两边TTL值不需要一样

这个时候引入静态:

不再有重复的:

IBGP邻居:

1、使用loopback口建立IBGP邻居

R4:

R5:

BGP邻居关系建立过程:

1、完成三次握手,三次握手的发起方B,A完成三次握手。

查看TCP发起方:

查看邻居详细信息:

本端是179,代表是对端主动发起的TCP连接

2、TCP握手结束,发起方会主动发open报文,用来进行参数协商。

Open报文:

(1)、邻居参数协商:

1)、自身AS号:和邻居指定的AS号一致,否则邻居无法建立。

2)、BGP Router ID:不能冲突,否则无法建立。

3)、Hold Time:邻居失效时间,默认是180s,如果不一致则协商小的。

4)、BGP Version:默认BGPv4,一般不存在版本不同。

(2)、BGP邻居能力的协商:

1)、协商能够传递何种类型的路由(多协议扩展路由):协商传递什么样的路由,地址族,默认传递IPv4单播地址,地址族协商一致,不一致邻居无法建立,默认IPv4单播地址族。

IPv4单播地址簇

IPv4组播地址簇

VPNv4地址簇

2)、路由刷新能力:即手动触发更新能力(BGP策略发生改变,需要通过手动进行触发更新)

3)、4字节AS号:需要协商是否支持4字节AS号。

3、为了做确认需要发生keepalive报文,作为协商成功的依据,邻居关系就会到Established,keepalive默认每隔60s周期性发送,180s没收到认为BGP邻居失效,断开TCP连接。

BGP的五种报文:OpenKeepaliveUpdateRoute-refreshNotification

Open:邻居建立和能力参数协商(至少有一个地址簇能力要一致,不支持4字节AS号不影响,不支持路由刷新功能也不影响)

Keepalive:默认每隔60s周期性发送,180s没收到认为BGP邻居失效,断开TCP连接。

Update:BGP路由传递以及撤销。

Route-refresh:用于手动进行BGP路由的触发更新,或者用于ORF功能。

Notification:通知报文,用于报错,收到这个报文只有一个结果,断开BGP连接(BGP邻居断掉)

BGP邻居状态机六种:(重要前三种)

1、Idle(空闲状态):

ldle是BGP连接的第一个状态,在空闲状态,BGP在等待一个启动事件,启动事件出现以后,BGP初始化资源,复位连接重试计时器(Connect-Retry),发起一条TCP连接,同时转入Connect(连接)状态。路由器在路由表中搜索去往neighbor指定的IP地址的路由,看是否有前往该地址的路由,如果没有明细路由的话,就会卡在这个状态,即使存在默认路由也是不可以的,因此此时不会主动的发起TCP连接,如果出现这样的情况,可以去查看show ip route(华为display ip routing-table) ,然后通过配置“静态路由"或者“通过IGP来通告"neighbor地址的IP来解决这个问题。

(1)、没有去往邻居地址的路由,无法发起TCP三次握手,也无法完成TCP的3次握手。

(2)、邻居发起的TCP握手,被本端拒绝,拒绝的原因是邻居发起TCP报文的源地址,不是本端指定的邻居地址

2、Connect(连接):

在Connect 状态, BGP发起第一个TCP连接, 如果连接重试计时器(Connect-Retry)超时,就重新发起TCP连接,并继续保持在Connect状态,如果TCP:

(1)、连接成功,就转入OpenSent状态,如果TCP连接失败,就转入Active 状态。

(2)、如果搜索到了,则开始建立TCP连接,如果成功的话,邻居状态则进入"connect'状态。

(3)、要分清楚是建立TCP连接的源地址和目标地址是什么,是双方的neighbor

(4)、如果双方指定的IP地址不相同,那肯定就得不到“期望”的TCP连接。

当发起TCP连接路由器,无法收到邻居TCP回应报文时,就会卡在connect状态,并且5秒后重传一次TCP连接请求, 再等待32秒左右,重新再次发起TCP连接请求,通常是由于发起端存在邻居地址的路由,并能主动发送TCP3次握手,但无法从邻居接收第二次握手的报文。通常是由于邻居缺乏到对端的路由,或者是应答报文中途被丢弃。

发起tcp连接的路由器,在5s内,如果没有得到邻居的任何回应报文,重传tcp报文,继续等待25s,还没有收到邻居的任何回应,会在重传tcp报文,在建立不起来重连。

3、Active(活跃):

在Active状态,BGP总是在试图建立TCP连接,如果连接重试计时器(Connect-Retry)超时,就退回到Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就继续保持在Active状态, 并继续发起TCP连接,没有收到对open-send报文的确认报文。

当发送TCP连接路由器,能收到相应的邻居应答报文,代表2台路由器能正常交互报文,但是依然无法建立起TCP的3次握手,将会进入到Active。

邻居之间地址可达,但建立BGP邻居的源目地址不匹配导致。本端主动发起TCP连接的源地址和对端指定的邻居地址不匹配,导致本端处于active, 对端处于idle状态。

Idle是我不能发,Connect状态是不知道邻居在不在,得不到任何邻居的反馈(我能发对方不理我),Active邻居有反馈,三次握手无法建立,但是都意味着三次握手无法建立,只是细节不一样(我能发,对方也能回,就是协商谈不好)

4、OpenSent:发送Open报文所处的状态,已经发送Open报文,并等待接收邻居的Open报文。

5、OpenComfirm:收到了邻居的Open报文,并发送Keepalive报文。

6、Established:收到Keepalive报文。

BGP协议的特点:

1、BGP不会对路由进行计算

2、BGP只是路由的搬运工

 

三、BGP路由产生方式

BGP路由生成方式:

1、Network:

(1)、BGP协议的Network命令,不再具备将接口加入BGP进程的逻辑。

(2)、逐条将IP路由表中已存在的路由引入到BGP表,并通告给邻居

(3)、network可以精确控制发布。

2、import-route

(1)、将路由表中的路由引入到BGP表中,高效快捷。

BGP做路由过滤实验:

过滤前:

R1引入:

R2的BGP路由表:

使用前缀列表做过滤:

[R1]ip ip-prefix 1 permit 2.2.2.2 32 前缀列表1

[R1]route-policy test permit node 10定义策略

[R1-route-policy]if-match ip-prefix 1满足前缀列表1

R2的BGP表:

四、BGP通告原则与路由处理

BGP通告路由的原理和规则:

1、BGP通过Network和Import两种方式生成BGP路由,BGP路由封装在Update报文中通告给邻居。BGP在邻居关系建立后才开始通告路由信息。

2、Update消息主要用来公布可用路由和撤销路由,Update中包含以下信息:

(1)、网络层可达信息(NLRI,N【网络】、L【层】、R【可达】、I【消息】) :用来公布IP前缀和前缀长度。

(2)、路径属性:为BGP提供环路检测,控制路由优选。

(3)、撤销路由:用来描述无法到达且从业务中撤销的路由前缀和前缀长度。

3、在通告BGP路由时,由于各种因素的影响,为了避免路由通告过程中出现问题,BGP路由通告需要遵守一定的规则,下面进行详细介绍。

BGP通告规则:

1、仅将自己的最优路由发布给邻居,带“>”号的路由。

2、通过EBGP获得的最优路由发布给所有BGP邻居。

3、通过IBGP邻居获得的最优路由不会发布给其他的IBGP邻居(IBGP水平分割,AS内部防环)

4、BGP与IBGP同步:(从IBGP邻居得到的路由是否传递给EBGP),从IBGP邻居得到的路由同步检测通过后传递给EBGP邻居(IBGP到目的可达后才传递,防止产生路由黑洞)

5、如果同步功能关闭,从IBGP邻居得到的路由只要下一跳可达并且最优即可传递给EBGP邻居。

路由同步过去是一回事,能不能通是另外一回事。

解决BGP路由黑洞方法:

(1)、把EBGP的路由引入到IBGP协议OSPF中(5类LSA),比较消耗设备资源,BGP路由数量特别庞大(该方法基本被淘汰)

1)、引入到IGP协议中,增加计算路由的负担,BGP路由振荡,IGP路由也会产生振荡。

(2)、AS内所有路由器均运行BGP协议,IBGP全互联(主流方案)

总结:只要能解决BGP路由黑洞问题,BGP同步检查功能,开启和关闭就不再重要了。

EBGP路由引入ISIS中实验:

一条路由的下一跳为0.0.0.0,就是自己产生或者始发的路由:

看路由的详细信息,local本地产生,通过network

R4就没有:

i是总IBGP邻居学来:

R4通过IGBP学到路由没有传递给R5:

两种可能性:

1、没同步不能传递R5(烟雾弹)

2、不是最优的路由,不能传R5(根因就是路由下一跳不可达)

R2的ISIS引入BGP路由,同步了1.1.1.0路由

但是依旧R5没有,这个时候就不是同步问题了,是没有打“*”号,valid有效,下一跳可达,传递过程中下一跳不变,导致下一跳不可达

R4写一条去往这条路由的静态路由:(很低效)

下一跳可达,可以同步R5了:

R5:

下一跳:从EBGP邻居传来的路由,传递IBGP邻居的时候,下一跳默认不变,可能导致下一跳不可达

解决方法:

[R2-bgp]peer 4.4.4.4 next-hop-local 该命名只对IBGP邻居生效,将从EBGP邻居得到的路由,传递给指定的IBGP邻居时,下一跳修改为自身向该IBGP邻居发送BGP报文的源地址。

IBGP建立邻居配置的三板斧:

peer 4.4.4.4 as-number 232

peer 4.4.4.4 connect-interface LoopBack0

peer 4.4.4.4 next-hop-local

BGP路由传递给EBGP邻居时,向该EBGP邻居发送BGP报文的源地址。

R4不能把路由传递到R5的根本原因是下一跳不可达,导致路由不是最优的(跟同步无关)

undo synchronization 关闭功能:(华为没有命令开启同步功能,也开不了同步)

BGP路由同步是BGP路由黑洞检测机制,并不能解决BGP黑洞问题。

IBGP全互联实验:

BGP路由信息处理:

1、当从BGP邻居接收到Update报文时,路由器将会执行路径选择算法,来为每一条前缀确定最佳路径。

2、得出的最佳路径被存储到本地BGP路由表(Local_RIB)中,然后被提交给本地IP路由表(IP_RIB),以用作安装考虑。

3、被选出的有效的最佳路径路由将会被封装在Update报文中,发送给对端的BGP邻居。

(Local_RIB)表就是:本地的路由信息表

(IP_RIB)表就是:路由表

BGP学到不一定就能加路由表,如果通过其他方式学到相同路由,要比优先级,然后加表:

BGP学到路由在路由表中:

静态学到之后,静态优于BGP加表:

五、BGP常用属性介绍

BGP常用属性:(BGP路由属性,重点)

问题1:BGP如何控制选路(选路)

问题2:AS之间路由传递环路(防环)

BGP属性分类:具体属性具体学习

1、公认:所有运行BGP的路由都能支持的属性。

(1)、公认必遵(Well-known Mandatory):必须携带

1)、Nexthop下一跳属性:

@默认情况下传给EBGP邻居的BGP路由的下一跳设置为自身向这个EBGP邻居发送BGP报文的源地址。

@默认请况下从EBGP邻居得到的BGP路由再传给IBGP邻居时,此BGP路由的下一跳默认不变。可以使用peer next-hop-local修改下一跳。

R1发R2,EBGP之间传递路由下一跳为BGP报文的源IP,而IBGP之间传递默认下一跳不会,需要命令改动。

@默认情况下凡是自身起源BGP路由在传给任何BGP邻居时,总是把此路由的下一跳设置为向BGP邻居发送BGP报文的源地址。

2)、Origin起源属性:定义了路径信息的来源,标记一条路由是怎么成为BGP路由的。

@起源属性可以被修改,一般起源属性是一种BGP选路属性,可以用于BGP路径的选路,通过修改起源属性可以控制BGP路径

优先级关系:i > e > ?

network或者import产生BGP路由,“i”来描述起源属性,起源属性有三种:“i”“?”“e”

”i“:表明BGP路由是由network命令发布的。

"?":表明BGP路由是由import命令引入的。

“e”:表明BGP路由是从EGP协议(EGP协议目前已经淘汰了)引入的。

3)、AS_Path:当BGP路由传递给EBGP邻居时,会将自己的AS号添加到AS_Path属性的最前面(发送时候打上自己的AS号),当BGP路由传递给IBGP邻居时不会添加自己的AS号(只有AS之间传递才会打上自己的AS号)有两个作用:

@选路,经过AS数量少的路径最优。

@在AS之间实现BGP环路防范(防环),从EBGP邻居得到路由时,AS_Path中存在自身的AS号,则认为从我这边传出去的路由,再回来产生了环路会丢掉这条路由。

AS内部防环是IBGP水平分割AS之间通过AS_Path防环

防环检测机制:EBGP邻居之间进行AS_Path检测,IBGP邻居之间不进行AS_Path检测。

这个邻居传递给我的路由不做AS_Path检测

AS_Path可以在IBGP和EBGP邻居之间修改,思科只允许在EBGP邻居之间修改。

[R2]ip ip-prefix 1 permit 1.1.1.0 24

[R2]route-policy local permit node 10

[R2-route-policy]if-match ip-prefix 1

[R2-route-policy]apply local-preference 300 本地优先级修改为300

[R2]route-policy local permit node 20 不做任何修改

[R2-bgp]peer 10.10.1.1 route-policy local import 引用策略

R3没做策略前:

R3策略后:

(2)、公认任意(Well-known Discretionary):根据需要携带

1)、Local_Preference本地优先级:仅在IBGP邻居之间传递,不会传递EBGP邻居,优先级越大越优(控制流量访问外部的出口)

R2修改本地优先级为200:自身不会有变化

传递给IBGP邻居,本地优先级变为200:

2)、Atomic_aggregate

2、可选:厂家开发的某些满足特殊需求的属性,但并不是所有路由器都支持。

(1)、可选过渡(Optional Transitive):自己不知道用途,但是可以继续传递下去

1)、Aggregator

2)、Community团体属性:早年思科私有属性,想要传递团体属性,必须在BGP之间配置传递的命令,有两种作用:

@限制BGP路由传递范围(公认团体属性)

@给BGP路由添加标记,方便管理(扩展团体属性)

@BGP路由可以同事拥有公认团体属性和扩展团体属性。

        不同于IGP的tag,tag只能打一个管理有限,不能多维度的标识路由。

        BGP路由可以拥有多个团体属性,根据管理需求和业务需求灵活进行路由管理。

团体属性分为:

@公认团体属性:

1、internet:默认属性,所有路由都属于internet,该属性可以通告所有BGP邻居。

2、No_Export:收到此属性的路由后,不将该路由发给其他EBGP邻居。

3、No_Advertise:收到此属性的路由后,不将该路由通告给任何BGP邻居。

4、No_Export_Subconfed:在联盟中使用,仅在成员AS内传递。

当路由存在多个公认属性时,传递范围最小的生效。

@扩展团体属性:用一组4字节为单位的列表来表示,路由器中扩展团体属性格式为aa:nn或团体号(aa取团体号【范围是0-4294967295,在RFC中0-65535,4294901760-4294967295是保留】,nn是管理员定义的团体标识),AA:NN例如1:100(aa和nn取值都0-65535)

实验:

写路由策略,打上团体属性1:2

[R1]route-policy tt1 permit node 10

[R1-route-policy]apply community 1:2

BGP通告路由时携带

[R1-bgp]network 192.168.2.0 24 route-policy tt1

通告团体属性给邻居:

通告前:

[R1-bgp]peer 10.10.1.2 advertise-community

执行命令通告后:

实验:可选过度属性——团体属性——公认团体属性No_Export

需求:电信的路由打上团体属性,联通打上团体属性,有一种团体属性可以让EBGP邻居路由不互相传递,可以自己做到源进源出,联通、电信不互传。

[R1]ip route-static 172.172.1.0 24 NULL 0

[R1]ip ip-prefix 1 permit 172.172.1.0 24

[R1]route-policy lt permit node 10

[R1-route-policy]if-match ip-prefix 1 只对172添加no-export

[R1-route-policy]apply community 1:11 no-export

[R1]route-policy lt permit node 20

[R1-bgp]network 172.172.1.0 24

[R1-bgp]peer 10.10.1.2 route-policy lt export

[R1-bgp]peer 3.3.3.3 advertise-community 通告邻居携带团体属性

[R1-bgp]peer 4.4.4.4 advertise-community

R1本地不会对172添加团体属性:

R2收到后携带团体属性no-export:

不会传递到电信:

(2)、可选非过渡(Optional Non-transitive):自己不知道用途,就会忽略,不会继续传递下去

        1)、MED:早年思科私有属性,MED是BGP的多出口鉴别器,也叫BGP cost,越小越优,仅在相邻的两个AS之间传递,收到此属性的 AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由(外部访问本地的入口)

华为设备通告MED属性的规则

1、本地始发的路由MED值传递给所有邻居。

IBGP邻居收到:

EBGP邻居收到:

2、从EBGP邻居得到的路由的MED不会传递给EBGP邻居,影响邻居AS的选路(只影响邻居,不会影响第三方)

1改了MED,会影响AS 1中的3,但路由传递到AS 2中不会影响4

3、从EBGP邻居得到的路由的MED可以传递给IBGP邻居。

EBGP:

传递到IBGP:

4、从IBGP邻居得到的路由传递给EBGP邻居不携带MED(AS 100到AS 111携带MED,AS 111到AS 222不会携带EMD)。

5、从联盟EBGP邻居或联盟内始发的的路由的MED值在整个联盟保持传递。

MED属性在IBGP和EBGP邻居(包括成员EBGP) in和out方向都可以修改。

六、BGP选路原则

BGP十三条选路原则:

BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:

1、该路由是到达目的地的唯一路由,直接优选。

2、对于到达同一目的地的多条路由,优选优先级最高的。

3、对于到达同一日的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。

一般来说,BGP计算路由优先级的规则如下:(2、3、5、6、7是对BGP控制的主要手段)

 

1、丢弃下一跳不可达的路由(丢弃代表不传递邻居),“*”代表下一跳可达。

2、优选Preference Value值(协议首选值)最高的路由(华为私有属性,仅本地有效,影响某一台路由器)

3、优选本地优先级(Local_Preference)最高的路出(影响整个AS内所有路由器)

4、优选手动聚合>自动聚合>network> import>从对等体学到的。

5、优选AS_Path短的路由。

6、起源类型IGP>EGP>Incomplete。

7、对于来自同一AS的路由,优选MED值小的。

8、优选从EBGP学来的路由(EBGP>IBGP)

9、优选AS内部IGP的Metric最小的路由。

10、优选Cluster_List最短的路出(路由反射器才比)

11、优选Orginator_ID最小的路山(路由反射器才比)

12、优选Router_ID最小的路由器发布的路由。

13、优选具有较小IP地址的邻居学来的路由(邻居地址传来最小的路由)

Router_ID相同场景:

Preference Value(协议首选值)对选路的影响:

Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。Preference Value越大优先(和本地优先级作用一样,但是影响范围不一样,Preference_Value只影响AS内某台路由器,本地优先级影响整个AS内所有路由器)

1995年OSPF、1994年ISIS

聚合方式对选路的影响:

手动汇总>自动汇总

Aggregaled route手动汇总:

[R2-bgp]aggregate 192.192.0.0 16

Summary automatic route自动汇总

EBGP邻居的路由优于IBGP邻居的路由:

AS内部GP Metric对BGP选路的影响:

Router-ID与IP地址对BGP选路的影响:

七、BGP路由聚合(汇总)

BGP路由聚合:

BGP在AS之间传递路由信息,路由信息很庞大,BGP网络面临的两个问题:

1、路由数量庞大,占用内存,消耗带宽。

2、如果路由条目出现频繁的更新和撤销,对网络的稳定会造成影响。

为了解决这两个问题,使用路由聚合做优化。

client AS(客户AS):就是二级ISP(例如长城宽带等等,网络设备性能不太好)

联通、移动将明细路由发给电信,电信做一个路由汇总发给长城宽带。

BGP路由汇总方法:

1、静态汇总:

明细失效,汇总不会失效,弊端是明细全部故障,会产生路由黑洞。

利用静态路由执行BGP汇总:

(1)、并不是真正意义上BGP路由汇总,只是利用BGP发布路由的特点来实现汇总的效果。

(2)、明细路由并不会被抑制,还是会正常的通告给邻居,需要做明细路由的过滤。

(3)、会丢弃明细路由的某些BGP路由属性,存在路由环路的风险。

(4)、明细路由是否存在和汇总路由之间不存在依赖关系,导致汇总路由不能真实反应网络现状。

1、先把明细通过静态汇总起来

2、然后通过network发布出去,明细汇总都发,无用功

3、做过滤

过滤前R4:

过滤后R4:

R4上环回口模拟二级ISP后的一个客户:

去ping移动和联通:

转发原理

BGP路由表:

静态路由表:

二级ISP的客户,根据汇总路由发包到R3,R3收到后数据包后,路由表中EBGP路由和静态汇总都能命中这条路由,虽然静态汇总指向的接口是一个NULL 0接口,但是根据转发路由的最长匹配原则,使用掩码长度最长的去转发,这个时候会使用EBGP的明细路由去转发(明细路由精确匹配)。

2、自动汇总:一般不用

(1)、仅对自身通过import-route命令发布的路由生效。

(2)、只能汇总成主类网络号。

(3)、明细路由会被抑制。

汇总前:

R4:

汇总后:

明细被抑制,不会传递:“s”

自动汇总问题:地址规划重要性

3、手动聚合(常用,主流)

(1)、不管路由是自己产生还是邻居学到都能进行汇总。

(2)、可以实现精确汇总,支持CIDR(超网)。

(3)、可以对汇总路由的属性做编辑。

(4)、可以继承明细路由的相关属性,防止环路。

(5)、明细路由全部失效,汇总路由才会失效。

手动汇总:

丢失了AS_Path属性,明细路由没有抑制:

正确手工汇总:

抑制明细路由、继承AS号.

R4效果:

R1效果:只收其他区域的,自己区域产生的汇总不收

AS-Path:表明路由传递的AS的次序,有序的。

AS-Path{ }:无序的AS-Path,防环用,不是标识路由传递的次序。“{ }”中的AS号,只能算是一个AS长度。

“{ }”:继承方式是取全集

问题:汇总完的路由,R3和R4都能访问R1和R2的192.168.0.0/21,而R1和R2之间192.168网段不能通,汇总路由发R1和R2因为AS-Path不会接收。

解决方法一:开启R2开启allow-as-loop,接收含义192.168.含有自己AS号的路由,然后做路由过滤掉传来172的路由。

解决方法二:

[R3]ip ip-prefix 1 permit 192.168.0.0 21

[R3]route-policy as1 permit node 10

[R3-route-policy]if-match ip-prefix 1

[R3-route-policy]apply as-path 1 overwrite传递给R2的时候AS-Path改为1

[R3]route-policy as1 permit node 20

[R3]ip ip-prefix 1 permit 192.168.0.0 21

[R3]route-policy as2 permit node 10

[R3-route-policy]if-match ip-prefix 1

[R3-route-policy]apply as-path 2 overwrite传递给R1的时候AS-Path改为2

[R3]route-policy as2 permit node 20

  • 13
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数通工程师小明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值