BGP笔记实验

IGP(Interior Gateway Protocol)——内部网关协议

OSPF RIP IS-IS IGRP EIGRP

EGP(External Gateway Protocol)——外部网关协议

EGP BGP——边界网关协议

AS——自治系统

由单一组织or机构独立维护的网络设备&网络资源的集合

网络范围太大

自治

AS号

为了区分不同的AS,网络世界提出了AS号:0~65535(0&65535一般作为保留AS号)

IANA组织:分配IPv4&IPv6地址、AS号

        1~65534

                1~64511——公有AS号——IANA分配给运营商

                64512~65534——私有AS号

拓展AS号

将原本十六位AS号拓展到三十二位

IANA组织公布IP地址&AS号:CIDR Report

BGP

现版本:BGPV4、BGPV4+

BGP的一些特性

高可控性——路径属性

BGP设计了很多路径属性,可以通过路由策略关联这些属性到达路由控制的效果

IGP:选路、收敛、资源占用

BGP:

BGP传递一定是路由条目信息

BGP没有使用周期更新传递路由信息

BGP存在触发更新

高可靠性——TCP

BGP在传递层使用TCP进行传递:179

UDP:520

BGP建邻时,必须指定建邻的对象;BGP支持非直连建邻

RIP——无类别的距离矢量路由协议

BGP——无类别的路径矢量协议

BGP在传递路由条目信息时携带子网掩码

AS-BY-AS——BGP把一个AS看作一个整体

BGP默认情况下不支持负载均衡;BGP会根据传递过来的路由信息中携带的路径属性

选择最优的路由信息加载到路由表中

BGP把一个AS看作一个整体

RIP(IGP)实际上是一个算法的概念,BGP不是一个算法的概念,BGP也不需要计算路由信息,只负责转发路由信息

EBGP对等体——一般建议采用直连建立对等体关系

IBGP对等体——一般建议采用非直连建邻

BGP为了实现这两个规则,规定BGP规定EBGP对等体之间发送的数据包中携带的TTL值为1,而IBGP对等体之间传递的数据包TTL值为255

BGP的数据包

BGP的公共头部

Open数据包

用来建立BGP对等体关系的数据报文

AS号——自身的AS号,对比逻辑对等体发过来的OPEN报文中携带的AS号,必须&指定建邻的AS必须一致,否则会导致建邻失败

RID——建邻双方的RID不能一致,if相同会导致建立对等体失败

保活时间:类似OSPF的死亡时间默认180S,if对等体双方保活时间不一致,会按照时间更小的执行

Keepalive

1.用于周期保活BGP对等体关系,默认是1/3的保活时间,60S

2.用来做OPEN报文的临时确认包

Update

传递BGP路由信息的数据包

Notification

告警报文,在BGP工作过程中,if出现故障导致出现问题,会发送Notification报文告知对等体问题的原因。

Route-refresh

BGP的状态机

建立对等体之间TCP会话:指定建立对等体的对象

BGP在建立对等体过程中会建立两次TCP会话,会保留RID大的设备发起的TCP会话

六种状态机

BGP一共存在6种状态机

Idle

在Idle状态下,启动BGP协议后,必须指定建立对等体的目标之后,进入下一个状态。必须路由可达(依靠IGP协议or静态,直连)

Connect

在Connect状态下,BGP对等体之间,开始建立TCP会话连接。ifTCP会话建立成功,则进入OpenSent状态;ifTCP会话建立失败,则进入Active状态

Active

OpenSent

ifTCP会话(三次握手)建立成功,则会进入OpenSent状态,在OpenSent状态下,开始发送OpenSent报文以建立BGP对等体关系。

if认可对等体发过来的Open报文中的参数,首先会回复一个Keepalive报文用来确认Open报文中的参数我已认可,并且进入OpenConfirm状态

OpenConfirm

在OpenConfirm状态下,if收到对等体发送的Keepalive报文,则进入最终状态Established

Established

BGP的工作过程

1.基于IGP(静态、直连、RIP、OSPF ... )实现路由可达,原因:BGP需要建立TCP会话(单播)

