XCIE-HUAWEI-超级完整的BGP-1

声明,内容对比前面的可能差一点,因为这个BGP我是会的,但是华为的特性啥的不太会
所以相对来说可能没那么详细,不过应该也够的了,要看思科的翻我的文章去有思科的

先说一个东西
面试会问到的哈
BGP和OSPF的network有什么区别
BGP和OSPF的network 0.0.0.0 0.0.0.0 分别代表什么
答案
1.BGP的network是宣告路由表,OSPF想宣告什么宣告什么
换句话说,如果这条路由条目不存活,或者不在路由表中,则无法宣告
2.OSPF的network八个0代表宣告本机所有接口
而BGP中的八个0代表宣告默认路由的意思

关于华为官网的列举的BGP的东西太多了,就不发出来了
我会一个一个解释哈

BGP前言

首先呢,这个东西,可能比我还大,我03年的
然后,现在用的都叫BGP第四版
曾经呢,有个东西叫EGP,不是外部外网关协议,而是他就叫EGP
然后呢,他也没有防环,也垃圾,慢慢的就被淘汰了
BGP和OSPF,ISIS,EIGRP这些路由协议一样,一样是有这个AS号的
自治系统区间

在BGP中
-同一个AS的叫IBGP
-不同一个AS的叫EBGP

这个AS呢,我们是拿不到的,得去申请哈,在这个IANA里面,一个AS号我记得是2w吧,然后一个月又2w,反正挺贵的,公网上的BGP-AS号,是由IANA-这个国际组织去分配的。这个事情是运营商去做的,我们呢跟运营商申请就行

as的范围呢就是
私有AS:64512-65535(相当于私网IP)
公有AS:1-64511
单个设备上只能启动一个BGP进程
因为BGP非常消耗设备的内存

小知识
中国电信呢
有三张网络
一个叫CN2。基于MPLS VPN的,也是用来提供MPLS的,比163网牛逼很多,而且也有外国出口,欧洲,美洲的出口等
一个是DCN,网管的,终端呀,管理核心设备的,啥的
一个是163网,也叫ChinNet网,是中国最大的互联网,基本上客户都在这,提供国际的出口

然后BGP的叫法挺有意思的
BGP在华为里面呢,叫路径矢量路由协议
但是在思科里面呢,叫距离矢量路由协议
一旦是这个矢量,就代表传递路由表,所以OSPF不叫这个,因为OSPF传递的是LSA

IBGP和EBGP(BGP的邻居类型)

BGP即可做内部网关协议也可以作为外部网关协议
IBGP —— (Internal Border Gateway Protoco)
EBGP —— (External Border Gateway Protoco)

IBGP=同一个AS号,其中这个i,你理解为in也行,Internal也可以,内部

AS理解为工号,同一个工号的才可以信任
所以IBGP的特点就是
第一,使用IGP来计算和发现路由,同一个AS的是互相信任的。
因此IGP的路由计算和信息泛洪处于完全开放状态,简单的说人为不用怎么干预

EBGP=不同一个AS号

不同AS的,你就不是中国人!不是一类的,所以E,外部External
BGP里面的IBGP意义不太大,但是不能说没有
最大意义的还是EBGP
因为他可以让全球互联,还能结合MPLS的使用
记住了哈,无论是什么品牌,EBGP默认调试=1=TTL=1

一个比较明显的特点
IBGP是计算的
EBGP是不计算的,你给他啥他就学啥了

工作

BGP是建立在OSI的第七层应用应用层的,使用TCP目的端口179工作
由于BGP是使用TCP的底层,so,BGP的邻居建立可以跨越多跳,啥意思呢?
在OSPF里面
A-B-C (必须全部彼此建立)
在OSPF里面
A-B-C
只要ABC的底层互通了,那么A和C可以建立邻居(与B无关)

这个很重要的哈,有依有据

BGP邻居

BGP邻居状态机有6个

只有这个是有用的(Established)
其他的都是废的

BGP的报文
BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:

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

Update报文:用于在对等体之间交换路由信息。

Notification报文:用于中断BGP连接。

Keepalive报文:用于保持BGP连接。

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


既然是TCP,TCP嘛,三次握手,开回顾一波

TCP三次握手

比如A-B
B发起TCP连接=TCP-SYN=请求连接
A会回复一个TCP,ACK+SYN=回复+确认
B收到之后再回复一个ACK=双向确认
A会在给一个四次挥手

环境


