BGP路由协议(Border Gateway Protocol)

一、BGP概述

1、自治系统(AS,autonomous system)

自治系统是由一个技术管理机构管理,使用统一选路策略的一组路由器集合。

自治系统编号范围:1-65535,其中1-64511是互联网上注册公有AS号,类似公网IP地址。64512-65535是私有AS号,类似私网IP地址。

2、动态路由的分类

(1)自治系统分类

①IGP:自治系统内部路由协议,主要有:RIP 1/2、OSPF、IS-IS、EIGRP(思科私有协议)。

IGP是运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由。

②EGP:自治系统外部路由协议,通常为BGP。

EGP是运行在AS与AS之间的路由协议,他解决AS之间选路问题。

(2)协议类型分类

①距离矢量路由协议:RIP 1/2、BGP、EIGRP

②链路状态路由协议:OSPF、IS-IS

3、BGP的概念

BGP是一种运行在AS和AS之间的动态路由系诶,主要作用在AS之间自动交换无环路由信息以此来构建AS的拓扑图,从而消除路由环路并实施用户配置的路由策略。目前公网网络条目众多,IGP协议无法承载,而BGP可以轻松应对,通常BGP协议用于ISP和ISP之间或跨越地域总、分公司之间的路由信息交换。

4、BGP的特征

●传输协议:TCP,端口号为179

●BGP是外部路由协议,用来在AS之间传递路由信息

●是一种增强的路径矢量路由协议

●拥有可靠的路由更新机制

●具备丰富的Metric度量方法

●无环路协议设计

●为路由条目附带多种属性信息

●支持CIDR(无类别域间选路)

●丰富的路由过滤和路由策略

●无需周期性更新

●路由更新时只发送增量路由

●周期性发送Keep Alive报文以保持TCP连通性

二、BGP工作原理

1、BGP邻居关系

(1)BGP报文

①open报文

open报文是TCP建立后发送那个的第一个报文,用于建立BGPP对等体之间的连接关系。

主要包括BGP版本号、本地AS编号、Holdtime等信息。

②update报文

update报文使用在BGP之间更新路由信息,update报文可以通告多条属性相同的可达路由信息,也可以撤销多条路由不可达的路由信息。

③notification报文

报文的作用是当BGP检测到错误状态时,立即向对等体发送notification报文,之后BGP就会中断,只要收到notification报文就会返回idle状态。

④route-refresh报文

用来告知对等体所支持路由的刷新能力,BGP的入口策略路由发生变化,本地的BGP路由会向对等体发送route-refresh报文,收到信息后,对等体将其路由信息重新发送给本地BGP路由器。

⑤keep alive报文

该报文在对等体之间周期的发送报文,用以保持连接的有效性并维护其连接,keep alive报文发送周期为60s,保持时间180s,这个类似于ospf中的hello报文。

(2)BGP状态机



idle状态-空闲

connece状态-连接

active状态-活动

opensent状态-开启发送

openconfirm状态-开启确认

established状态-建立

(3)BGP数据库

①IP路由表(IP-RIB)

全局路由信息库,包括最优的路由信息

②BGP路由表(Loc-RIB)

BGP路由信息库,包括本地BGPspeak通告的路由信息,将其最优的添加到路由表中

③邻居表

对等体邻居清单表,包括对等体两端的邻居信息及邻居列表

④Adi-RIB-In

对等体宣告给本地的speak的未处理的路由信息库

⑤Adj-RIB-Out

本地speak宣告给指定的对等体路由信息库

(4)BGP的邻居关系类型

①IBGP

同一个AS内部BGP邻居关系,IBGP邻居是指运行BGP协议的对等体两端在同一个AS域内,属于BGP AS内部。

②EBGP

AS之间的BGP邻居关系,EBGP通常指运行BGP协议的对等体两端在不同AS内部

2、通告BGP路由的方法

(1)netwrok方式

