背景:

在20世纪80年代早期,站点以及站点之间路由协议的管理性对于快速增长的Internet是十分重要的。最初的解决方案是使用外部网关协议(EGP),但是EGP不能有效的防止环路,不能高效的选择路径,需要大量的时间来进行路由的聚合,且没有相关的工作来支持路由策略。

一开始科研人员尝试改进EGP,但是最后提出一个新的域间协议(BGP)。BGPv1在1989年被第一次提出,BGPv2在1990年被提出,1991年BGP再一次升级为BGPv3。1993年提出无类域间路由(CIDR)。而现在使用的BGP版本为4,是1995年被提及。BGPv4与其他版本最大的区别是无类的(CIDR),其他版本都是有类的,而这种改动从根本上改变了外部网关协议的可管理性和可靠性,BGPv4的出现就是为了支持CIDR。

*CIDR:将网络进行汇总时不需要按照主类网络的掩码规划。

概念:

BGP(border gateway protocol)边界网关协议,是基于路径矢量算法的EGP协议。用于AS间的网络互联,主要功能为AS间的路由传递与控制。基于TCP 179的路由协议,可靠性强。在建立邻居之前需要建立可靠的TCP三次握手;TCP可以为BGP提供确认重传、排序等可靠性的功能。

*AS:自治系统,由一个机构管理使用相同的选路规则的一组网络设备的集合就是一个AS(比如一个园区、一个数据中心、一个国家骨干都可以属于一个AS)。AS之间通过编号进行区分,其中AS编号分为2 byte AS 和4 byte AS。AS分为公网AS和私网AS,在公网需要申请公网AS号。公网AS为1-64511;私网为64512-65534。

报文类型:

1. open报文:通过该报文协商两段的参数建立BGP邻居。(状态机中具体解释了open报文的内容)

a)

b) 存在多个Capability,用于协商邻居之间的能力信息。

2. keepalive报文:周期60s发送,保持BGP邻居活跃度。该报文180s失效。

a)

b) 由于keepalive就是周期发送保证邻居活跃度,所以该报文只有BGP的报文头部。

3. updata报文:路由更新报文,触发更新。

a)

b) 报文中的Withdrawn routes  //用于撤销路由,会将撤销的路由放入该字段

c) 报文中的Path attributes    //BGP的路由属性,会包括AS-path、Origin、next-hop等

d) 报文中的Network layer reachability information(NLRI) //网络层可达信息,携带路由信息

4. Route-refresh报文:路由刷新报文,当收到该报文会响应updata报文

a)

b) 当路由器的入方向策略发生的变更,就会向邻居发送router-refresh报文请求邻居重新更新路由,邻居收到后就会将路由通过updata重新发送,这样本端路由器就可以将新的路由重新经过策略。

5. notification报文:差错通知报文,在BGP中出现任何差错都会发送该报文

a)

b) 路由器发送或接收该报文都会导致邻居关系和TCP失效,需要重新建立

状态机:

peer:对等体,就是BGP邻居关系

speaker:发言人,发送BGP报文的路由器

Router-ID:用于在BGP内部唯一标识一台BGP路由器,可以手工配置

Idle:初始状态,BGP路由器初始状态,当BGP start后会进入connect状态。

Connect状态:在该状态会尝试进行TCP连接,如果连接成功进入Opensent,如果失败则进入active状态。

*active:在本状态会重新建立TCP连接,如果成功就进入opensent,如果失败,则等待TCP连接超时后返回connect状态。

如果设备长时间停留在avtive状态,那么可能会出现tcp连接无法建立的情况,可能的原因为:

TCP不可达(二层不可达(链路故障、三层不可达(路由无法获取、端口不可达(一些过滤策略禁止了BGP的端口)

opensent:两端会互相发送open报文,在报文中携带自身参数用于邻居协商,协商成功则进入openconfirm状态。

open报文参数协商:可以对照上述open报文的内容

MY AS号:在open报文携带自身所在AS号,对端收到后会将配置的AS和open报文携带的my as进行比较,如果一直则可以建立邻居。

Hold time:协商使用两端较小的一端的hold time。只协商hold time可以灵活的配置keepalive时间,可以两端使用不同的keepalive时间,在协商时要求hold time必须是keepalive时间的三倍以上,如果本地keepalive时间大于协商后的hold time,那么会将本地的keepalive时间改为hold time的1/3。

BGP的RID:两端必须不一致。

BGP能力属性:两端需要协商成一致的。

openconfirm:当收到了对端的open报文并协商成功,就会发送keepalive进行确认并进入established状态。

established:当收到对端的keepalive标识对端对本端的open进行确认,就会进入established。在本状态下会周期发送keepalive来维持TCP的活跃度,并且会向邻居发送updata报文更新路由。

Notification:在任意状态都有可能发送,只要收到或者发送就会进入Idle状态,重新建立邻居关系。

邻居种类

1. EBGP邻居关系

a) AS间建立的邻居关系,一般在AS之间没有IGP,所以可以通过直连接口建立EBGP

b) 如果使用环回口或者建立EBGP邻居的路由器跨越了3层网络,此时需要指定更新源,且由于EBGP默认建立邻居的跳数为1,所以需要指定EBGP建立邻居的跳数要满足

2. IBGP邻居关系

a) AS内部建立的邻居关系,一般在AS内都是IGP,所以IBGP可以使用环回口建立邻居更加稳定