2.指定建立邻居/对等体关系之后,邻居之间单播传输,通过三次握手,建立TCP会话通道,之后所有的BGP通信都将基于TCP会话通道来传输,并且依靠TCP提供传输的可靠性

3.使用Open报文&Keepalive报文进行邻居关系的建立。Open报文用来携带建邻使用的参数,Keepalive报文用于Open报文参数的确认,最终完成对等体关系的建立,生成邻居表,存储BGP对等体关系信息。

4.建立邻居关系后,使用Update报文来共享路由条目信息。信息中将携带目标网络号、掩码以及路径属性,之后,将发送&收到的路由信息记录在一张表中——BGP表

5.之后,会将BGP表中最优的路由信息(通过路径属性选择的结果)加载到路由表中。

6.收到收敛后,将使用Keepalive报文进行对等体之间周期保活,默认保活时间为180S(hold time),发送周期为60S。

7.if这个过程中出现任何问题,都将使用Notification报文进行告警。

8.if出现结构突变(网段消失or新增网段),则将使用Update报文进行触发更新,并通告给其他的对等体。

BGP的路由黑洞

控制层面的可达

数据层面实际不可达

IGP内部存在没有运行BGP的设备,当访问BGP网段的流量来到这些设备之后,由于控制层面可达,数据层面不可达(这些设备没有运行BGP,没有BGP网段的路由信息),那么将丢弃这些流量。

解决办法:

1.所有设备均运行BGP

2.重发布

3.MPLS——最早专门用来解决BGP路由黑洞,MPLS VPN

同步机制——当设备学习到一条BGP路由,if本地IGP路由表认为下一跳不可达,将视该BGP路由无效。默认关闭

BGP的防环

水平分割

EBGP水平分割

BGP为了解决EBGP路由环路问题,设计了一个AS-PATH属性,设备在发出AS时,会携带本AS的AS号,当路由信息携带该AS号,那么对于该AS的设备不会接收该路由,后转发的AS号在前面。同时AS-PATH属性也是BGP的一个选路依据,当其他属性一致时,会选择AS-PATH属性更短的路径

IBGP水平分割

当运行BGP的设备从IBGP对等体处学习到一条IBGP路由,那么将不在转发给其他IBGP对等体

解决方案:在IBGP对等体之间构建全连的IBGP对等体关系,1.增加拓扑的复杂性导致网络可拓展性变差,2.增加了占用资源

联邦 反射器

BGP的基础配置

配置IP地址&环回地址

以R1为例,R2~R5同理

interface GigabitEthernet 0/0/0
ip address 12.0.0.1 24
interface LoopBack 0
ip address 1.1.1.1 24
interface LoopBack 1
ip address 172.16.1.1 24
interface LoopBack 2
ip address 172.16.2.1 24
interface LoopBack 3
ip address 172.16.3.1 24
interface LoopBack 4
ip address 172.16.4.1 24
display ip interface brief    //查看IP表

配置BGP

R1:

bgp 100                        //启动BGP协议,并指定自身AS号
router-id 1.1.1.1              //手工配置BGPRID
peer 12.0.0.2 as-number 200    //直连建邻,指定建邻的IP地址&对应的AS号
display bgp peer               //查看BGP邻居关系(BGP的邻居表)

R2:

bgp 200
route-id 2.2.2.2
peer 3.3.3.3 as-number 200                  //IBGP之间使用环回建邻
peer 3.3.3.3 connect-interface LookBack 0   //注意环回建邻改变跟新源

更新源地址不一致将导致建邻失败

EBGP对等体之间使用环回建邻

R5:

ip route-static 4.4.4.0 24 45.0.0.1         //必须实现路由可达(建议使用静态)
bgp 300
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LookBack 0   //使用环回建邻注意:必须修改更新源

R4:

bgp 200
peer 5.5.5.5 ebgp-max-hop 2    //修改EBGP数据包TTL值

R5:

bgp 300
peer 4.4.4.4 ebgp-max-hop   //默认直接回车将修改TTL值255

BGP的路由发布

R1:

bgp 100
network 1.1.1.0 24          //宣告含义仅发布路由信息,并且注意:只能发布路由表中存在的路由信息
display bgp routing-table   //查看BGP表——记录发布的&接收到的所有BGP路由信息
 

