BGP路由协议总结 

您所在的位置:网站首页 邻居发现协议使用几种类型的icmp数据包 BGP路由协议总结 

BGP路由协议总结 

2023-03-17 12:01| 来源: 网络整理| 查看: 265

路径矢量路由协议

了解AS

AS(Autonomous System)

AS的经典定义为:在单一的技术管理下,采用同一种内部网关协议和统一的度量值在AS内转发数据包,并使用一种外部网关协议将数据包转发到其他AS的一组路由器。

分类:

公有AS(必须申请):0—64511。电信:4134;网通:9929;CN2:1609 私有AS:64512--65535

网站:http://www.cidr-report.org/as6447/autnums.html 。看到所有公有AS对应的机构,可以访问BGP,请telnet route-server.ip.att.net

概要

BGP是一种EGP(外部网关协议)。不同于以前的RIP,EIGRP和OSPF,它们都属于IGP(内部网关协议)

BGP是一种路径矢量的路由协议,不同于RIP的距离矢量的路由协议。

BGP的开销是从源路由器到目标路由器经过的AS;而RIP的开销是从源路由器到目标路由器路径的度量值。在BGP中,一个AS相当于一个大的路由器,直接影响的是就是AS的下一跳。所以,BGP又被叫做AS-by-AS routing protocol

BGP的使用

什么是时候要用到BGP

大型企事业连接多个SP(多宿主) ISP之间(当一个数据包从一个AS传输到另一个AS的时候)。 AS交换点(当一个AS连接多个AS的时候)。 大型企业网

ISP为什么用BGP,而不是别的IGP

方便管理,安全性能好(阻止不同AS之间的路由、过滤和认证功能) 承载的路由条目海量(10w+),而ospf(1w+),ISIS(2w+) 策略比一般的IGP更强(次优路由),更多 可扩展性强,不仅能传IPv4、v6,还能传VPNv4、组播VPN等。 BGP的特征 支持VLSM,CIDR。 支持增量更新与触发更新。 使用TCP协议作为可靠地传输机制,端口号为179 没有组播地址 60s/次,180s dead,通过keeplive包来验证TCP的连通。 属性化(metric只是属性当中的一员)。 支持大型的网络拓扑。 BGP和IGP的关系 BGP承载的是一个外部客户路由,IGP承载的是内部核心路由 IGP不会因BGP的影响而变化 BGP不会因IGP的影响而变化,直到BGP的下一跳不可达 BGP是IGP的递归查找 BGP协议报文 BGP协议报文封装 9-8 BGP使用TCP来承载BGP协议报文,使用的TCP端口号是179号端口。 BGP协议字段分成BGP头部,BGP Message和BGP Data三个部分。 BGP协议报文类型

BGP头部字段格式:

10-7

根据BGP头部不同的Type字段,BGP Message也各有不同,主要分成5类:

Open:负责和对等体建立邻居关系。 KeepAlive:该消息在对等体之间周期性地发送,用以维护连接。 Update:该消息被用来在BGP对等体之间传递路由信息。 Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。 Route-refresh:用来通知对等体自己支持路由刷新能力; Open报文 11-7 Version:BGP Open报文的版本号。 My AS:本AS号。 Hold Time: BGP Identifier:指定BGP的Route-ID。 Variable:BGP能力字段,能力字段会相互会协商IPv4、IPv6和组播等 Update报文 12-7 Path Attribute:路径属性 NLRI(Network Layer Reachability Information):即网络层可达信息,由于TCP是一种可靠地面向连接的协议,需要保持连接的可达性,BGP的keeplive包便提供了这样一个机制 触发更新和增量更新:由于BGP是一个庞大的路由系统,每时每刻的更新会导致资源的浪费。IBGP 5s/次;EBGP 30s/次 撤销路径 Notification报文 13-7 Route-Refresh报文 14-7

通常发生在邻居路由器做完策略后,我还没有得到更新,我就会发送一个这样的报文

通常我会利用clear命令来实现这一步骤

15-8 BGP协议邻居关系 邻居关系建立

由于BGP邻居关系建立在TCP连接的基础之上,所以可以通过IGP或静态路由来提供TCP连接的IP可达性

关于建立邻居使用的hello报文:

