路由协议----BGP

一、背景

1、其实相对来说路由协议中bgp要比isis协议常用的多。那么bgp又是个什么协议呢,它出现的原因是为了解决什么问题。大家之前都知道ospf,isis是IGP协议,可以通过spf算法快速收敛网络形成拓扑,但是也出现了以下问题:

 1)、我要处理10万条以上的路由,那么路由器频繁使用spf算法不得崩溃

2)、常见的igp路由协议基本基于cost进行简单选路,无法满足日益发展的流量调度需求

3)、大家都使用相同的igp路由协议,容易暴露出内部的网络信息

为此,BGP应运而生。

二、什么是bgp

1、bgp(border gateway protocol)边界网关协议。bgp基于tcp协议,只要能建立tcp连接就能建立bgp,bgp是一种基于路径矢量的路由,bgp是触发式更新而非周期性更新,bgp只传递路由信息而非详细的网络拓扑信息,bgp同时具有相当丰富的选路规则适应当下的流量调度需求。

三、bgp基础

1、bgp版本

目前我们针对ipv4使用的是bgp4,针对其他网络如ipv6,则升级为mp-bgp,bgp端口号为179.

2、bgp特征

1)、运行bgp路由器我们称为bgp发言者(bgp speaker),或bgp路由器

2)、两个建立bgp会话的路由器,我们称互为对等体(peer),对等体之间交换路由表,建立对等体无需直连,分为EBGP和IBGP对等体。

注意:对等体组是一些具有相同策略的对等体的集合,且组里的单个对等体也可以配置自己的发布路由和接收路由的策略

3)、bgp是通过各式各样的路径属性来进行路由控制

4)、bgp使用的是增量更新或进行触发性更新,并不会周期性进行更新

3、bgp中的tcp连接源地址选择

1)、ibgp对等体中我们则优先使用router-id作为tcp连接源地址,这是因为ibgp中,两个bgp路由器可能有多条路径进行连接,单独1条路径故障不会影响对等体的建立。

2)、ebgp对等体中我们优先使用直连接口的ip地址作为源地址,如想使用router-id作为源地址,则需注意多跳问题(即ebgp对等体正常只允许1跳,用了router id就要2跳了,这时需多加命令peer router-id ebgp-max-hop 2 )

4、bgp报文(5种)

1)、open:协商bgp对等体参数,建立对等体关系。在tcp连接建立之后

2)、update:发送bgp路由更新。bgp建立后有路由需要发送,或者后期路由发生变化

3)、notification:报告错误星系,中止对等体关系。bgp运行中发生错误,如前面ebgp中配置router id为tcp连接源地址而并未配置ebgp-max-hop 2命令则会出现notification

4)、keepalive:标志对等体成立,维持对等体关系。定期发送保持连接,60s为1/3hold time

5)、route-refresh:用于改变路由测罗后请求对等体重新发送路由信息,只有支持路由刷新能力的bgp设备会发送和响应此报文。路由策略发送变化后触发对等体重新通告路由

5、bgp的状态机

idle:开始准备tcp连接

connect:正在建立tcp连接

active:tcp连接建立没成功,反复尝试建立tcp连接

opensent:tcp建立成功,开始发送open包

openconfirm:参数协商成功,相互发送keepalive包

established:收到对方keepalive包,开始update通告路由信息

6、bgp路由生成(2种)

1)、network :注入的路由必须是已经存在于ip路由表中的路由条目

2)、import-route:可以对直连路由,静态路由,ospf路由,isis路由等协议注入到bgp路由表

7、bgp通告原则(4种)

1)、只发布最优且有效的路由,*代表有效,>代表最优

2)、从ebgp对等体获取的路由,会发送给所有对等体

3)、从ibgp对等体获取的bgp路由,不会再发送给其他对等体(ibgp水平分割,避环)

4)、当一台路由器从自己的ibgp对等体学习到一条bgp路由(如192.168.1.0)时,它将不能使用该条路由或把这条路由发送给自己的ebgp对等体,除非它又从igp协议中学习到该条路由(192.168.1.0)(bgp同步原则)

四、bgp的工作原理(对等体的建立)

1、先启动bgp的一端先发起tcp连接,三次握手成功后发送open报文(router id小的会关闭本地tcp连接,只保留对方创建的tcp连接),携带参数用于建立对等体,协商完成后相互发送keepalive报文之后对等体建立成功,双方定期发生keepalive保持连接。bgp对等体建立后,bgp路由器发送bgp update报文通告给对等体(如没有可通告的路由则不会发送此报文)。

五、BGP的路径属性(常见4类10种)

1、之前我们提过常见的igp协议如ospf和isis中一般只用cost属性来控制路由选路,bgp就完美的解决了单一属性的不足,常见的bgp属性有4类10种。

公认必遵:所有bgp必须识别,且必须包含在每个update消息里。origin,as_path,next_hop