[R1-bgp] network 1.1.1.1 32

[R1-bgp] network 2.2.2.2 32

(2)import方式

[R1-bgp] import-route ospf 110 ###注入ospf中的路由

[R1-bgp] import-route static ###注入静态路由

[R1-bgp] import-route direct ###注入直连路由

三、BGP的配置

1、BGP配置思路

(1)启用BGP,后面跟AS系统号

(2)宣告route-id,建立邻居关系用

(3)宣告和谁建立邻居关系

(4)通告BGP路由(network、import)

2、BGP对等体配置

如R1与R2建立邻居对等,as系统号为100,R1 router-id为1.1.1.1,R2 router-id为2.2.2.2

R1:

[R1] router id 1.1.1.1

[R1] bgp 100

[R1-bgp] peer 2.2.2.2 as-number 100

[R1-bgp] peer 2.2.2.2 connect-interface LoopBack 0

R2:

[R2] router-id 2.2.2.2

[R2] bgp 100

[R2-bgp] peer 1.1.1.1 as-number 100

[R2-bgp] peer 1.1.1.1 connect-interface LoopBack 0

3、保证IBGP下一跳可达

在EBGP之间建立对等邻居时,由于它们之间数据传输需经2跳,因此需做如下设置

[R2-bgp] peer 3.3.3.3 ebgp-max-hop 2

4、BGP属性

路由器发送关于目标网络的BGP更新消息,更新的度量值被称为路径属性。属性可以是公认的或可选的、强制的或自由决定的、传递的或非传递的。属性也可以是部分的。并非组织的和有组合的都是合法的,路径属性分为4类:公认必遵、公认自决、可选过渡、可选非过渡。

公认属性:

是公认所有BGP实现都必须识别的属性,这些属性被传递给BGP邻居。

公认强制属性必须出现在路由描述中,公认自由决定属性可以不出现在路由描述中。

可选属性:

非公认属性被称为可选的,可选属性可以是传递的或非传递的。

可选属性不要求所有的BGP实现都支持。

对于不支持的可选传递属性,路由器将其原封不动的传递给其他BGP路由器,在这种情况下,属性被标记为部分的。

对于可选非传递属性,路由器必须将其删除,而不将其传递给其他BGP路由器。

5、BGP选路原则

1、优选具有最大Weight值的路由

2、优选具有最大Local_Preference值的路由

3、优选起源于本地的路由(如本地network、aggregate或redistribute的)即下一跳是0.0.0.0(在BGP表中,本路由器通告的路由的下一跳为0.0.0.0)

4、优选AS-Path最短的路由

5、Origin(IGP>EGP>incomplete)

6、优选MED最小的路由,默认情况下仅有当所有备选路由来自同一AS才会比较MED

7、优选EBGP邻居发来的路由(相对于IBGP邻居学过来的),在联邦EBGP和IBGP中首选联邦EBGP路由

8、优选到BGP next_hop 最近的邻居

9、执行等价负载均衡(如果有多条来自相同相邻AS的路由并通过Maximum-paths 使多条路径可用,则将所有开销相同的路由放入本地路由表)

10、优选最老的EBGP路由,EBGP路由接收的顺序(此条主要对EBGP路由起效,基本不用,不好确定)

11、BGP邻居的RID越小越优先

12、优选cluster_list最短的路由

13、选择邻居IP地址(BGP的neighbor配置中的那个地址)最小的路由