在IGP中的hello包无非就是发现建立邻居,维持邻居关系(keeplive)两大作用。 在BGP中,hello包被细分成open包(只发一次)和keeplive包(60s/次;180s dead)。 1-1 BGP neighbor=BGP peer(对等体) BGP分为IBGP和EBGP,IBGP是内部的(internal),EBGP是外部的(external)。所以,IBGP形成邻居的路由器在同一个AS,而EBGP形成邻居的路由器在不同的AS。 注:IBGP必须通过IGP来保持互通。 IBGP邻居 1-10 IBGP,全称Internal BGP,即在AS内部BGP路由器之间建立的邻居关系。 IBGP邻居可以不直连,但要保证TCP 179的连通,可以通过neighbor命令来实现。 IBGP不支持负载均衡。 EBGP邻居 2-7 EBGP,全称External BGP,即在AS之间BGP路由器之间建立的邻居关系。 EBGP的邻居默认情况下是直连的,但是也可以不直连,这需要修改TTL。 EBGP默认不支持,但是有办法让它支持。 指定更新源和EBGP多跳

更新源,即update-source。在BGP通过neighbor指邻居时,会自动带上一个update-source信息,默认是:源是本端连接对端接口IP地址,目的是neighbor指向邻居的地址。

2 在EBGP中,update-source就是自己的物理口,而指的也是对方的物理口,匹配,邻居建立。 在IBGP中,由于是指peers的环回口,而update-source却是学习到这个路由(IGP)的物理口。所以,有必要把update-source改写成loopback口。一边做也可以,但是建议两边都做上。 注意:我们建议用环回口作为update source口,主要目的是为了冗余。

EBGP多跳,称EBGP-multihop(EBGP多跳)。这里的hop=TTL,默认EBGP发来的路由协议报文的TTL=1,即1跳,而IBGP默认是多跳。这样问题就来了,如果EBGP是用环回口建立邻居,那么EBGP邻居之间的路由协议报文就无法抵达。针对这个问题,解决的办法很简单,修改TTL,即EBGP多跳。

邻居建立的状态机制 3-9 Idle:查找我neighbor的邻居,并看是否有路由到达邻居。 Connect:我找到了邻居,并与它完成了TCP的3次握手。 Open sent:我开始向它发送我的Open包,里面含有我的基本信息。 Open confim:它收到了我的包,查看和它的信息是否一致,不一致不给我回包。 Exstablished:邻居建立,可以路由了。

常见的几种状态:

Idle:我neighbor你了,但是我的路由表里没有你的路由。解决:IGP路由可达。 Exstablished:邻居建立。sh ip bgp summary中,可以从state字段中看到的是数字,这个数字代表我从邻居学习到了多少条路由 Active:如果出现这种情况,有四种可能性: 我的open包到你那了(说明我neighbor你了),但是你没有我的路由。 你neighbor我的地址配错了。 你根本没有neighbor我。 AS号没有配置。 BGP邻居关系实验 目的一:BGP邻居关系的建立(neighbor和update Source问题) 5

分为IBGP和EBGP邻居关系的建立

EBGP peers: R2: R2(config)#router bgp 2 R2(config-router)#bgp router-id 2.2.2.2 R2(config-router)#neighbor 192.168.12.1 remote-as 1 R1和R2的配置一样   IBGP peers: R2(config)#router ospf 100 R2(config-router)#router-id 2.2.2.2 R2(config-router)#network 2.2.2.0 0.0.0.255 a 0 R2(config-router)#network 192.168.23.0 0.0.0.255 a 0 //所有AS内的BGP路由器都起IGP   R2(config)#router bgp 2 R2(config-router)#neighbor 4.4.4.4 remote-as 2 //IBGP指R4 R2(config-router)#neighbor 4.4.4.4 update-source loopback 0 R4和R2的配置一样

注意:

在IGP中,network的作用有两个:hello建立邻居和路由的通告。 在BGP中,由于是基于TCP,TCP是一个点到点的连接,不支持广播,只能单播。 所以,BGP用neighbor指邻居,而network传路由。

验证:

R2#sh ip bgp summary //3张表中的BGP表简要信息。 BGP router identifier 2.2.2.2, local AS number 2:自己的AS BGP table version is 1, main routing table version 1 邻居 版本 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.12.1 4 1 6 6 1 0 0 00:03:46 0   R2#sh ip bgp neighbor //3张表中的邻居表,邻居的详细信息,很多的。   R2#sh tcp brief TCB Local Address Foreign Address (state) 65053418 192.168.12.2.32373 192.168.12.1.179 ESTAB 本路由的随机端口号 R1的179端口号 目的二:EBGP-multihop

EBGP-multihop(EBGP多跳),这里的hop=TTL,默认EBGP发来的报文的TTL=1(1跳),而IBGP默认是多跳

3

这里是EBGP的双线冗余,所以就不能neighbor物理口了,环回口是最佳选择。 但是EBGP的peers有没有对方的换回口的路由,怎么neighbor呢? 看!做静态路由,双线的静态路由。

回到话题,默认EBGP发来的报文的TTL=1,这~~不就意味着报文到了对方就不能再穿了? 环回口绝对是不能到了,因为环回口是另一个网络。 所以,要修改TTL=2或大于2

EBGP-multihop配置: R4和R5之间EBGP对指环回口

R5(config)#ip route 4.4.4.4 255.255.255.255 Ethernet0/1 //静态让R5上有4.4.4.4的路由 R5(config)#router bgp 3 R5(config-router)#neighbor 4.4.4.4 remote-as 2 R5(config-router)#neighbor 4.4.4.4 update-source loopback R5(config-router)#neighbor 4.4.4.4 ebgp-multihop //不配就是EBGP TTL=255 R4和上一样 目的三:路由的通告(network,show查看) 4

Network在IGP和BGP区别 在IGP中,network宣告的是接口,即路由器是宣告自己直连的本地接口。 在BGP中,network宣告的是路由,即路由器是宣告自己路由表里的路由。 PS:BGP宣告的时候,一定要学到的路由的掩码一样

Network在BGP的原则:

从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP) 从IBGP获得的路由不向它的IBGP邻居通告(除非RR) 从IBGP获得的路由是否通告给它的EBGP对等体要靠同步来决定 多条路径时,BGP会选择一条最优的路径 R1(config)#router bgp 1 R1(config-router)#network 1.1.1.0 mask 255.255.255.0 //前提是确保R1的路由表里有 R2和上一样

验证

R2#sh ip bgp //这就是3张表中的BGP表 BGP table version is 3, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 1.1.1.0/24 192.168.12.1 0 0 1 i *> 2.2.2.0/24 0.0.0.0 0 32768 i //*表示这条路由是可用的;>表示是最优的路由。   R4#sh ip bgp //R1-R2-R4 BGP table version is 2, local router ID is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * i1.1.1.0/24 192.168.12.1 0 100 0 1 i *>i2.2.2.0/24 2.2.2.2 0 100 0 i //i表示是从内部AS学到的路由。图中,R4的1.1.1.1的路由是从R2(同AS)学到的。 //不打i的情况:本地通告和从EBGP学到的路由。例如R2学到的1.1.1.1的路由 //发现:R4的1.1.1.1是没有>号的,说明这个路由不是最优的。 目的四:解决IBGP中路由不优问题(同步和下一跳) 5

目的三的结果告诉我,R4的1.1.1.1是没有>号的,说明这个路由不是最优的。

造成路由不是最优会导致:

不放进路由表。 不会给其他BGP邻居传这条路由。

造成不优的原因有:

BGP Synchronization(同步) 下一跳

同步:只是针对IBGP来说的,默认的我从IBGP学习到的路由,我不会放进路由表,也不会宣告给邻居路由器。直到我从IGP也学习到这条路由。结合拓扑:R4中1.1.1.0/24路由为什么是不优的呢?是因为R4没有通过OSPF学到1.1.1.0/24。

同步的好处:

避免了数据层面的路由黑洞(路由可达,数据包去回不来)。Eg:每个路由器中都有1.1.1.0/24的路由。 确保穿越AS信息的一致性 注:同步只是针对数据层面的问题,但是解决数据的问题的方法有很多,包括MPLS。所以,现在的路由器,特别是Cisco IOS 12.2(8)T或更高的版本中,默认是关闭同步。

下一跳:再来看看R4上1.1.1.0/24

