外部网关协议,使用TCP作为传输层协议,支持CIDR,增量更新,距离矢量路由协议,无环路,路由策略丰富,可防止路由震荡,易于扩展。
BGP概述
#BGP工作原理 之 报文类型
TCP三次握手
open报文(类型为"1" ,协商BGP参数,包括版本,AS号,hold time等,然后建立邻居)
update报文(类型为"2",交换路由信息)包含NLRI网络层可达信息
keepalive报文(类型为"4",保持邻居关系)
Notification报文(类型为"3",差错通知)
Route-Refresh报文(路由刷新报文:用于在改变路由策略后请求peer重新发送路由信息)(命令:refresh bgp all import) #BGP工作原理 之 数据库
IP路由表
BGP路由表
邻居表(对等体列表)
Adj-RIB-In(对等体宣告给本AS的未经过处理的路由信息库)
Adj-RIB-Out(本地speaker 宣告给指定对等体的路由信息库)
BGP工作原理-BGP路由信息处理

BGP需要注意的事项
	1:由于BGP的水平分割,会导致BGP出现路由黑洞,解决办法有三个(IBGP全互联,RR,联盟)

	2:EBGP邻居,默认其TTL为1

	3:在IBGP路由加入路由表并发布给EBGP对等体之前,会先检查IGP路由表,只有在IGP也知道这个IBGP路由时,它才会被加入到路由表,并发布给EBGP对等体
同步:指IGP表和BGP表同步,才会发给EBGP对等体 4:私有AS号(64512-65535) 5:使用import-route static命令引入静态路由时,只能引入活跃路由。
BGP的属性分类 及列举讲解
	#第一:公认必遵(as-path,next_hop,origin)
#第二:公认任意(Local_Pref本地优先影响出战流量,原子聚合)
#第三:可选传递(聚合者,community团体属性类似于tag)
#第四:可选非传递(MED多出口鉴别器影响本地AS的入站流量,Cluster List集群列表,起始者ID)
#A:origin 起源属性(用来定义路径信息的来源)
IGP(i):通过network引入的路由,会在bgp routing-table中显示为i
EGP(e):通过EGP得到的路由,会显示为e(已不常见)
Incomplete(?):通过其他方式学习到的路由信息,表示为? 选路原则:i>e>?
#三种加入BGP的方式
import 以及 路由聚合
network:直连的路由可以用这样的方式加入(即当我们需要加入BGP的路由存在于IGP路由表中可以使用这个方式,直连) #B:as-path 路径属性(用于选路,用来定义经过了哪些路径,可用于ebgp防环)
#aspath抓包显示的as记录类型有4种,
as-seq 以序列的方式进行记录as号(普通的)
as-set 用于BGP聚合时防止环路
另外两种是用于联盟 #C:next_hop 下一跳属性:(有图)
1:从IBGP学到的路由信息,默认不会传递给其他IBGP对等体(正常,可以建立全互联模型)
2:从IBGP对等体学到的路由,在传递给EBGP对等体时,下一跳不改变(正常)
3:从EBGP学到的路由,在传递给IBGP对等体时,默认下一跳不改变(不正常,会导致IBGP对等体的路由下一跳不可达),解决办法是 #D:Local_Pref 属性表明BGP路由信息的优先级,用于判断流量离开AS时的最佳路由(华为设备上该值越大越优先,默认是100)
1:只能在IBGP之间传递,影响本AS的出战流量 #E:community 团体属性(写法 100:1)(用于标识具有相同特征的BGP路由)
1:自定义团体(一般在内部传递)
2:公共团体属性
Internet 互联网属性,只要是公共路由都带有
No Advertise 不通告路由(若是收到带有该值的路由信息,不会将该路由传递给其他任何BGP邻居)
No Export 不外发(若是收到带有该值的路由信息,不会传递给任何EBGP邻居)
No Export Subconfed 用于联盟,不会将该路由传递给联盟EBGP(即不传递给普通EBGP邻居) #F:MED多出口鉴别器,相当于链路cost
1:(华为默认是0)影响入站流量(注意我说的是流量不是路由),用于EBGP邻居(华为设备该值越小越优先),能在对端的AS内部传递,对端AS不能传递给其他AS
2:(提醒:影响入流量就是影响对方,也就是说对方AS内可以进行比较) #注意影响选路的有起源属性,AS path ,local_pref,MED这些.其他的如commity只是控制不直接影响选路

BGP扩展特性

