码迷,mamicode.com
首页 > 其他好文 > 详细

08   BGP路由协议

时间:2015-11-18 19:53:18      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:路由器   路由表   网通   接口   电信   

AS

公有:0-64511

私有:64512-65535

电信:4134   网通:9929

BGP的使用

1、穿越不同AS,管理的问题

2OSPF 支持1W+条路由

     ISIS 支持2W+条路由

3、策略可控性高

4、扩展性强

免费公共公网路由表route-server.ip.att.net

reviews

不使用BGP

1、没有学习完NP课程,对BGP不熟悉

2、只有一个接口连接到AS

3、路由器的性能不够

BGP使用TCP179端口

只通过触发更新更新路由表

通过open报文确立邻居关系

通过keepalive报文保持邻居关系

建立EBGP邻接关系,必须满足下列条件

1、自治系统号不同

2、定义邻居

3、可达

建立IBGP邻接关系,必须满足下列条件

1、自治系统号相同

2、定义邻居

3、可达

BGP的邻接关系状态:

1IDLE

2Connect

3Active 该邻接关系状态为问题状态

4Open Confirm

5Open Sent

6Established

一条路由条目如果打R>则代表该路由条目是最优的,但是由于管理距离的问题无法加入路由表,但是该路由可以被传递给其他BGP对等体

EBGP  20    IBGP 200

Neighbor table

BGP table 默认不做负载均衡

IP routing table

BGP Message Types

Open Message

Router ID选举与OSPF相同

Keepalive Message

Update Message (传输BGP路由)

Notification Message(当错误发生时通告错误消息报文)

BGP建立邻居不一定需要直连,只有能达到邻居的路由就行

解决路由数据层面黑洞:

1、物理线路FULL MESH

运行BGP的路由器全部用直连线路互连

2BGP邻居的 FULL MESH

BGP之间的路由器运行BGP

3BGP->IGP LAB

重分发,让未运行BGP的路由器获悉路由

4、在AS内部的边缘路由器之间建立Tunnel

5MPLS

EBGP的水平分割

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

一条BGP会话者收到一条EBGP路由,只要该EBGP路由neu包含的接收者所在的AS号,则路由会被立即丢弃

BGP路由的传递原则

1、对于一条BGP路由,如果一条路由器是该路由始发路由器,该路由器会将该路由传递给其他所有IBGP对等体以及所有EBGP对等体

2、对于一条BGP路由,如果一台路由器不是该路由的始发路由器,如果对于该路由器而言该路由条目是一条EBGP路由,则该路由器会将该路由条目转发给所有IBGP对等体以及所有其他的EBGP对等体

如果对于该路由器而言路由条目是一条IBGP路由,则该路由器会将该路由条目转发给所有EBGP对等体,而不会转发给任何IBGP对等体。

BGP邻接关系建立完毕,路由器之间不会传递路由

想让BGP路由器彼此传递BGP路由,需要在BGP进程中要么使用Network语句进行BGP路由通告,要么使用Redistribute进行路由重分发

导致BGP路由不优的原因

1BGP路由的下一跳的可达性

2、同步原则

当一台路由器通过一个IBGP对等体收到了一条IBGP路由,该路由条目不能被放入路由表也不能被传递给任何的其他邻居,除非该路由器同时通过某种IGP获悉了该路由条目

ICMP Redirect

当一条路由器通过一个借口接收到一个报文,该路由器查表发现转发这个报文需要将其通过接收接口再次转发出去

当一条BGP Speaker将一条BGP路由传递给同MA网段的下一跳EBGP邻居时,该路由器如果发现该路由条目的上一条邻居传递该路由的接口IP和下一跳邻居接收该路由接口的接口IP地址在同一子网段,此时该路由器会将该路由条目的下一跳地址改写为上一条邻居的发送路由器接口的IP地址

关于BGP路由条目的下一跳地址

1、如果一台路由器将本地路由通告进BGP进程,则对于这些被通告路由,该路由器本地BGP表中关于条目的下一跳都为0.0.0.0 C S