上面讲过,因为BGP是需要基于TCP的
换句话说就是三层以上,那就是=有路由了
那么假设现在左边为中国,中间是世界,右边是美国
那么这个时候中美需要建立AS=1的BGP的关系

左边为10段,右边为20段
R1上的这个代表啥呢?
BGP和OSPF不一样
他不是宣告就=邻居+网络了

BGP里面得手动指定邻居和宣告网络才可以

解释一下
邻居IP为20.1.1.2,AS号为1
当然在对端上也要写过来

与此同时,也带有三层含义(后面就知道为什么这样说了)
第一。指定了发送BGP报文的目的IP
第二,指定了邻居路由器的AS号
第三,邻居向我发送报文的源地址


display bgp peer

记住了 ,只有这个状态才是正常的,其他都是不成功的

说到这里了就讲讲这个邻居表怎么看


首先
BGP local router ID :这个不用说了,就是RID
RID呢,任何的路由协议都是一样的,标识符
那么在BGP里面的RID选举是咋样的呢?

一毛一样
1.手动配置的RID
2.不配置的情况下自动选择最大的Lo接口
3.以上都没有的情况下选择最大的IP接口

Local AS numbem:本地的AS编号

Total number of peers:代表指定了几个邻居(也叫对等体)

Peers in established state : 已经建立连接的

Peerfrcv这个是对端的接口IP

V是版本的意思=version

AS=AS号

MsgRcvd=接收报文

MsgMent=发送报文

OutQ=0(一般情况下都是0,不是0反而有问题了,意思是队列,在传输队列的意思,或者他发不出去)

Up/down 建立时间

State Pre:状态

口说无凭,抓个包玩玩

抓的是R1的G0/0/0口

reset bgp all //相当于OSPF里面的软重启
我们来看看BGP建立邻居的过程


首先,我把它干断了,红色的。

BGP的OPEN报文仅仅用来建立邻居,不参与维护邻居

BGP的

OSPF的

这也是为什么BGP可以跨设备的原因

邻居讲完了,该说路由了

当然了,一样是network这个不会变的哈

开头讲过,BGP是宣告路由表的,那么就是我路由表里面有的我才能宣告

做了一个环回口

宣告进去

BGP路由


在这边已经通过了IBGP的方式学到了

默认情况下,EBGP和IBGP的优先级均为255

那么在BGP里面有LSDB这个东东吗

答案是有的,但是他不叫LSDB,LSDB是链路状态数据库
在BGP里面,他叫路由表

display bgp routing-table


至于每个代表啥,后面会讲
现在只需要知道,这个路由条目前面带一个>,代表的是
可以进入路由表
BGP的工作流程是首先获取路由,然后到自己路由表中计算,最优的才能加入路由表= > 这个标识符
*>=有效的最优的路由
*=有效

best 最优

BGP的一些东西在思科的那一章也有写,或许更多

BGP更新机制

1.触发更新
2.管理员手动触发更新
因为BGP更新很慢,所以一般会结合BFD或者说更改源地址

啥是手动更新呢?

手动发一次,如果是ALL则是双向
如果是export,则是手动更新给其他邻居
如果是import,则是手动更新给自己(因为很多时候会有引入)

什么是改源呢?

就是说,修改BGP路由更新的源地址

为什么这样做呢?

第一
环回口有一个特点
就是他无法被down,也不可能down,他down的情况只有一种就是设备挂了
如果设备挂了的话,就别说BGP了,直连都没了啥都没了
第二,通常每个设备上都有一个lo接口
作为设备的标识符
那么呢,在BGP里面的RID,也可以用这个lo口
然后呢,做更新源是啥意思呢?
比如上面的那个左边10右边20
那么对于10来说目的地址就是20
反之,对于20来说目的地是10
我这个时候把他改成lo口,这样更新会稳定跟多
但是带来的影响1.路由问题(源目接口的更改)
2.跳数问题(EBGP)所以要求这个修改更新源,也要保证这个源,对端也有他的TCP连接,就是说有路由的意思

修改办法

neighbor x.x.x.x update-source loopback 0 (思科)

BGP路由黑洞问题


注意看,现在有路由的情况下,是不通的
为什么呢?
先别慌
首先
在BGP和往后的学习中,这种情况,很常见

so why

因为,R2没路由
为什么呢??
不是说跟R2没关系嘛
BGP的只是R1和R3呀
但是我们来看路由表(不看bgp表)