R4#sh ip bgp Network Next Hop Metric LocPrf Weight Path * i1.1.1.0/24 192.168.12.1 0 100 0 1 i *>i2.2.2.0/24 2.2.2.2 0 100 0 i //BGP中的下一跳不是路由器,而是AS,所以知道为什么下一跳不可达了吧! //想一想:R4上会有12网段的路由吗?肯定没有,因为只有R2、R3和R4运行了OSPF,但R2并没有宣告12网段到OSPF。 //这是一个下一跳不可达的问题。

解决不优的方法有:

对于同步:从IGP学习到/直接关闭(no synchronization),关闭同步配置:

R4(config)#router bgp 2 R4(config-router)# no synchronization

对于下一跳:静态/next-hop-self

6

当R1把1.1.1.0/24的路由通过EBGP传到R2时,R2会自动把1.1.1.0/24路由的下一跳改成自己,这样R4中1.1.1.0/24路由的下一跳就是R2了。通过IGP,R4知道R2的。

这个命令建议在AS边界路由器向自己AS的IBGP邻居做的。

R2(config)#router bgp 2 R2(config-router)#neighbor 4.4.4.4 next-hop-? next-hop-self next-hop-unchanged R2(config-router)#neighbor 4.4.4.4 next-hop-self

验证:

R4#sh ip bgp Network Next Hop Metric LocPrf Weight Path *>i1.1.1.0/24 2.2.2.2 0 100 0 1 i *>i2.2.2.0/24 2.2.2.2 0 100 0 i //变成最优了,下一跳也变了(update-Source)   R4#sh ip route //BGP的路由表 1.0.0.0/24 is subnetted, 1 subnets B 1.1.1.0 [200/0] via 2.2.2.2, 00:05:42 2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks //路由表里也有了1.1.1.0/24这条路由。   R5#sh ip bgp Network Next Hop Metric LocPrf Weight Path *> 1.1.1.0/24 4.4.4.4 0 2 1 i *> 2.2.2.0/24 4.4.4.4 0 2 i //R4优了,就会向其他BGP邻居传这条路由,所以,R5也有这条路由了。 目的五:解决数据层面的路由黑洞以及peer-group的应用

前提:路由层面打通了,即1.1.1.0/24的路由在R5的路由表中了

现在,R5要向R1的1.1.1.1发送消息啦,我们看一下怎么走滴?……

R5#sh ip route 1.0.0.0/24 is subnetted, 1 subnets B 1.1.1.0 [20/0] via 4.4.4.4, 00:33:27 //1.1.1.1的路由AD是20,EBGP学习到的,下一跳4.4.4.4 R4#sh ip route 1.0.0.0/24 is subnetted, 1 subnets B 1.1.1.0 [200/0] via 2.2.2.2, 00:33:18 2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks O 2.2.2.2/32 [110/21] via 192.168.34.3, 05:21:58, Ethernet0/0 B 2.2.2.0/24 [200/0] via 2.2.2.2, 02:22:26 //1.1.1.1的路由AD是200,IBGP学习到的,下一跳是2.2.2.2(R4 neighbor 2.2.2.2了嘛!) //再看看,2.2.2.2的路由是IGP的OSPF学习到的,下一跳是R3的物理口,扔给了R3   R3#sh ip route 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 192.168.23.2, 05:23:22, Ethernet0/1 3.0.0.0/24 is subnetted, 1 subnets C 3.3.3.0 is directly connected, Loopback0 4.0.0.0/32 is subnetted, 1 subnets O 4.4.4.4 [110/11] via 192.168.34.4, 05:23:22, Ethernet0/0 C 192.168.23.0/24 is directly connected, Ethernet0/1 C 192.168.34.0/24 is directly connected, Ethernet0/0 //发现:R3上并没有1.1.1.0的BGP路由。 //就这样,数据层面的路由黑洞出现了……

上文已经提过了解决黑洞的方法,现采用第二种:BGP邻居的full mesh。

7

引出一个技术:peer group,想一想,R3和R2、R4建立邻居的命令是一样的,这是不是要一个一个地配置呢?这时,peer group出现了,他能:

减小路由器的buffer 减少命令行

peer group 配置