2、如果一条路由器将通过IGP获悉的路由通告进BGP进程,则这些路由在该路由器的BGP表中下一跳会继承相应的IGP路由的下一跳地址

3、如果一台路由器将其本地通告的本地路由传递给其任何BGP对等体,则会将该路由条目的下一跳改为本地对于这些邻居的更新源

4、如果一台路由器通过EBGP学校到了一条路由条目,则该路由器在传递给IBGP对等体时,默认情况下一跳不变(除非做Next-Hop-Self

5、如果一台路由器将任何BGP路由通告给其他EBGP对等体,则路由的下一跳会变成该路由器对于该邻居的BGP更新源地址

IBGP的水平分割

network

1hello邻居    Neighbor

2、通告路由     network

IGP 接口  BGP路由

BGP表中没有标示>   (不优的路由)

1、不会放进路由表

2、不会给其他BGP邻居传

BGP路由优化的条件:

1、同步(从IGP学习到/no syn

2、下一跳

BGP Auto-summary

在早期的IOS版本中默认情况一台路由器的BGP进程的Auto-Summary是开启的,在后期新版本的IOSAuto-Summary是自动关闭的

作用:

无论在路由器上是否开启Atuo-Summary都不会影响BGP精确通告的BGP路由

该特性只有两个作用

1、当在路由器上使用汇总通告的时候,如果该路由器表中拥有汇总路由条目内的明细路由的时候,并且该路由器开启了自动汇总,则该路由器会将明细路由抑制并且将其在其主类网络边界汇总后发生给邻居

2、当路由器的BGP进程中重分发外部路由时,如果开启了Atuo-Summary,那么该路由器会将这些路由以主类的形式发生给邻居。还会将重分发进入的路由的下一跳地址写为0.0.0.0,即便这些路由本身携带Metric,在BGP表中也不会继承。发生接口的IP地址和路由器的前缀不在同一个主类地址段中

BGP的手工汇总、手工聚合

1、在本地创建指向Null0接口的汇聚路由,并且在该路由器的BGP进程中使用Network语句通告该聚合路由,而不需要通告任何一条明细路由

2BGP路由聚合原则,只要聚合命令配置了,该路由器如果在BGP表中拥有该聚合内的明细路由,则会直接在本地BGP表中生成该聚合路由,并且再通告给其他邻居

len< ge-value <= le-value

ip prefix-list 10 permit x.x.x.x/X GE Y LE Z

解决IBGP的水平分割:

1、路由反射器

2、联邦

路由反射器

RR收到一条EBGP路由,会将其转发给所有其他EBPG对等体以及所有IBGP对等体(包含Client以及Non-Client

RR收到一条IBGP路由(该路由是Client传递的),RR会将其转发给所有其他的RR以及所有IBGPNon-Client以及所有的EBGP对等体

RR收到了一条IBGP路由(该路由是Non-Client传递的),RR会将其转发给所有Client以及所有EBGP对等体,但是不会传递给任何其他的Non-Client

1RPEBGP收到的路由

既会反射给客户端也会反射给服务器端

2RR从客户端

既会反射给客户端也会反射给邻居

3RR从非客户端

只会反射给客户端和反射给EBGP邻居

联邦 Confederation

1router bgp AS号(私有AS号)

2、声明所在的大AS

社团熟悉:Community

“可选”:路由器有肯不识别此熟悉。(default

          neighbor x.x.x.x send -community

“传递”:社团熟悉只在nei的邻居有效

          neighbor x.x.x.x send -community

no-advertise:携带此属性的路由不会通知给任何BGP邻居

no-export:携带此熟悉的路由不会传出大AS

local-AS:携带此熟悉的路由不会传出小AS

1、随意联邦路由器启用BGP进程的AS号都是子AS号,联邦件邻居指的是对方的子AS号,外部路由值联邦内BGP邻居指的是主AS

2、所有联邦内路由器都要宣称自己属于主AS

3、联邦内路由器要建立联邦内EBGP连接时需要指定本地和什么子AS邻接

Community属性(团体属性)公认自由不可传递

1Standard

No-Advertise:当路由器收到了带有该团体属性的BGP路由的时候,路由无法传递给任何其他的BGP对等体

No-Export:当路由器收到了带有团体属性的BGP路由的时候,路由无法传递给其他的AS,只能在AS内传递,如果该AS起了联邦,则该路由还可以在联邦内子AS之间传递

Local-AS:当路由器收到了带有该团体属性的BGP路由的时候,路由只能在接收者所在的AS内传递,无论该AS是一个主AS还是一个联邦内子AS

1.Extended MPLS VPN

ip community-list standard Deny permit 3276850

route-map com deny 10

match community Deny

route-map com permit 20

router bgp 65001

neighbor 1.1.1.1 route-map com in

BPG 13选路属性

AS path *

Next-hop *

Origin *

Local preference

MED

Others

BGP属性

1、公认属性:

BGP 更新报文必须包含的,且必须被所有BGP 厂商实现所能识别的属性包括ORIGINAS_PATH Next_Hop

① ORIGIN(起源);这个属性说明起源路由是怎样放到CD 表中的.个可能的源---IGPEGP 以及INCOMPLETE 路由器在多个路由选者的处理中使用这个信息.路由器选者具有最低ORIN 类型的路径.OPIGIN;类型从低处到高的顺序为;JGP<EGP<INCOMPLETE.

② AS_PATH (AS 路径);指出包含在UPDATE 报文中的路由信息所经过饿自治系统的序列.

③ NEXT_HOP (下一跳);生命路由器所获得的BGP 路由的下一跳.EBGP 会话来说,下一跳就是通过该路由的邻居路由器的源地址.对于IBGP 会话,有良种情况,一是起源AS 内部的路由的下一眺就是通告该路由器的源地址;二是由EBGP 注入AS 的路由,它的下一跳会不变的带入IBGP .

2、公认自决(Well-Known Discretionary

该属性指必须被所有BGP 实现所识别,但是在BGP 更新报文中可以发送,也可以不发送的属性,包括LOCAL_PREF ATOMIC_AGGREGATE

LOCAL_PREF(本地优先级):本地优先级属性是用于告诉自治系统内的路由器在有多条路径的时候,怎么离开自治系统。本地优先级越高,路由优先级越高。该属性仅仅在IBGP 邻居之间传递。

ATOMIC_AGGREGATE(原字聚合):原子聚合属性指出已被丢失了的信息。当路由聚合时将会导致信息的丢失,因为聚合来自具有不同属性的不同源。如果一个路由器发送了导致信息丢失的聚合,路由器被要求将原子聚合属性附加到该路由上。

3、可选过渡(Optional Transitive

可选过渡属性并不要求所有的BGP 实现都支持。如果该属性不能被BGP 进程识别,它就会去看过渡标志。如果过渡标志被设置,BGP 进程会接受这个属性并将它不加改变的传送,包括AGGREGATOR COMMUNITY

AGGREGATOR(聚合者):此属性标明了实施路由聚合的BGP 路由器ID 和聚合路由的路由器的AS 号。

COMMUNITY(团体):此属性指共享一个公共属性的一组路由器。

4、可选非过渡(Optional Nontransitive

可选非度过属性并不要求所有的BGP 实现都支持。如果这些属性被发送到不能对其实别的路由器,这些属性将会被丢弃,不能传送给BGP 邻居,包括MEDORIGNATOR_ID CLUSTER_LIST

MED(多出口区分):该属性通知AS 以外的路由器采用哪一条路经到达AS,它也被认为是路由的外部度量,低MED 值表示高的优先级。MED 属性在自治系统间交换,但MED 属性不能传递到第三方AS.

ORIGNATOR_ID(起源ID):路由反射器会附加到这个属性上,它携带本AS 源路由器的路由器ID,用以防止环路。

CLUSTER_LIST(簇列表):此属性显示了采用的反射路径。

BGP 路由判定

BGP 使用了描述路由特性的很多属性,这些属性和每一个路由一起在BGP 更新报文中被发送,路由器使用这些属性去选择到目的地的最佳路由。理解BGP 路由判定的过程很重要的,下面按优先顺序给出了路由器在BGP 路径选择中的判定过程:

①如果下一跳不可达,则不考虑该路由;

优先选取工具有最大权重(Weight)值得路径,权重是Cisco 专有属性;

③如果权重值相同,优先选取具有最高本地优先级的路由;

④如果本地优先级相同,优先选区源自于本路由器(即县一跳为 “0.0.0.0”)上BGP 的路由;

⑤如果本地优先级相同,并且没有源自于本路由器的路由,优先选取具有最短AS 路径的路由;

⑥如果有相同的AS 路径长度,优先选取具有最低起源代码(IGP<EGP<INCOMPLETE)的路由;

⑦如果起源代码相同,优先选取具有最低MED 值得路径;

⑧如果MED 都相同,在EBGP 路由和联盟EBGP 路由中,首选EBGP 路由,在联盟EBGP 路由和IBGP 路由中,首选联盟EBGP路由;

⑨如果前面所有属性都相同,优先选取离IGP 邻居最近的路径;

⑩如果内部路径也相同,优先选取具有最低BGP 路由器ID 的路径。

Weight(权重属性)

1、传递范围该属性只能在路由器本地有意义,路由器发送任何BGP路由的时候不会携带该属性

2、缺省值对于一条下一跳地址为0.0.0.0BGP路由,在路由器本地BGP表中该路由器的却是Weight值是32768

如果该路由器是邻居通告的,无论IBGPEBGP都是缺省值0,如果该路由是本地通告但是来源于IGP,则该路由权重值也是0

取值范围0~65535

3、比较方式Weight属性值越大,该路由条目越优,

通过Weight修改路径

1ip prefix-list s seq 5 permint 2.2.2.0/24

2route-map W permit 10

     match ip adderss prefix-list2

     set weight 3

     route map W      permit 20

3router bgp 1

     neighbor 1.1.1.1 route-map W in

Local  Preference(本地优先级)

传递范围只能在一个AS内传递(只能在传递IBGP路由的时候修改)

缺省值只要BGP路由无论是否本地产生无论是IBGP/EBGP,缺省值都为100

比较原则越大越好

BGP default local preference 101

BGP ORF Outbound Route Filtering出站路由过滤(优化特性)

实现原理,当路由器通过其他对等体接收路由时如果该路由器使用前缀列表过滤接收的路由,默认情况该邻居不会知道路由传递被拒绝,该路由当拓扑变更或软清进程的时候依旧会给本路由发送这些被过滤路由从而浪费了邻居的CPU资源。为了优化需要在路由器双方启用该特性,路由过滤方会通告PRF报文发送给路由传递方告知其路由过滤情况,而路由发送方得知情况后无聊何时都不会再将被过滤路由发送给过滤方

1、启用address-family ipv4

2、在该地址族中激活邻居Activate

3、在路由过滤方定义前缀列表指定路由发送方入向过滤路由

4、在过滤方指定发送方做ORF,并指定Send

5、在路由发送方指定过滤方做ORF,并指定Receive

注意事项,如果在部署ORF之前邻接关系已经建立,则一定要硬重置邻接关系

BGP基本验证命令:

  Show ip  bgp summary  查看BGP邻居表

  Show ip  bgp          查看BGP路由表

  Show ip  bgp AS XX     查看某个网络的拓扑数据库

  Show ip  bgp neighbors adver  查看邻居转发表

  Show ip  bgp rib-failure 显示没有加入路由信息库的路由以及,没有加入的原因

  Clear ip bgp *        清除BGP邻居,重新学习路由表

  Clear ip bgp * soft    不清除BGP邻居,只更新路由表



本文出自 “计算机网络技术” 博客,请务必保留此出处http://370220760.blog.51cto.com/6469179/1714372

08   BGP路由协议

标签:路由器   路由表   网通   接口   电信   

原文地址:http://370220760.blog.51cto.com/6469179/1714372

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!