BGP路由协议(Border Gateway Protocol)的更多相关文章

  1. BGP( Border Gateway Protocol)---边界网关协议

    摘自: https://blog.csdn.net/weixin_43751619/article/details/84954755 一,BGP协议原理与配置 边界网关协议( Border Gatew ...

  2. BGP路由协议详解(完整篇)

    原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...

  3. IGP和BGP路由协议配合降低非核心路由器的路由容量的实验与总结

    IGP和BGP路由协议配合降低非核心路由器的路由容量的实验与总结 一.结论 通过eBGP协议,可以显著降低对非核心路由器的路由容量要求,因为核心路由器的数量明显少于非核心路由器,所以,通过此措施既可以 ...

  4. 神州数码BGP路由协议配置

    实验要求:了解BGP路由协议的配置方法及原理 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface l0 进入端口 ip add ...

  5. BGP路由协议详解(完整版)

    (免责声明:来源于网络,版权原作者所有,转载仅为了传播.学习交流使用,如需删除请私信联系,严禁其他用途.) END 关注「开源Linux」加星标,提升IT技能 好文章,分享.点赞.在看三连哦️↓↓↓

  6. 《TCP/IP详解 卷一》读书笔记-----动态路由协议

    1.以下条件只要有一个不满足,则需要使用动态路由协议:1)网络规模小,2)只有一个连接点用于连接其他网络,3)没有冗余的路由器(一般用作备份) 2.所谓动态路由就是各个路由器与自己相邻的路由器交换各自 ...

  7. RIP、OSPF、BGP、动态路由选路协议、自治域AS

    相关学习资料 tcp-ip详解卷1:协议.pdf http://www.rfc-editor.org/rfc/rfc1058.txt http://www.rfc-editor.org/rfc/rfc ...

  8. IP段,ASN与BGP之间的关系

    概览 IP段就是类似于1.0.2.0-1.0.2.255或者1.0.2.0/24的形式 ASN(Autonomous system number)自治系统编号 BGP(Border Gateway P ...

  9. BGP属性+13条选路原则(转载)

    原文:http://blog.sina.com.cn/s/blog_be409c2f0102x6sg.html BGP(Border Gateway Protocol)边界网关协议 BGP(Borde ...

随机推荐

  1. windows环境下node安装教程(超详细)

    安装node.js 1.下载node: 下载地址:http://nodejs.cn/download/ node.js的zip包安装时是直接解压缩后就可以了, node.js的msi包是傻瓜式一路ne ...

  2. xxd命令转换二进制十六进制文件

    Linux下的xxd命令,可以把文件在二进制和十六进制之间互相转换. 1.准备需要转换的二进制文件 这个二进制文件可以是任意格式的, 示例中我们创建一个txt格式的二进制文件, vi demo.txt ...

  3. Zookeeper基础教程(四):C#连接使用Zookeeper

    Zookeeper作为分布式的服务框架,虽然是java写的,但是强大的C#也可以连接使用. C#要连接使用Zookeeper,需要借助第三方插件,而现在主要有两个插件可供使用,分别是ZooKeeper ...

  4. 双buffer实现无锁切换

    大家好,我是雨乐! 在我们的工作中,多线程编程是一件太稀松平常的事.在多线程环境下操作一个变量或者一块缓存,如果不对其操作加以限制,轻则变量值或者缓存内容不符合预期,重则会产生异常,导致进程崩溃.为了 ...

  5. Redis_简介(1)

    Redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作 ...

  6. Word2010制作日历

    原文: https://www.toutiao.com/i6494876164157342222/ 最终效果: 设置页面纸张为"横向". 选择"页面布局"选项卡 ...

  7. Mybatis-Plus的引用

    一.依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-b ...

  8. FastDFS文件的上传和下载

    一.FastDFS概述: FastDFS是一个开源的轻量级分布式文件系统,他对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.下载)等,解决了大容量存储和负载均衡的问题,高度追求高性能 ...

  9. 读 Linux 像读小说「GitHub 热点速览 v.22.03」

    本周特推选取了一个画风有点意思的 Linux 代码带读项目 flash-linux0.11-talk,希望有趣的文风能带你读完 Linux 代码.当然画风可以增加阅读体验,彩色标记也是一种学习方法-- ...

  10. 《剑指offer》面试题57. 和为s的两个数字

    问题描述 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:nums = [2,7,11,15], tar ...