b) 在建立时需要考虑更新源的问题,需要将环回口指定为建立邻居关系的接口

问题:BGP建立邻居的过程是邻居双方都会发起TCP连接,但是需要使用的只是其中的一个,那么使用华为设备建立BGP邻居会使用哪一个TCP链接呢?

回答:华为设备建立BGP邻居双方都会发起TCP连接,先发起的一方TCP会话会建立成功,发送OPEN报文后会被对方发送TCP(FIN置位),先发起的一方回复TCP(ACK置位)断开TCP会话,然后后发起方开始建立新的TCP连接。

总结:BGP邻居的双方TCP连接只会使用后发起的TCP连接。

誉天华为数通认证技术指南之BGP的前世今生相关推荐

  1. 【通知】华为数通认证备考必备指南

    想获取更多『 思科 | 华为 | 红帽 认证真题 』.『 网工软考真题 』.『 大厂岗位内推 』,请关注公众号:HCIE考证研究所

  2. 华为数通技术及ENSP模拟器学习

    华为数通技术及ensp实验学习: 一.实用技巧: 1.常用的查看配置命令 display ip interface brief 查看接口ip地址 display interface brief 查看接 ...

  3. 华为数通HCIA考试高分指导(含全套题库)

    华为认证考试600分就能上岸拿证,考试并不难.今天将从6大重要考点考题分析,帮助大家高峰通过HCIA考试. 想要HCIA考试通过并获得高分,必须掌握以下6大板块: 1.选举规则汇总(易混淆考点) 2. ...

  4. 出国(东南亚)工作的华为数通工程师机会,欢迎投递简历

    1.1 数通岗位 1.1.1 华为数通初级工程师(海外招聘:2人) 职位描述: 1.通信或计算机相关专业大专以上学历. 2.比较熟悉华为.思科及其他主流网络厂商的产品和技术架构.主流的网络安全技术和产 ...

  5. 华为数通hcie人数有多少?

    华为数通hcie人数有多少 目前华为官方并没有给出一个准确的数字.但是从各个培训中心还有互联网上的考试战报看的话,也就是七八千人左右. 所以华为认证目前全国通过的人数并不太多,所以现在是一个非常好的考 ...

  6. 华为数通模拟器ensp问题解决方法

    华为数通模拟器ensp问题解决方法 ensp模拟器正常启动,需要以下七条正确使用: 1.ENSP和virtualbox版本正确使用,ensp一般使用最新版本即可,virtualbox我自己实验过后,发 ...

  7. 神州数码成为华为数通产物总代理

    网易科技讯 3月2日动静,华为同神州数码往日上午在北京签订协作和谈,神州数码正式成为华为数通产物的总代理,协助华为将收集设置配备摆设向企业级市场供应. 根据双方的和谈,华为和神州数码将共同确立和完美渠 ...

  8. 华为数通HCIE面试题目解密系列之RSTP边缘端口

    以下是华为数通面试考试的一道真题,原题如下: 请举例说明 stp 的 edge port 的作用,用在什么场景,并且使用 edge port 会碰到什么问题,怎么解决和防止? 提到边缘端口,我们是在N ...

  9. 华为数通笔记-ISIS高级特性

    ISIS收敛步骤 IGP的收敛可以总体描述为如下状态D+O+F+SPT+RIB+DD RIB状态和DD状态一般与路由器的硬件有关,如主CPU.线卡CPU.内存.网络处理器有关,这两个状态人为无法对收敛 ...

最新文章

  1. oracle rman异机恢复
  2. 第 21 章 System Utilities 配置工具
  3. 记录git命令:本地创建项目后如何上传到github上
  4. [Spring5]IOC容器_Bean管理XML方式_注入集合类型属性
  5. 应用机器学习视频教程,哥伦比亚大学 2020版
  6. java threadlocal用法_Java ThreadLocal的用法解析
  7. 【笔记】JAVA SE
  8. c#制作的简单的画图板
  9. docker 进入停止的容器_在Docker中运行一个Ubuntu镜像
  10. HarmonyOS Sans - 华为把鸿蒙系统自带的字体开放给全社会免费商用了
  11. NLP - 词法分析
  12. arcgis 根据坐标定位
  13. 威斯康星大学硕士计算机科学,2020年威斯康星大学-麦迪逊分校硕士热门专业
  14. 数智经济转型下如何抢占文创发展新机遇?中国移动咪咕聚焦新一代年轻人需求
  15. 杰理AC693N介绍
  16. Java面试系列——数据库(01)数据库的作用、分类、SQL语言、运算符
  17. 超详细Spring MVC的环境配置:IDEA环境下创建Maven WebAp
  18. SWIM error [30006]: Comm init error: chip does not answer
  19. Android Studio Socket客户端 与电脑服务器收发消息
  20. SpringBoot +Vue前后端分离(笔记)

热门文章

  1. 2kids学汉字 android,新2Kids学汉字
  2. 【工具笔记】Microsoft数学求解器Math Solver
  3. linux软件管理及软件仓库
  4. 列表(list)使用方法详解
  5. Moto Z2F 使用体验 刷机经验分享
  6. 程序员做外包,真的没地位没出路吗
  7. 为弹性云服务器申请和绑定弹性公网IP
  8. 今日头条还可以引流么?今日头条引流效果怎么样?
  9. 【C语言】验证哥德巴赫猜想:任何一个大于2的偶数均可表示成为两个素数之和。
  10. WordPress入门