当前位置: 首页 > news >正文

网工笔记——BGP协议

1.简介

BGP,边界网关协议,是一种实现自治系统AS之间的路由可达协议

提供了丰富的路由策略,可以灵活实现路由选择

并且使用TCP作为其传输层协议(端口号为179)

什么是自治系统AS?

AS是指在一个实体管辖下拥有相同选路策略的IP网络,BGP网络中,每个AS都被分配一个唯一的AS号,用于区分不同的AS。

2.BGP的邻居关系类型

EBGP:运行与不同的AS之间的BGP        

IBGP:运行与同一个AS内部的BGP

在IBGP中为了防止环路的产生,会进行水平分割原则,也就是BGP设备布将从IBGP对等体学到的路由通告给其他IBGP路由器。

但是又要进行通信,所以又需要全连接,但是这会造成设备的复杂,所以BGP设计了路由反射器和BGP联盟

3.BGP的路由器号(Router ID)

在OSPF和BGP配置路由器的时候,我们一般会配置一个环回口,这个环回口的地址,就是用来标志每个路由器的Router ID

通常采用32位,以IPv4的地址样式

通常可以采用手工配置,也可以采用自动选取,缺省选取环回口地址,没有环回口就选接口上最大的IP地址,一旦确定下来后续不会更改,除非重启BGP

4.BGP的五种报文

Open报文:建立BGP对等体连接

Update报文:用于更新对等体之间的路由信息

Notification报文:用于中断BGP连接

Keepalive报文:用于保持BGP连接

Route-refresh报文:用于改变路由策略后请求对等体重新发送路由信息,只有支持路由刷新能力的BGP设备会发送和响应此报文。

Keepalive报文是周期性发送,其余报文位触发式

5.BGP六种状态

Idle:空闲

Connect:连接

Active:活跃

OpenSent:Open报文已发送

OpenConfirm:Open报文已确认

Establish:连接已建立,最终状态

在BGP对等体建立中,通常可见的状态是Idle,Active和Establish。

6.BGP对等体之间的交互原则

1.从IBGP中获得的路由,只会转发给它对应的EBGP对等体

2.从EBGP学的路由,可以转发给EBGP和IBGP

3.当学到多条路由,只会发送最优的路由

4.路由更新后,只发送新的路由

5.BGP同步规则:当学到一条IBGP路由时候,它不能宣告给IBGP对等体和EBGP对等体,除非它又从IGP协议中学到了,这是为了规避路由黑洞问题

7.BGP和IGP的交互

1.BGP引入IGP路由

BGP本身不发现路由,只是路由的搬运工,需要将其他路由引入到BGP路由表中,使用Import和network方式

network方式要求网络号要精确匹配

2.IGP引入BGP路由(不多见)

当一个AS需要引入其他AS路由时候,AS边缘路由器会在IGP路由表中引入BGP路由,但大量的BGP路由对AS内的设备会造成影响,所以会使用一些路由策略,进行路由过滤。

8.BGP的路由优选原则

当到达同一个目的地有多条路由,BGP依据优选规则,去比较各个路由的BGP属性,以确定最优路由.

8.1BGP属性

四个大类:

1.公认必须遵循:所有BGP设备都可以识别,且都必须存在Update报文中,没有就报错

2.公认任意:所有BGP设备都可以识别,但不必须在Update报文中.

3.可选过渡:BGP设备可以不能识别,但可以进行转发.

4.可选非过度:BGP设备可以不认识这个属性,那就可以不进行转发.

这里只是属性,但是路由还是可以进行转发

常见的属性类型:

公认必须遵循:

        Origin属性

        AS_Path属性

        Next_Hop属性

公认任意:

        Local_Pref属性

可选过度:

        团队属性

可选非过度:

        MED属性

        Originator_ID属性

        Cluster_List属性

8.1.1Origin属性

用来定义路径信息来源,标记一条路由怎么成为BGP路由,有三个类型

1.IGP:优先级最高,通过network导入

2.EGP:次之,

3.Incomplete:最低,通过Import-route导入

8.1.2AS_Path属性

记录某条路由到达目标地址所要经过的所有AS编号

1.传播自身引入的路由时:

传给EBGP对等体,会在Update报文中,创建一个携带本AS号的,AS_Path列表

传给IBGP对等体,则是空的AS_Path列表

2.传播从其他BGP的Update报文中学习的路由时候:

如图,比如,AR1在传递某条路由给AR2的时候,AS_Path会携带一个300,但是AR2传递给AR3的时候,AS_Path还是300,但是当AR3传给AR4的时候则会再加上200.

8.1.3Next_Hop属性

记录了路由的下一跳,BGP的下一跳属性和IGP有所不同,不一定时邻居的IP地址,该属性遵循以下原则:

1.当向EBGP对等体发送某条路由的时候,该路由的下一跳是本路由与EBGP对等体建立邻居关系的接口ip地址,所以该下一跳,可能是直连接口,也可能是环回口.

2.同样发送给IBGP也是,该路由的下一跳是本路由与EBGP对等体建立邻居关系的接口ip地址