R3(config-router)#neighbor cisco peer-group //下面是peer-group的模板,模板的名字是cisco R3(config-router)#neighbor ? A.B.C.D Neighbor address WORD Neighbor tag X:X:X:X::X Neighbor IPv6 address R3(config-router)#neighbor cisco remote-as 2 R3(config-router)#neighbor cisco update-source loopback 0   R3(config-router)#neighbor 2.2.2.2 peer-group cisco //调用 R3(config-router)#neighbor 4.4.4.4 peer-group cisco   分别在R2和R4做一条指向R3的IBGP。   R2(config)#router bgp 2 R2(config-router)#neighbor 3.3.3.3 remote-as 2 R2(config-router)#neighbor 3.3.3.3 update-source loopback 0 R3同上一样

这时,所有路由器的路由表中都有了1.1.1.0/24的路由。路由黑洞解决……

目的六:R5 ping R1 !!!! and R5 ping R1 so 5.5.5.5 !!!!

任务是完成 R5 ping R1 !!!! and R5 ping R1 so 5.5.5.5 !!!! 要知道,要完成数据包 ping R5 到 R1!!!,所有路由器光有1.1.1.0/24的路由是没有用的。因为ping包含echo-request和echo-replay。echo-request包是可以从R5到R1,但是echo-replay回不来(R1到R5),因为R1的路由表中没有45的网段和R5环回口的路由。

解决:在R5上把R5的环回口和45网段通告出来。

配置:

R5(config)#router bgp 3 R5(config-router)#network 5.5.5.0 mask 255.255.255.0 //检查各个路由器中的5.5.5.0/24是不是最优的,无非就是下一跳和同步。

验证

R5#ping 1.1.1.1 so l0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: Packet sent with a source address of 5.5.5.5 !!!!! 好了,做通了,不容易啊!!! 目的七:AS间的路由传输 重分布IGP到BGP Network 路由汇总 目的十:BGP在show中的各种状态 *和> R2#sh ip bgp //这就是3张表中的BGP表 BGP table version is 3, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 1.1.1.0/24 192.168.12.1 0 0 1 i *> 2.2.2.0/24 0.0.0.0 0 32768 i //*表示这条路由是可用的;>表示是最优的路由。   i R4#sh ip bgp //R1到R2到R4 BGP table version is 2, local router ID is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * i1.1.1.0/24 192.168.12.1 0 100 0 1 i *>i2.2.2.0/24 2.2.2.2 0 100 0 i //i表示是从内部AS学到的路由。图中,R4的1.1.1.1的路由是从R2(同AS)学到的。 //不打i的情况:本地通告和从EBGP学到的路由。例如R2学到的1.1.1.1的路由 //发现:R4的1.1.1.1是没有>号的,说明这个路由不是最优的。 //后面的i表示起源属性,i表示这个路由是在BGP中network宣告的。   r R2#sh ip bgp BGP table version is 3, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 1.1.1.0/24 192.168.1.1 0 0 2 i r>i2.2.2.0/24 192.168.1.3 1 100 0 ? r>i3.3.3.0/24 192.168.1.3 0 100 0 ? *>i4.4.4.0/24 192.168.1.3 0 100 0 3 i r>i192.168.1.0 192.168.1.3 0 100 0 ? //r表示同时从IGP和BGP学到这个路由,但是IGP的AD比BGP的AD小。 //打r的路由会:不放进路由表,但是会传给邻居 R2#sh ip bgp rib-failure Network Next Hop RIB-failure RIB-NH Matches 2.2.2.0/24 192.168.1.3 Higher admin distance n/a 3.3.3.0/24 192.168.1.3 Higher admin distance n/a 192.168.1.0 192.168.1.3 Higher admin distance n/a   s R4#sh ip bgp //再看看R4(在R4上宣告的) BGP table version is 29, local router ID is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 1.1.1.0/24 172.16.34.3 0 1 2 i *> 4.4.4.0/24 0.0.0.0 0 32768 i *> 192.168.4.0/22 0.0.0.0 32768 i s> 192.168.4.0 0.0.0.0 0 32768 i s> 192.168.5.0 0.0.0.0 0 32768 i s> 192.168.6.0 0.0.0.0 0 32768 i s> 192.168.7.0 0.0.0.0 0 32768 i *> 192.168.8.0 0.0.0.0 0 32768 i //打s的路由是被抑制掉的路由,它不会再向邻居传路由了。 BGP协议路由通告 路由通告