对于BGP来说他是有了但是对于R2来说,这啥啊,没路由,我给谁啊,又没默认路由,扔了扔了。
这就形成了路由黑洞了

解决办法xxx---后面再说

IBGP和EBGP对等体的路由的问题

因为,对于BGP的下一跳的修改问题

1.对于路由器的始发路由,传输给BGP邻居的时候,自动修改下一跳,为本机,就是我发出去的,下一跳来找我

IBGP进入IBGP的问题

在IBGP中,如果IBGP的邻居传输一条来自IGBP的邻居路由给EBGP邻居的时候,那么会自动修改下一跳为自己

说的可能怪怪的,上个图吧


捋一捋哈,别晕了
R3和R1是IBGP的邻居
那么
R1传输来自R3的路由,给R5的时候(IBGP给EBGP来自IBGP的路由)
这个时候,他会自动修改下一跳
就是告诉R5,这条路由,下一跳找我就行了这样描述应该很可以了,自己看着理解吧

IBGP进入IBGP的问题(也是IBGP的防环原则)

谁告诉你完了?
把耳朵捡起来!!!
先说重点:一个IBGP设备收到一条IBGP的路由,他不会转发给他的IBGP的邻居
什么意思呢?


还是这个图,还是这个系列,AR6新接入,也是为AS1

再讲一次
R3-R5(EBGP)
R3-R6(IBGP)
IBGP设备从EBGP学到的路由不会转发给他的任何的一个IBGP的邻居
R5发给R3的路由,他不会发给R1,AR6

口说无凭上配置


在R6的BGP表中(可以理解为全网网络)
并没有来自下方(R1) 网络的路由
这条2.2.2.2是他们两个直连的,就是R3的环回口的路由

EBGP进入IBGP

先说重点:当IBGP学到EBGP的路由再发给IBGP的邻居的时候,不会修改下一跳

还是这个拓扑图

我在R5上添加了一个lo口并且宣告到EBGP中


来到R1上查看路由表
发现200.200.200.200并没有加表,而且他的下一跳是30.1.1.2(R5)
但是R3可以
 当IBGP学到EBGP的路由再发给IBGP的邻居的时候,不会修改下一跳看好了R3-R5(EBGP)R1-R3(IBGP)R3从R5学来的EBGP的路由发给R1的时候(IBGP)不会修改下一跳
这个咋解决呢?
告诉R1以及其他的IBGP邻居,下一跳,找我就行了
咋做呢?
R3上


告诉1.1.1.1,你收到我的路由的时候的下一跳,指向我
这个时候再来看(1.1.1.1=R1)的路由表的情况

现在不要去ping哈,告诉你,除了直连百分百都不通

这个啥时候会用到呢?
答:
当你的设备为边界设备的时候,连接外部的EBGP邻居的时候
向你的IGBP邻居做这个配置,告诉他们,下一跳,is me

EBGP进入EBGP

EBGP进入BEGP的时候,会自动修改下一跳


当AR6发给AR3的路由的时候,AR3发给AR5,这个时候会自动修改下一跳

总结一波,有点多哈

BGP-大型路由协议,即可内网也可以外网,TCP-179-OSI第七层应用层
区分邻居
IBGP=内部=ttl=255=优先级255=同一个AS号
EBGP=外部=ttl=1=优先级255=不同的AS号
(均为默认值)
互相进入
1.始发的路由直连都会自动修改下一跳
2.IBGP设备收到{IBGP}邻居发来的路由进入EBGP的时候,会自动修改下一跳
3.IBGP设备收到{IBGP}邻居发来的路由不会发给任何一个IBGP邻居(IBGP防环原则)
4.顺带提一下,EBGP的防环原则是AS-PATH,简单的说就是路由器水平分割一样的,具体后面讲
5.当IBGP设备学到{EBGP}的路由再发给IBGP的邻居的时候,不会修改下一跳
解决办法:指定本机为IBGP邻居的下一跳,用于边界(PE,CE)
6.EBGP进入EBGP,是最正常的,会自动修改下一跳