3.但如果路由是从EBGP对等体中学到的,并发送给IBGP对等体,则不会改变下一跳,通常会手工进行更改.

8.1.4Local_Pref属性

流量出去,该怎么出去,用于引导本自治系统中流量,从那个出口出去到下一个自治系统更优.

出口是本自治系统的路由器,默认100

8.1.5MED属性

流量进来,该怎么进来,用于引导外面自治系统中流量,从那个入口出去到本自治系统更优.

入口也同样是本自治系统的路由器,默认100

8.1.6团体属性

用于标识具有相同特征的BGP路由.

可分为自定义团体属性和公认团体属性

公认团体属性:

8.1.7Preferred_Value属性

与Local_Pref属性相似,但区别是再同一个路由器中的不同接口进行比较.

8.2优选规则

9.解决由于水平分割倒置要建立全连接,但配置复杂问题.

9.1路由反射器

概述:由于中间的路由器与各个周边的路由器建立邻居关系,同时自己位反射器,当其中有一条路由器给中间路由器传输路由时候,那么中间路由器就会传输给其他路由器

原理:

突破了水平分割的问题.

RR向IBGP邻居发布路由的原则:

1.从非客户机学到的路由,发布给所有客户机

2.从客户机学到的路由,发布给所有客户机和非客户机

3.从EBGP对等体学到的路由,发布给所有客户机和非客户机

9.2BGP联盟

把一个自治系统,再划分为多个子自治系统

10.路由聚合

将多个路由,继续合并的机制

1.自动聚合:按照自然网段进行聚合

2.手动聚合:根据具体需要进行汇总,IPv6只能支持手动聚合

为了避免汇总后产生环路,所以设计了AS_Set属性,标明聚合路由所经过的AS号

11.BGP配置

1.配置基本功能

配置各个接口的IP地址(略)

配置IBGP连接

RouterB

bgp 65009 #开启bgp
router-id 2.2.2.2 #手工指定router-id,建议
peer 9.1.1.2 as-number 65009 #指定他的邻居
peer 9.1.3.2 as-number 65009 

RouterC

bgp 65009 #开启bgp
router-id 3.3.3.3 #手工指定router-id,建议
peer 9.1.3.1 as-number 65009 #指定他的邻居
peer 9.1.2.2 as-number 65009 

RouterD

bgp 65009 #开启bgp
router-id 4.4.4.4 #手工指定router-id,建议
peer 9.1.1.1 as-number 65009 #指定他的邻居
peer 9.1.2.1 as-number 65009 

配置EBGP连接

RouterA

bgp 65008
router-id 1.1.1.1
peer 200.1.1.1 as-number 65009 #ebgp对等体的as号#下面命令再路由器B上添加
bgp 65009
peer 200.1.1.2 as-number 65008

查看BGP对等体连接状态

display bgp peer

     

配置RouterA发布路由8.0.0.0/8

bgp 65008
ipv4-family unicast
network 8.0.0.0 255.0.0.0
quit

配置BGP引入直连路由

RouterB

bgp 65009
ipv4-family unicast
import-route direct

2.配置BGP的其他功能

通过环回口建立邻居会更加稳定,物理接口建立的话一旦两个直连的线路down了,那么邻居也没了

第八条,第九条,第十条命令一般不用配置

http://www.xdnf.cn/news/1273015.html

相关文章:

  • 解决 Linux 下 “E: 仓库xxx没有数字签名” 问题
  • 编程基础之多维数组——同行列对角线的格
  • scanpy单细胞转录组python教程(四):单样本数据分析之降维聚类及细胞注释
  • (Python)爬虫进阶(Python爬虫教程)(CSS选择器)
  • stm32没有CMSIS文件
  • 【精彩回顾·成都】成都 User Group×柴火创客空间:开源硬件驱动 AI 与云的创新实践!
  • vue和react和uniapp的状态管理分别是什么,并且介绍和怎么使用
  • Day38--动态规划--322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结
  • 如何理解SA_RESTART”被信号中断的系统调用自动重启“?
  • Vue3 组件化开发
  • 人工智能技术发展历史演变
  • Filter,Interceptor拦截器-登录校验
  • 关于城市农村创业的一点构想
  • RecyclerView 缓存机制
  • 堆----3.数据流的中位数
  • Slab 算法浅析
  • HTML全景效果实现
  • 【Python 语法糖小火锅 · 第 2 涮】
  • 容器技术基础与实践:从镜像管理到自动运行配置全攻略
  • 【数据分享】各省农业土地流转率(2010-2023)
  • 【Python 语法糖小火锅 · 第 4 涮】
  • 【Python 语法糖小火锅 · 第 3 涮】
  • 【unitrix数间混合计算】2.9 小数部分特征(t_non_zero_bin_frac.rs)
  • 【Canvas与旗帜】圆角蓝底大黄白星十一红白带旗
  • UE破碎Chaos分配模型内部面材质
  • CentOS7编译安装GCC
  • 【Python 高频 API 速学 ④】
  • Spring学习笔记:Spring AOP入门以及基于Spring AOP配置的深入学习与使用
  • 嵌入式软件工程师笔试题(二)
  • 腾讯COS云存储入门