Network——接收到的路由信息

NextHop——下一跳,if是本地始发的BGP路由信息,则该字段为0.0.0.0

*>——状态码

*vaild——有效,first当BGP设备接收到一条BGP路由信息,首先将验算下一跳是否可达,if可达,则代表该路由可用;if not,则认为该路由无效。注意:只有可用的路由信息才会参与BGP路由的选举,并加载到路由表中

>best——最优的路由信息最终根据路径属性选择的结果,只有最优的路由信息才会最终加载到路由表中,并且只有最终的路由才会被BGP传递

i——internal,内部通过IBGP对等体学到的

R2:

bgp 200
peer 3.3.3.3 next-hop-local    /当IBGP对等体学到一条EBGP路由,由于AS-BY-AS属性导致下一跳不可达,协议在传递这条IBGP路由的IBGP设备上修改下一跳为本地

BGP不能发布建邻网段

宣告BGP网段的方法——重发布

R2:

bgp 200
import-route ospf 1          //开启重发布
display bgp routing-table    //查看BGP表

重发布的路由信息本地下一跳也是0.0.0.0,相当于本地始发

Ogn——起源码:象征该路由通过何种方式学习到

I——表示该路由是通过IBGP对等体学到的路由信息,包括Network宣告的路由

E——表示该路由是通过EGP协议学到的路由信息,保留仅为了兼容性

?——除了前两种都是?

BGP的路由聚合——自动聚合、手动聚合

R1:

ip ip-prefix aaa permit 172.16.0.0 16 greater-equal 24 less-equal 24    //创建前缀列表抓取想要发布的路由网段
route-policy aaa permit node 10                                         //创建路由策略,匹配前缀列表抓取的流量——大的方向一定选择运行,否则视为拒绝发布这些匹配到的网段
if-match ip-prefix aaa    //匹配列表
display this

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API网关那些事【架构新知系列】

目前随着云原生ServiceMesh和微服务架构的不断演进,网关领域新产品不断出现,各种网关使用的技术,功能和应用领域也不断扩展,在各有所长的前提下也有很多功能重合,网上各种技术PR文章,评测资料和网关落地实践…

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-A

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A 一、竞赛时间 总计:360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …

Ubuntu18.04安装LeGO-LOAM保姆级教程

系统环境:Ubuntu18.04.6 LTS 1.LeGO-LOAM的安装前要求: 1.1 ROS安装:参考我的另一篇博客Ubuntu18.04安装ROS-melodic保姆级教程_灬杨三岁灬的博客-CSDN博客文章浏览阅读168次。Ubuntu18.04安装ROS-melodic保姆级教程https://blog.csdn.net/…

海外IP代理科普——API代理是什么?怎么用?

随着互联网的不断发展,越来越多的企业开始使用API(应用程序接口)来实现数据的共享和交流。而在API使用中,海外代理IP也逐渐普及。那么,什么是API代理IP呢?它有什么作用?API接口有何用处&#xf…

Ubuntu22.04 交叉编译GCC13.2.0 for Rv1126

一、安装Ubuntu22.04 sudo apt install vim net-tools openssh-server 二、安装必要项 sudo apt update sudo apt upgrade sudo apt install build-essential gawk git texinfo bison flex 三、下载必备软件包 1.glibc https://ftp.gnu.org/gnu/glibc/glibc-2.38.tar.gz…

vs code git问题:文件明明已加入忽略文件中,还是出现

vs code git问题:文件明明已加入忽略文件中,还是出现 原因: 因为之前这些文件都已经提交过,线上GIT已经存在,已存在就不能忽略, 解决办法: 先要删除这些文件提交上去,然后把这些文…

echarts 中如何添加左右滚动条 数据如何进行堆叠如何配置那些数据使用那个数据轴

左右滚动条的效果 此项的具体配置可参考 https://echarts.apache.org/zh/option.html#dataZoom-inside.moveOnMouseWheel dataZoom: [{id: dataZoomX,type: inside,// start: 0,// end: this.xAxis.length > 5 ? 10 : 100,startValue: this.xAxis.length > 5 ? 5 : 0,/…