XCIE-HUAWEI-超级完整的BGP-1相关推荐

  1. 【超级完整】北京理工大学计算机复试机试历年真题答案2003年-2018年

    本人已经把该博客代码部分整理,在另一篇博客中: [超级完整-更正版]北京理工大学计算机专业复试机试历年真题答案2003年-2018年 目 录 1-2003两个空间坐标求球的体积 1 2-2003计算某 ...

  2. yum源本地配置和网络源配置——超级完整详细

    文章目录 网络源 说明 通外网配置方法 不通外网使用方法 主服务器配置网络yum源 防火墙和selinux设置 vsftpd服务安装 光盘挂载设置方法 网上下载yum源的设置方法 客户端yum源配置 ...

  3. java飞机大战绪论_一个超级完整的java飞机大战(包括音效和奖励)

    [实例简介] 比较完整的飞机大战,里面的解析很清楚,很适合用来当大作业或者学习之用 [实例截图] [核心代码] shootgame └── shoot game ├── 123.png ├── aix ...

  4. 超级完整的JS学习笔记整理2020版本

    一.javaScript是什么? JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户 ...

  5. 局部解剖学考试重点总结超级完整

    第一章 头颈部 一.名词解释 1.头皮:颅顶的额顶枕区皮肤.浅筋膜.帽状腱膜和枕额肌三层紧密附着,组成"头皮". 2.面部"危险三角":指两侧口角至鼻根连线所形 ...

  6. 椭圆曲线:超级完整的椭圆曲线学习记录

    目录 引言 事件 感想 引言 Elliptic Curve (椭圆曲线),入坑贴. 椭圆曲线,可以认为是某一领域,比如说有理数域Q上三次不定方程y²=x³+ax+b所定义的一种"平面&quo ...

  7. Shell笔记(超级完整)

    文章目录 1.Shell 概述 1.1Linux 提供的 Shell 解析器有 1.2bash 和 sh 的关系 1.3Centos 默认的解析器是 bash 2.Shell 脚本入门 2.1脚本格式 ...

  8. python pycharm 书籍_一份超级完整实用的 PyCharm 图解教程,8K 字赶紧收藏起来

    转载自今日头条:Python之眼 PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率.那么具体如何使用呢?本文从 PyCharm 安装到插件.外部工具.专业版功能等进行 ...

  9. pycharm导入jieba包_一份超级完整实用的PyCharm图解教程,赶紧收藏起来

    PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率.那么具体如何使用呢?本文从 PyCharm 安装到插件.外部工具.专业版功能等进行了一一介绍,希望能够帮助到大家. ...

  10. python作品教程图解_一份超级完整的PyCharm图解教程

    微信搜索公众号:Python极客社区. 每天分享不一样的Python干货 PyCharm 是一种 Python IDE,可以帮助程序员节约时间,提高生产效率.那么具体如何使用呢?本文从 PyCharm ...

最新文章

  1. python列表转字节_如何在Python中将十进制数转换为字节列表
  2. 替换jar包_替换代码的情况下不停机!这操作可能工作6年的Java程序员都不会
  3. 手机天气显示服务器错误,手机天气云服务器
  4. python 装饰器装饰类
  5. Veeam FAQ系列转载(三)
  6. 抽奖砍价之类以均值为基础的波动算法 demo版本
  7. eclipse不支持泛型_Go语言11岁了,网友:他喵的,终于确定出「泛型」了
  8. CSS2.0样式手册_说明_SDK下载chm
  9. L1-013 计算阶乘和 (10 分)—团体程序设计天梯赛
  10. Oracle日期函数和转换函数
  11. Pop3得到的Email 信件格式介绍
  12. Ant笔记(一)Ant下载与安装
  13. Unity粒子系统——简易特效制作(三)
  14. 全国计算机三级网络技术感悟,这几天准备计算机三级考试的感悟
  15. 云服务器安装软件,如何在云服务器中安装软件
  16. 三型两步验证登不上_苹果手机开启了双重认证,未信任的设备之前登入了,开启了双重认证未...
  17. 微信小程序云开发之cms开发
  18. while、do...while、for循环的使用
  19. AES解密控制台中文乱码问题
  20. java 虚拟机(jvm)-06-JVM jdk 自带工具 jstack jconsole jvisualvm jmap jinfo

热门文章

  1. 尚硅谷大数据视频_Shell视频教程
  2. 七种常见软件开发模型
  3. 360周鸿祎:没有人比我更懂互联网安全
  4. 金融时间序列分析_写给你的金融时间序列分析:初级篇
  5. Citrix Virtual Apps and Desktops 7 2203 LTSR虚拟云桌面完整教程
  6. 有了屏幕指纹和AI加持,这部手机会成为新一代爆款么?
  7. sencha touch 入门系列 (七)sencha touch 类系统讲解(上)
  8. vue使用常见问题及解决方案
  9. 刚安装的谷歌浏览器搜索异常
  10. 输出二叉树中叶子结点的个数