基于华为路由器的BGP
BGP是一种自治系统间的动态路由协议,它的基本功能是在自治系统之间提供自动交换无环路由信息,通过交换带有自治区域号(AS)序列属性的路径可达信息,来构造自治区域的拓朴图,从设计上消除了路由环。
BGP基本概念:
BGP特点:
BGP是一种外部路由协议,与OSPF、RIP不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最好的路由。
BGP通过携带AS路径信息,可以彻底的解决路由循环问题。
为了控制路由的传播和路由的选择,为路由附带属性信息。
使用TCP作为其传输层协议,提高了协议的可靠性。端口号179。
BGP-4支持CIDR(无类别域间选路),CIDR的引入简化了路由聚合,减化了路由表。
BGP更新时只发送增量路由,减少了BGP传播路由占用的带宽。
提供了丰富的路由策略。
1、 自治系统
定义:由同一技术管理机构管理,使用统一选路策略的一些路由器的集合。每一个自治系统都有唯一的自治系统编号,这个编号是由因特网授权管理机构分配的。
引用自治系统的思想是:通过不同的编号来区分不同的自治系统。
自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号,65412到65535是专用网络编号。
2、 BGP工作机制
BGP作为一个应用层协议运用在一台特定的路由器上,系统启动时通过发送整个BGP路由表交换路由信息,之后为了更新路由表,只交换更新信息,在系统运行过程中,通过接收和发送keep-alive消息来检测相互之间连接是否正常。
自治系统分为过渡自治系统和SUTB自治系统。
BGP发送优选的BGP路由和引入的IGP路由给对等体(peer)。
3、 BGP的两种邻居
IBGP:对等体之间不一定是物理直连的,但必须保证逻辑上的全连接。(TCP连接)
EBGP:对等体之间有物理上的直接链路。
4、 BGP的路由通造原则
多条路径时,BGP speaker 只选择最优的路径给自己使用。
BGP speaker只将自己使用的路由通告给相邻体。
BGP speaker从EBGP获得的路由会向所有的BGP相邻体通告。
BGP speaker从IBGP获得的路由不向它的IBGP相邻体通告。
BGP speaker从IBGP获得的路由信息是否通告给EBGP相邻体,要依据IGP和BGP的同步情况来决定。
连接一建立,BGP speaker将自己所有的BGP路由信息通告给新相邻体。
5、 BGP同步
BGP必须等待直到IGP在其自治系统中成功的传播该选路信息,才向其它自治系统通告过渡信息。
当As中所有的BGP路由器组成IBGP全合闭网时,可以取消同步。
路由器在向IBGP邻居通告路由时强制下一跳为自己本身的接口。
6、 BGP的三种路由来源
BGP的路由信息需要通过配置命令的方式注入到BGP中。
纯动态注入:路由器将通过IGP路由协议动态获得的路由信息直接注入到BGP中。
半动态注入:路由器有选择性的将IGP路由协议获得的动态路由信息注入到BGP中。
静态注入:路由器将静态配置的某条路由注入到BGP系统中。
7、 BGP的四种报文
Open报文:用来交换各自版本号、自治系统号、保持时间、BGP标识等信息,进行协商。
Updata报文:携带更新路由信息,其中包括撤消路由信息和可达路由信息及其路径属性。
撤消路由和目的地址的表示方法为:length表示地址前缀的长度,prefix表示地址前缀。
UPDATA由不可达路由、路径属性和网终可达性信息三部分构成。
一个UPDATA消息一次只能通告一个路由,但可以携带多个路径属性。
一个UPDATA消息一次可以通告多个路由,但它的路径属性必须相同。
一个UPDATA消息一次可以列出多个被撤消的路由。
Notification报文:BGP检测到连接中断、协商出错、报文差错时,关闭同对等体的连接。
Keepalive报文:在BGP对等体之间周期性的发送报文,以确保其连接有效。
OPEN报文首先建立邻居关系,其它对等体收到OPEN报文后,以KEEPALIVE作出响应,握手成功后开始UPDATA,之后是KEEPALIVE和NOTIFICATION等消息的交换操作。
8、 BGP协议的状态机
BGP邻居关系建立过程
首先是idle状态,BGP一旦开始,状态机就进入connect状态,之后,如果connect-retry定时器超时,则停在connect状态,并建立TCP连接,如果连接失败则进入active状态,如果成功则进入opensent状态。在active状态下,如果TCP状态建立不成功则一直在 active状态下,成功后进入opensent状态。在opensent状态下,BGP一旦收到open报文,就会进入openconfirm状态下。在openconfirm状态下,如果keepalive定时器超时则会停在openconfirm状态下,直到收到keepalive报文,BGP进入 established状态,BGP建立成功。
9、 BGP的属性
BGP的属性是一套参数,对特定的路由进行进一步的描述,使BGP能够对路由进行过滤和选择。路由属性分为如下几类:
必遵属性:在路由更新的数据报中必须存在的路由属性,如缺少必遵属性,路由信息就会出错。
可选属性:可选的,不一定存在于更新的数据报文中,根据需要配置。
过渡属性:具有AS间可传递的属性就是过滤属性,过滤属性的域值可以被传送到其它AS中,并继续起作用。
非过滤属性:只在本地起作用,出了自治系统,域值就会恢复到缺省值。
常见BGP路由属性
Origin(起点)属性:定义路径信息的来源,标记一条路由怎么成为BGP。是必遵的路由属性。
在其它因素相同的情况下,BGP按IGP、EGP、INCOMPLETE的顺序选择路由。
IGP为是将聚合路由和用直接注入到BGP路由表的具体路由看作AS内部的。
EGP是通过EGP得到的路由的起点。
INCOMPLETE通过其它的IGP协议引入的路由起点。
AS -path(AS-路径)属性:是路由经过的AS序列,即列出在到达所通告的网络之前所经过的AS清单。是一个必遵的过渡属性。BGP使用AS-PATH 属性作为路由更新的一部分来确保在INTERNET上的一个无环路的拓朴结构。BGP不会接受在AS路径属性中包含本自治系统的路由。BGP在向EBGP 对等体通告一条路由中,要将自己的AS号加入到AS路径属性中。在其它因素相同时,选择AS路径最短的路由。
Next-hop(下一跳)属性:到达更新消息所列网络的下一跳边界路由器的IP地址。是一个必遵过渡属性。BGP在向IBGP通告其它EBGP的路由信息时,不改变下一跳地址。 BGP在向EBGP通告路由信息时,下一跳属性为BGP与对端连接的本地端口地址。对于可能多路访问的网络,下一跳情况会不同。
MED属性:当某个AS有多个入口时,用MED属性可能帮助外部的邻居路由器选一条较好的入口路径,一条路由的MED值超低,其优先级越高。可选非过渡属性,路由器只比较来自同一AS中各EBGP邻居路径的MED值,不比较来自不同AS的MED值,除非能够确实不同的AS采用了相同的IGP和路由选择方式。
Local-perference本地优先属性:用于在自治系统内优选到达某一目的地的路由。可选非过渡属性。本地优先属性是用来帮助AS内部的路由器到区域外部选择一个较好的出口,即本地优先较高的出口点。
Community(团体)属性:团体属性标识了一组有相同特征的路由信息,与它所在的IP网段和自治系统无关。可选过渡属性。公认团体有:
NO-EXPORT:不应该通告给其它联盟之外的对等体。
NO-ADVERTISE:不应该通告给任何BGP对等体。
LOCAL-AS:通告给本地AS内的对等体,不应该通告给任何EBGP对等体。
INTERNET:通告给所有其它路由器。
10、 BGP路由选择过程
如果此路由的下一跳不可达,则忽略此路由。
选择本地优先级较大的路由。
选择本地路由器始发的路由(本地优先级相同)
选择AS路径较短的路由
依次选择起点类型为IGP、EGP、INCOMPLETE路由。
选择MED较小的路由
选择ROUTER ID较小的路由。
11、 BGP基本配置
[quidway]bgp as-number 启动BGP,as-number指本地自治系统号。
[quidway-bgp]peer peer-address as-number
as-number配置BGP邻居,IBGP配置as-number为AS号,EBGP配置as-number为EBGP所在AS号。
[quidway-bgp]network ip-address [mask mask]
[quidway-bgp]import-route protocol[med med]配置注入路由
12、 BGP参数配置
[quidway-bgp]peer peer-address version version-number 配置同伴BGP的版本号
[quidway-bgp]timers keepalive-intervalholdtime-interval配置BGP定时器的时间间隔和连接保持间隔,通常时间间隔为连接保持间隔的三分之一
[quidway-bgp]peer peer-address route-updata-interval seconds配置同伴发送UPDATA报文的时间间隔。
13、 配置BGP路由策略
[quidway-bgp]peer {group-name|peer-address}filter-policy acl-number {import|export}配置对等体的前缀过滤器。
[quidway-bgp]peer peer-address acl aspath-list-number {import|export}配置对等体的AS路径过滤器。
[quidway-bgp]peer peer-address route-policy policy-name {import|export}配置对等体的路由策略。
14、 BGP路由器对路由的处理过程
对ASBR来说,路由有两种来源:从对等体接收的和从IGP引入的。对于接收的:BGP可能从多个对等体收到目的地相同的路由,根据规则选择最好的路由加入的IP路由表中。
对于IGP引入的:要经过引入策略的过滤和设置,BGP发送优选的BGP路由和引入IGP路由给对等体。
15、 BGP在大规模的网络中遇到的问题
路由聚合就是把各段路由综合到一个或多个聚合或CIDR中,以便把路由表中的路由数目减到最小。
[quidway-bgp]addregate 172.16.0.0 255.255.240 detail-suppressed只通告聚合路由。
BGP反射:指定一台集中路由器作为内部对话的焦点,多个BGP路由器可以与一个中心对等话,然后多个路由反射器在进行对等话。
[quidway-bgp]reflect cluster-id 10 指定焦点
[quidway-bgp]peer 1.1.1.2 reflect-client 指定非客户路由器
BGP联盟:[quidway-bgp]confederation id 100 申所属的自治系统
[quidway-bgp]confederation peer-as 201 本自治系统中的邻居子系统。
BGP路由衰减:控制路由不稳定的技术。可达衰减期,不可达衰减期,重用值,抑制值,惩罚上限。[quidway-bgp]dampening 15 15 500 1000 8000