BGP协议

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

BGP不进行路由计算像rip一样直接发送路由信息

使用TCP作为协议建立连接  端口号179

AS之间的路由器是不完全相互信任的

为实现路由按需求进行控制和优选,BGP设计了诸多属性

 

BGP的前身EGP

非常简单,只能在AS之间简单地传递路由信息

不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题 

EGP最终被BGP取代

相比于EGP,BGP更具有路由协议的特征

邻居的发现与邻居关系的建立

路由的获取,优选和通告

提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息

在不完全信任的AS之间提供丰富的路由控制能力

AS自治系统

每个自治系统都有唯一的一个编号,这个编号由IANA分配

2009年1月之前,只能使用最多2字节长度的AS号码,即1-65535

中1-64511为公有AS,64512-65534为私有AS

在2009年1月之后,IANA决定使用4字节长度AS,范围是65536-4294967295

 

建立连接

BGP可以跨越多跳路由器建立邻居关系

1. 邻居发现

AS之间是广域网链路  在广域网上数据包传递会出现不可预测的链路拥堵或丢失等情况

所以BGP使用TCP作为保证

TCP只能采用单波建立连接   也使BGP只能手动指定邻居

三次握手

 2. 关系建立

Open   OSPFHello报文拆成了OpenKeepalive

TCP连接建立发送的第一个报文  用于建立邻居连接

Open报文协商成功后 发送Keepalive保持连接

Update

可以发布多条可达的路由信息,也可以撤销多条不可达的路由信息

可以发布多条具有相同路由信息的可达路由,这些路由共享一组属性

Ntification

当BGP路由检查测到错误状态时,发送该报文,BGP连接立即中断

KeepAlive

周期向邻居发送该报文,保证连接有效性

Route-refresh

用于改变路由策略后请求对等体重新发送路由信息

3. 邻居状态

上面为TCP连接

下面为邻居连接

TCP连接成功不代表可以传输数据

Idle状态 空闲

BGP初始状态 BGP路由器拒绝邻居发送的连接请求

收到本设备Start事件后才开始尝试进行TCP连接

如果TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态

如果TCP连接失败,那么BGP路由器转至Active状态   可能是双方参数有问题或者被拦截了

BGP邻居类型

如果直接将将公网路由引入AS内部 再将AS内部的路由信息直接引入出去

首先公网路由条目肯定比IGP协议多很多 引入后IGP协议无法承载大量的BGP路由

并且双方不一定可以无误的识别不同协议的路由信息 可能会丢失

所以还需要内部路由器进行路由传递

EBGP

用于AS之间传递路由

IBGP

用于AS内部传递路由

通告路由

使用network命令将IP路由表中已经存在的路由逐条通告到BGP中

network 10.0.0.1 24

使用import引入

为防止其他路由被引入到BGP中,需要配置ip-prefix进行精确匹配,调用route-policy在BGP引入路由时进行控制

import-route 【direct/static/ospf/rip…… 】【route-policy【自己创建的协议或者系统自带】】

ip-prefix 前缀列表

ip ip-prefix ip-prefix-name[ index index-number ] {permit | deny} ipv4-address mask-length

Name参数是本IP前缀列表的名称。

Index关键字及参数指示本表项在本IP前缀列表中的序号(或索引号),该关键字及参数是可选的。缺省情况下,该序号值按照配置先后顺序依次递增,每次加10,第一个序号值为10。

ip ip-prefix mkbk index 10 deny 10.0.0.0 24

import-route ospf route-policy mkbk

引入ospf中不包括10.0.0.0/24的所有网段

通告原则

BGP路由器——仅向邻居通告最优路由

*     可用路由

>    最优路由

Origin : i -IGP e -EGP ? –incomplete   表示通告来源  i network通告  e 自动从EGP学习 ? import通告

Network:显示BGP路由表中的网络地址

NextHop:报文发送的下一跳地址

MED:路由度量值

LocPrf:本地优先级

PrefVal:协议首选值

Path/Ogn:显示AS路径号及Origin属性

Community:团体属性信息

IBGP获得的路由不向其它IBGP邻居发送

为了防止AS内部形成环路

RTA将100.0.0.0/24网段发布给RTB RTC 但是RTB RTC之间不会互相转发



IGP BGP同步

理论上 IGP内部路由器发现路由表中没有BGP路由器转发进来的路由条目,不知道该怎么到达,丢弃目的地址不可达报文

当只有RTB RTD建立IBGP连接时,RTA将网络通告进去,RTB通过IBGP连接通告给RTD再利用EBGP连接通告给E。

当RTE访问100网络时,会发给D,D查询路由器表发现下一跳是B,但是出接口还是到C,但是此时C并不知道A的100网络,所以会将不可达报文进行丢弃。形成路由黑洞

Null0是系统保留的逻辑接口,当转发网络设备在转发某些数据包时,如果使用出接口为Null0的路由,那么这些报文会被直接丢弃,就像直接丢进一个黑洞里,因此出接口为Null0的路由被称为黑洞路由。

所以解决的办法一个就是保证IGP BGP保持同步,但是外网数量巨大,IGP无法承受,所以不可行

另一种就是IGP内部全部建立IGBP连接,保证外部网络全部通告出去

BGP属性

分为四类

公认  所有BGP路由器必须识别并可支持的属性

必遵  Origin AS_Path Next_hop(Update必须包含)

任意  Local_Pref  Atomic_aggregate(自由选择)

可选  不要求所有BGP路由器都能识别的属性

过渡  Aggregator  Communtiy (BGP不能识别,但是可以接收并转发)

非过渡  MED  (BGP可以忽略包含该属性的消息并且不转发)

Origin  路径信息来源

优先级   i>e>incomplete

AS_Path  AS路径

可以防止环路  当收到含有自己AS区域号的消息就不再接受转发

并且 AS编号越少 路径越优先

当你需要换条线路时 也可以对AS_Path进行更改  AS_Path(2,4)-->AS_Path(2,2,2,4)在不改变路径的情况下增加他的数量

AS_Path四种类型

AS_Sequence

AS_Set

AS_Confed_Sequence

AS_Confed_Set

Next_hop

缺省情况下,向EBGP对等体/对等体组发布的所有路由,都将下一跳属性修改为自身的地址;

向IBGP对等体/对等体组发布的EBGP路由,不修改下一跳属性。

Local_Preference

仅在IBGP邻居之间有效,不通告其它AS  可以判断最佳路由

可以通过ip-prefix前缀列表设置

默认100 越高越优先

MED

仅在相邻AS间传递

相当于IGP的度量值

当一个运行BGP的路由器通过不同的EBGP邻居获得目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由

Community

peer ebgp-max-hop命令用来配置允许BGP同非直连网络上的对等体建立EBGP连接,并同时可以指定允许的最大跳数。

BGP使用Loopback口建立EBGP邻居时,必须配置命令peer ebgp-max-hop(其中hop-count≥2),否则邻居无法建立。

前置条件

配置本命令前,需要先使用peer as-number命令建立相应的对等体关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值