BGP十三条选路原则
#当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行选路
1:若此路由的下一跳不可达,则忽略该路由
2:优选协议首选值(PrefVal)最高的路由(华为私有特性)
3:优选本地优先级(Local_Pref)最高的路由
4:优选本地生成的路由(即本地始发,本地聚合)
5:优选AS 最短的路由
6:比较起源属性(Origin),其中 i>e>? (即network>ebgp>import)
7:优选MED值最低的路由
8:优选从EBGP邻居学到的路由,(EBGP路由优先高于IBGP路由)
9:优选到下一跳IGP Metric较小的路由
10:优选Cluster List最短的路由(前面9条全部一样,才可能负载均衡)
11:优选Router ID最小的路由器发布的路由
12:比较对等体的IP address ,优选从具有较小IP address 对等体学来的路由 BGP如何实现负载均衡,前8条都没有比较出优先还是不优先的
MED的比较只能发生在同一AS内部
BGP高级特性描述
#路由反射器(指在IBGP内,实现简单,不改变现网拓扑)
1:根本原因:水平分割原则,中转AS,路由黑洞
2:角色类型: RR路由反射器,client客户机,Non-client非客户机
3:反射规则
只要是RR上有的路由,它都能将其传递给所有的client
4:路由反射器-防环机制(cluster list)
A:Originator ID属性(可选非传递),用于集群内的防环,由路由反射器RR产生,携带本地AS内该路由发送者的Router ID.
B:Cluster List属性(可选非传递),用于集群间的防环,有每个路由反射器RR产生,记录反射路由经过的集群.
5:路由反射器-备份RR
相同集群中的路由反射器共享相同的Cluster ID
Cluster List 的应用保证了同一AS内的不同RR之间不出现路由环路
6:路由反射器-同级RR
一个AS中可能存在多个集群,各个RR之间是IBGP对等体关系
7:路由反射器-分级RR
将较低网络层次的RR配置成更高网络层次中RR的client #BGP联盟(使用较少)
1:将一个AS划分若干个子AS,每个子AS内部建立全互联BGP邻居关系,子AS之间建立EBG连接关系 2:联盟-防环机制(AS_Path的记录类型)
AS_CONFED_SEQUENCE
AS_CONFED_SET #路由聚合(自动聚合:只能聚合import的路由不能是network引入的)
只向对等体发送聚合后的路由,从而缩小路由表规模
明细路由如果发生震荡,不会对网络造成影响
路由聚合分为自动聚合和手动聚合

https://article.pchome.net/content-2099609.html
https://www.csdn.net/article/a/2019-09-02/15980449

#BGP增强特性
1:BGP ORF(Outbound Route Filtering):出向路由过滤(有图)
BGP基于前缀的ORF,基于本地的入口策略构建对端的出口策略,实现BGP按需发布路由
包括基于前缀的ORF和VPN ORF 2:Active-Route-Advertise
只有当BGP路由被成功的安装进IP路由表,该路由才能被发送给邻居 3:BGP按组打包
按组打包技术将所有拥有共同出口策略的BGP邻居当作是一个打包组
每条待发送的路由只被打包一次然后发给组内的所有邻居 4:4字节AS号 5:按策略进行下一跳迭代
1:通过配置路由策略来限制迭代到的路由,如果路由不能通过路由策略则该路由迭代失败

Internet设计原理

学习网络BGP必备基础知识的更多相关文章

  1. [No000043]学习Linux操作系统必备基础知识

    Linux操作系统概述 Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundatio ...

  2. java必备基础知识(一)

    学习的一点建议: 每一门语言的学习都要从基础知识开始,学习是一个过程,"万丈高楼平地起",没有一个好的地基,想必再豪华的高楼大厦终究有一天会倒塌.因此,我们学习知识也要打牢根基,厚 ...

  3. 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器

    计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...

  4. 快速掌握Docker必备基础知识

    快速掌握Docker必备基础知识 Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种 ...

  5. SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...

  6. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  7. java第九节 网络编程的基础知识

    /** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...

  8. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  9. 2.Docker容器学习之新生入门必备基础知识

    0x02 Docker 核心概念 描述:Docker的三大核心概念镜像/容器和仓库, 通过三大对象核心概念所构建的高效工作流程; 1.镜像 [image] 描述:images 类似于虚拟机镜像,借鉴了 ...

随机推荐

  1. yum 安装指定版本Docker

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_39553910/artic ...

  2. mysql/mongodb监控之Percona Monitoring and Management (PMM) 2.1.0安装使用

    Percona Monitoring and Management (PMM)是Percona Server一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的D ...

  3. win10安装grafana

    1.下载grafana-6.2.5.windows-amd64.msi 2.以管理员身份打开CMD 3.输入 msiexec /i 程序的完整路径 msiexec /i xxx.msi

  4. Error-ASP.NET:未能加载文件或程序集“CMSCalendar”或它的某一个依赖项。系统找不到指定的文件。

    ylbtech-Error-ASP.NET:未能加载文件或程序集“CMSCalendar”或它的某一个依赖项.系统找不到指定的文件. 1.返回顶部 1. “/”应用程序中的服务器错误. 分析器错误 说 ...

  5. Centos7基础之查看NETMASK,GATWAY,DNS小技巧

    引语: 查看IP这种很基础的操作,想必大家都快倒背如流了.就是不知道大家知不知道怎么查看NETMASK,GATWAY,DNS.当然nmtui图形化界面以及查看网络配置文件这种骚操作就直接略过了.之前一 ...

  6. NET高级开发工程师职责要求

    岗位职责1.参与架构以及核心业务的设计:2.使用简单,干净,可维护性高,扩展性好的代码实现产品功能,并在必要时重构现有代码:3.贯彻面向接口以及模块化组件的设计理念:4.熟练RabbitMQ.ES.M ...

  7. (记录问题)1.Canvas.drawArc()方法的问题

    先看看异常: 一眼看去就知道说的是方法找不到错误 后面发现是系统版本过低,4.0的系统找不到5.0后添加的方法报的错. 修改后完美解决

  8. dockerfile的常用基础镜像——java镜像

    1. java镜像使用Java镜像的最直接方法是把它作为基础镜像或运行时环境. 1.1 镜像tagjava:<version>如果你不确定你需要什么,那么请用这个tag.它可以作为一个运行 ...

  9. 1-4dockerfile基本使用

    1.创建一个文件夹 mkdir mynginx cd mynginx touch Dockerfile [root@VM_0_10_centos mynginx]# cat Dockerfile FR ...

  10. WOS免费查的办法

    SCI期刊IF是我们很多人投稿时的考虑因素之一,但每年的IF在6月份左右才会发布,2017年6月将会发布2016年的IF,这就会对很多同学投稿造成一定的影响. 比如你现在准备在明年3月份投稿,这个时候 ...