RoCE、IB和TCP等网络的基本知识及差异对比

目前有三种RDMA网络,分别是Infiniband、RoCE(RDMA over Converged Ethernet)、iWARP。 其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输 ,技术先进,但是成本高昂。 而RoCE 和 iWARP都是基于以太网的…

004 OpenCV akaze特征点检测匹配

目录 一、环境 二、akaze特征点算法 2.1、基本原理 2.2、实现过程 2.3、实际应用 2.4、优点与不足 三、代码 3.1、数据准备 3.2、完整代码 一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、akaze特征点算法 特征点检测算法…

使用pytorch利用神经网络原理进行图片的训练(持续学习中....)

1.做这件事的目的 语言只是工具,使用python训练图片数据,最终会得到.pth的训练文件,java有使用这个文件进行图片识别的工具,顺便整合,我觉得Neo4J正确率太低了,草莓都能识别成为苹果,而且速度慢,不能持续识别视频帧 2.什么是神经网络?(其实就是数学的排列组合最终得到统计结果…

ElementUI及ElementUI Plus Axure RP高保真交互元件库及模板库

基于ElementUI2.0及ElementUI Plus3.0二次创作的ElementUI 元件库。2个版本的原型图内容会有所不同,ElementUI Plus3.0的交互更加丰富和高级。你可以同时使用这两个版本。 不仅包含Element UI 2.0版,还包含Element Plus 3版本。Element 2版支持Axure 8&…

接口自动化项目落地之HTTPBin网站

原文:https://www.cnblogs.com/df888/p/16011061.html 接口自动化项目落地系列 找个开源网站或开源项目,用tep实现整套pytest接口自动化项目落地,归档到电子书,作为tep完整教程的项目篇一部分。自从tep完整教程发布以后&#…

基于单片机的公共场所马桶设计(论文+源码)

1.系统设计 本课题为公共场所的马桶设计,其整个系统架构如图2.1所示,其采用STC89C52单片机为核心控制器,结合HC-SR04人体检测模块,压力传感器,LCD1602液晶,蜂鸣器,L298驱动电路等构成整个系统&…

RedisInsight——redis的桌面UI工具使用实践

下载 官网下载安装。下载地址在这里 填个邮箱地址就可以下载了。 安装使用。 安装成功后开始使用。 1. 你可以add一个地址。或者登录redis cloud 去auto-discover 2 . 新增你的redis库地址。注意index的取值 3。现在可以登录到redis了。看看结果 这是现在 在服务器上执行…

C#核心笔记——(二)C#语言基础

一、C#程序 1.1 基础程序 using System; //引入命名空间namespace CsharpTest //将以下类定义在CsharpTest命名空间中 {internal class TestProgram //定义TestProgram类{public void Test() { }//定义Test方法} }方法是C#中的诸多种类的函数之一。另一种函数*,还…

BLIP-2:冻结现有视觉模型和大语言模型的预训练模型

Li J, Li D, Savarese S, et al. Blip-2: Bootstrapping language-image pre-training with frozen image encoders and large language models[J]. arXiv preprint arXiv:2301.12597, 2023. BLIP-2,是 BLIP 系列的第二篇,同样出自 Salesforce 公司&…

数据仓库高级面试题

数仓高内聚低耦合是怎么做的 定义 高内聚:强调模块内部的相对独立性,要求模块内部的元素尽可能的完成一个功能,不混杂其他功能,从而使模块保持简洁,易于理解和管理。 低耦合:模块之间的耦合度要尽可能的…

python实现炫酷的屏幕保护程序

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 上次的文章如何实现一个下班倒计时程序的阅读量很高,觉得也很实用酷炫,下边是昨天的体验…

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示两行常规字符应用

基于基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示两行常规字符应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD1602简单介绍通过液晶显…

Java实现象棋算法

象棋算法包括搜索算法、评估函数和剪枝算法。以下是一个简单的实现: 搜索算法:使用极大极小值算法,即每个玩家都会做出最好的选择,考虑到对方也会做出最好的选择,所以需要搜索多层。 public int search(int depth, i…