公认任意:所有bgp必须识别,且不必须包含在每个update消息里。local_preference,automic_aggregate

可选过渡:所有bgp可选择是否识别,且该属性会通告给其他对等体。aggregator,community

可选非过渡:所有bgp可选择是否识别,且该属性不会通告给其他对等体。med,cluster-list,originator-id

1)、as_path:前往目标网络的路由经过的as号列表。(包括as_seqence,as_set(一般用于执行聚合之后添加此关键字,as_set携带聚合前as路径信息),还有两种运用于bgp联邦)

作用:确保ebgp对等体之间传递无环;as号个数更少时路由更优

修改:三种方式。additive 左侧追加,dverwrite 替换新值,none清空

2)、origin:标志了路由的起源,有三种,igp(network)>ebgp>incomplete(如import-route)

3)、next_hop:用户指定到达目的网络的下一跳地址

规则(4条):

①、bgp路由器在向ebgp对等体发布路由,会把下一跳属性设置为本地的接口地址

②、bgp路由器将本地始发路由发布ibgp对等体时,下一跳设置为本地的接口地址

③、bgp路由器在收到ebgp对等体通告的bgp路由传递给自己的ibgp对等体时,下一跳不变

④、bgp路由器在收到bgp路由时,下一跳与ebgp对等体同网段,下一跳不变

4)、local_preference:本地优先级属性(越大越优,缺省100),用于告诉as中的路由器走哪条离开本as,无法传递给ebgp对等体

5)、community:是一种路由标记,用于简化路由策略的执行,分自定义和公认团体属性

公认团体属性:Internet,no_advertise,no_export,no_export_subconfed(联邦用)

6)、med:多出口鉴别器(越小越优),用于向外部对等体指出进入本as的首选路径,只比较相邻的两个as。

7)、atomic_aggregate:路由聚合时导致路径信息丢失时自动添加

8)、aggregator:执行路由聚合的路由手动添加或自动添加

9)、prefered-value:协议首选值(越大越优),华为特有,本地有效,只影响本路由器的优选,不传递给其他bgp对等体

2、bgp路径优选(12条)依次优选

不可达路由>prefered-value的路由(本地路由器)>local_preference值大(出as最优)>(本地始发由于学习,手动聚合>自动聚合>network>import>对等体学习)>as_path短>origin(igp,egp,incomplete)>med小(入as最优)>从ebgp学到大于igbp>next-hop值小>cluster_id短>router id小的>ip地址小的

六、BGP路由反射器

1、背景:由于ibgp中水平分割的问题,如果ibgp中的路由器没有全互联,那么就会出现有些ibgp路由器可能学习不到全局bgp路由表(如R1和R2为ebgp对等体,R2和R3、R3和R4为ibgp对等体,R2和R4非ibgp对等体,这时R4就学不到R2从R1学到的bgp路由)。全互联的话又要维护大量tcp和bgp连接。因此为了解决此问题,特意提出了bgp路由反射器

2、路由反射器有2种角色,分别为RR和client。

规则:(只反射最优路由)

①、RR从非client对等体学到的ibgp路由,会反射给所有client

②、RR从client对等体学到的ibgp路由,会反射给所有非client和该client之外的所有client

③、RR从ebgp对等体学到,发送给所有client和非client

3、RR的设定使得igbp水平分割原则失效,容易发生环路,比如多RR时。为了防环,又出现两条属性,originator_id,cluster_list。

1)、originator:作用范围是单个集群内部,标识路由器原始发起者的router id

2)、cluster_list:跨集群层级,纪录路由经过的集群路径。

注意:为什么需要这两者呢,单独一个originator不行吗?

因为originator id只能防止路由回到原始发起者,但无法检测路由是否在不同集群间循环反射

七、BGP路由控制

1、bgp路由控制一般通过路由匹配工具匹配特定路由,再通过路由测罗工具控制路由发布接收、

路由匹配工具:

as_path filter:将as_path属性作为匹配条件的过滤器,可以直接调用或者通过路由策略进行调用

community filter:2种类型,基本:匹配团体号或公认community属性。高级:正则表达式匹配团体号,华为设备中默认不向任何对等体发布community属性,需配置advertise-community显式启用

2、bgp邻居按需发布路由(ORF)

orf(outbound router filters)出口路由过滤器;bgp基于前缀的orf能力,能将本段设备配置的基于前缀的入口策略通过路由刷新报文发送给bgp邻居,bgp邻居通过这些策略构造出口测罗,在路由发送时对路由进行过滤。

八、bgp安全

1、bgp的攻击主要由两种:建立非法的邻居关系;发送大量的非法bgp报文

2、bgp使用认证和gtsm保证安全

九、4字节的as号

1、目前使用的是2字节1-65535,现在则是4字节向下兼容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值