虽然OSPF与ISIS的路由协议通告称为LSA,其实也就是路由信息。BGP协议的路由通告就是纯路由信息,只是宣告的方式有所不同:

在IGP中,network宣告的是接口,即路由器是宣告自己直连的本地接口。 在BGP中,network宣告的是路由,即路由器是宣告自己路由表里的路由。 所以我们会发现,BGP的设计模型是基于IGP之上的。

BGP的通告原则:

从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP)。 从IBGP获得的路由不向它的IBGP邻居通告(除非RR)。 从IBGP获得的路由是否通告给它的EBGP对等体要靠同步来决定。 多条路径时,BGP会选择一条最优的路径。 BGP数据库的建立

和OSPF与ISIS链路状态路由协议不一样,BGP路由协议作为一种矢量路由协议,在构建路由协议数据库中,传递的是简单的路由表和度量值。但与其他矢量路由协议不同,BGP是一种特殊的矢量路由协议,它在传递的过程中加入了一种路径属性的参数,它是通过不同路径属性来根据数据库路由信息选举最优路径。

BGP的路径属性

在下面有章节详细讲解。

BGP的3张表 邻居表:存放BGP的邻居信息(通过open包)。 BGP表(转发数据库):存放邻居学习到的所有路由;到达目标网络的所有路径;各种BGP路径属性 路由表:到达目标网络的最优路径。

注:BGP中是不带负载均衡的,它最终只会选出一条最优的路径。

当一个网络被BGP和另一个路由协议同时学到,这时,还是比AD,AD小的会放入路由表中。这时,想想BGP的两种AD(IBGP=200;EBGP=20)的作用了…….

修改BGP AD的命令

R(config-route)#distance bgp external internal local BGP的路径属性 路径属性 我看可以把BGP的路径属性看成矢量路由协议中的度量值,它是一组描述BGP前缀特性的参数,通过不同路径属性来根据数据库路由信息选举最优路径。 和OSPF与ISIS不同,它们都是利用SPF算法计算出最小的Cost值来选取最优路径,路径调整很难控制;而BGP则是通过不同路径属性信息来决定,这些路径属性信息可以通过CLI命令进行调整,显然在路径调整上BGP更加灵活。 BGP路由信息的路径属性是封装在Update报文中,通过路由通告来进行交互。

另外,BGP的路径属性被归档成这些类别:

Well-known(公认)和optional(任选)关于是否识别。 Transitive(传递)和non-transitive(非可传递)关于传播范围。 Mandatory(必遵)和discretionary(可选)关于是否遵守。

于是得到下列4大组合

公认必决:所有BGP路由器都可以识别,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错 公认可选:所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中 任选可传递:BGP路由器可以选择是否在Update消息中携带这种属性。接收的路由器如果不识别这种属性,可以转发给邻居路由器,邻居路由器可能会识别并使用到这种属性。 任选非可传递:BGP路由器可以选择是否在Update消息中携带这种属性。在整个路由发布的路径上,如果部分路由器不能识别这种属性,可能会导致该属性无法发挥效用。因此接收的路由器如果不识别这种属性,应当丢弃这种属性,不必再转发给邻居路由器。

常见的路径属性

4-8

其中有三个公认必遵属性:

Origin属性: AS-Path属性: Next-Hop属性:

AS Path

AS path:每条BGP路由穿越AS时便带上自己的AS号,不多说,防环用的。

默认的,最新的AS在最左边,依次累计.....

 

Next-hop

在IGP中,一条明细路由的下一跳是直连接口。

在BGP中,一条明细的BGP路由的下一跳是BGP邻居。

Next-hop:每条BGP都会携带,下一跳不可达时,BGP路由就没有‘>’

 

Origin

i 在BGP中通过network注入的路由 e EGPàBGP(现在估计没有了) ? IGP or StaticàBGP BGP选路原则

出现选路的前提:同步(可以关闭同步)+最优路由(‘>’)

比较,选路……

最高的weight值(Cisco私有)或者perferred-value值(Huawei私有) 最高的本地优先级Local-preference,在AS内 聚合路由优先于非聚合路由 本地手动聚合路由优先于本地自动聚合路由 优先与本地0.0.0.0的路由,即本地network宣告的路由优先本地通过路由重分布注入的路由。 评估最短AS路径的长度,最短的优先。 最小的起源值Origin(i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3