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

news2024/11/20 20:41:57

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,是最正常的,会自动修改下一跳

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

S7-200SMART实现MODBUS TCP通信(客户端+服务器)的具体方法和步骤示例

S7-200SMART实现MODBUS TCP通信(客户端+服务器)的具体方法和步骤示例 STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,安装软件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 项目树中“指令”文件夹的“库”文件夹中。 如下图Modbus TCP库指令…

R语言曲线回归:多项式回归、多项式样条回归、非线性回归数据分析

最近我们被客户要求撰写关于曲线回归的研究报告,包括一些图形和统计输出。本文将使用三种方法使模型适合曲线数据:1)多项式回归;2)用多项式样条进行B样条回归;3) 进行非线性回归。在此示例中&am…

微信小程序 | 一比一复刻世界杯点球大战

📌个人主页:个人主页 ​🧀 推荐专栏:小程序开发成神之路 --【这是一个为想要入门和进阶小程序开发专门开启的精品专栏!从个人到商业的全套开发教程,实打实的干货分享,确定不来看看? …

Codeforces Round #837 (Div. 2) Hossam and Friends

原题链接:https://codeforces.com/contest/1771/problem/B 题意 :你总共有n个朋友编号1~n,其中m对互不认识,求1~n区间中没有互不认识的子段的总个数。 思路:总字段个数为每个编号前面的编号个数(包括自己…

RK3568平台开发系列讲解(安卓适配篇)Android11 预安装应用功能

🚀返回专栏总目录 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Android11 上的应用预安装功能,主要是指配置产品时,需要将提前准备好的第三方应用 apk 放进 android 系统。在实际的研发过程…

【NumPy 数组连接、拆分、搜索、排序】

🤵‍♂️ 个人主页老虎也淘气 个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏…

[附源码]Python计算机毕业设计宠物领养系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等…

数学基础从高一开始5、充分必要条件

数学基础从高一开始5、充分必要条件 目录 数学基础从高一开始5、充分必要条件 概念复习 命题 真命题与假命题 命题的形式 概念定义 例1: 例2 练习 总结 概念复习 命题 命题:把用语言、符号或式子表达的,可以判断真假的陈述句称为命题。 真命题…

杨校老师课堂之MySQL数据库面试题【开发工程师面试前必看】

1.说一说三大范式 「第一范式」:数据库中的字段具有「原子性」,不可再分,并且是单一职责 「第二范式」:「建立在第一范式的基础上」,第二范式要求数据库表中的每个实例或行必须「可以被惟一地区分」。为实现区分通常需…

Rasa 基于规则的对话管理: 天气预报机器人

文章目录1. fallbackNLU fallback2. 意图触发动作3. 表单定义表单激活表单执行表单任务4. 天气预报机器人nlu.ymlstories.ymlrules.ymlcities.ymldomain.ymlconfig.ymlendpoints.ymlcredentials.ymlactions.py测试learn from https://github.com/Chinese-NLP-book/rasa_chinese…

Keras深度学习实战(40)——音频生成

Keras深度学习实战(40)——音频生成0. 前言1. 模型与数据集分析1.1 数据集分析1.2 模型分析2. 音频生成模型2.1 数据集加载与预处理2.2 模型构建与训练小结系列链接0. 前言 我们已经在《文本生成模型》一节中学习了如何利用深度神经网络生成文本&#x…

智能、人机融合智能和深度态势感知

内容摘要:人工智能的符号主义、联结主义和行为主义三大学派,分别从不同角度切入智能的本质,其研究观点相互补充但各有局限。在人机融合过程中,怎样进行人机功能分配,人机怎样融合学习、理解、决策、推理乃至感知。数据…

获取微信公众号token

access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token 接口调用请求说明 https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appidAPPID&secretAPPSECRET参数说明 参数是否必填说…

牛!单表千万行数据库: LIKE 搜索优化手记

我们可以在 txt 列上建立索引,用于优化该查询: CREATE INDEX tbl_like_txt_idx ON [tbl_like] ( [txt] ) 应用索引后,查询速度大大加快,仅需 5 毫秒: 由此可知:对于左前缀匹配,我们可以通过增…

市政工控典型安全解决方案

汽车制造业 MES系统 DNC系统 生产 安全域1 管理层 工控安全隔离装置 交换机 安全配置核查系统 HMI 历史数据库 运行监控系统 实时数据库 打印机过程 安全域2 监控层 工控漏洞扫描系统 安全交换机 工控安全审计系统 工控入侵检测系统工程师站 A 操作员站 A 实时数据库A 操作员站…

Linux中的文件传输命令(scp、rsync)、Linux之间通过sshkey公钥免密登录

scp测试环境:centos7.7 最小化安装,默认是有scp命令 -r 递归复制整个目录 -p 保留源文件的修改时间、访问时间和权限 -v 详细方式显示输出 -P(大写)指定port(端口)输出scp命令使用格式 scp /filename 目…

Linux 程序开发 之 库打桩机制

目录前言一、库打桩定义二、编译时打桩三、链接时打桩四、运行时打桩五、处理目标文件的工具前言 Linux 链接器支持一个很强大的技术,称为库打桩(library interpositioning),它允许你截获对共享库函数的调用,取而代之执行自己的代码。使用打桩…

m基于ACO蚁群优化的货车运输路线规划matlab仿真,考虑车辆载重,单位运输成本等因素

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 蚁群算法是通过对自然界中真实蚂蚁的集体行为的观察,模拟而得到一种仿生优化算法,它具有很好的并行性,分布性.根据蚂蚁群体不同的集体行为特征,蚁群算法可分为受蚂蚁觅食行为启发的模型和受孵化分…

渗透学习-靶场篇-WebGoat靶场(JWT攻击)

文章目录前言一、介绍JWTJWT令牌结构获取的令牌的基本过程二、攻击方式以及靶场的搭建1.安装cWebGoat2.空加密验证攻击3.字典爆破三、认证-键值逻辑前言 本次主要学习了javaweb项目方面任意出现的一些安全问题,最主要的是有关于JWT身份认证上的攻击,并利…