BGP(一)边界网关协议

news2024/11/16 15:36:43

BGP协议基础

路由分类

直连路由
非直连路由(间接路由)

  • 静态路由
  • 动态路由
    IGP:内网网关路由协议(在企业内部或数据中心内部使用)
    DV:距离矢量路由协议
  • RIP(v1/v2)
  • IGRP——网络直径:100~255(思科的私有协议)
  • EIGP——思科私有
    LS: 链路状态路由协议
  • ISIS- 中间系统到中间系统
  • OSPF —开放式最短路径优先
    EGP : 外部网关路由协议:在不同公司之间使用,在不同的城市之间
    BGP:边界网关协议 (路径矢量路由协议)

为什么要使用BGP协议

我们要在不同AS之间实现网络通信,需要使用EGP-BGP协议,当然我们还看重BGP的一些优势

  • 非常稳定
  • 可以传输大量的路由,支持大规模网络
  • 具有非常丰富的路由控制策略,可以实现灵活的选路
    拓扑

BGP概述

  • BGP:边界网关协议
  • BGP是公有协议,任何厂商的设备都支持BGP
  • BGP位于OSI的第7层 (应用层)
    ps:OSPF基于IP协议,为了可靠性,数据库同步:协商主从关系,序列号、有确认机制

AS号

AS号(Autonomous System Number):自治系统:

  • 是互联网中的一种标识符,用于标识一个自治系统(AS)的唯一数字。自治系统是指由一组网络和路由器组成的网络。
  • AS号可以帮助互联网中的路由器找到要到达目的地的IP地址的最短路径。
  • AS号由互联网分配机构IANA(互联网分配号码管理局)分配。
  • AS号的范围被划分为两类:公共AS号和私有AS号。
  • 公共AS号是指由IANA分配的AS号,可用于在全球范围内标识自治系统。
  • 私有AS号是指由互联网注册机构(IR)分配的AS号,用于在私有互联网中标识自治系统。
  • AS通常使用“数字”来表示,称为AS号
  • AS号的范围是从0到65535,其中0被保留不使用
  • AS编号取值范围
    之前是2字节表示,取值范围:1-65535
    私有AS号:64512-65534,可以用于在私有互联网中标识自治系统,但不会在公共互联网中出现。这些私有AS号通常用于连接组织的内部网络。
  • 目前是4个字节:1-4294967295
    4字节AS号的范围是从0到4294967295,其中0号AS被保留不使用
    私有AS号范围是4200000000至4294967294
    4字节AS号由IANA管理,并由全球RIR(区域互联网注册局)负责分配
  • AS号的划分方式取决于运营商的具体管理需求和网络架构,可以按照城市、区域、网络、子网等不同的维度进行划分。

BGP协议概述

场景

场景

  • 场景一:遍布全国大型政企单位之间, 或大型数据中心
  • 场景二:运营商骨干网

作用

  • 在AS之间动态的交互路由信息,实现公司与公司之间的互访

优势

  • 稳定,基于TCP协议建立的,使用端口号TCP179,所以非常稳定
  • 传递大量路由,可以跨多跳建立邻居关系
  • 路由控制策略丰富

BGP邻居类型

  • EBGP: 运行于不同的AS
  • IBGP: 运行于同一AS内部

BGP特征

特征图

  • BGP使用传输层协议为TCP,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立
  • 运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器
  • 两个建立BGP会话的路由器互为对等体(Peer),说人话,就是BGP邻居
  • BGP对等体之间交换BGP路由信息 , 说人话,BGP在邻居之间传递路由
  • BGP路由器只发送增量的BGP路由更新,或进行触发式更新(不会周期性更新)
  • BGP能够传递大批量的路由,可在大规模网络中应用

BGP报文类型

  • open : 用于建立邻居关系 (类似于hello报文)
  • keep alive : 保活报文,用于维护邻居关系,周期性发送,60秒发一次, 保持BGP连接 (类似于hello)
  • update : 更新报文,用于传递路由和撤销路由 (类似于LSU报文)
  • notification : 通知报文,用于通知BGP邻居之间的报错信息,用于断开BGP连接
  • router-refresh : 重传报文,请求邻居重新发送路由信息

BGP工作过程

工作过程
工作过程

BGP状态

idle :初始化状态

  • tcp未连接状态,邻居的状态为idle , 当bgp设备和邻居进行tcp 连接时,会从当前的状态转为connect 状态

connect 状态: tcp 连接状态

  • 如果tcp 建立连接成功,bgp 设备会向邻居发送open报文,状态也会转为opensent 状态
  • 如果tcp 建立连接失败,bgp设备的状态会转为active 状态

active 状态:活跃状态

  • 在当前状态下,bgp 设备依然没有放弃希望,依然试图继续建立tcp 连接,如果成功,状态依然可以转为opensent 状态
  • 如果依然失败,bgp会停留在active 状态
    ps:如果重传计时器超时,依然没有收到邻居回应,bgp设备会心灰意冷的返回上一个状态,上一个是connect 状态

opensent 状态:open报文已发送状态,已向邻居发送open报文

  • 如果bgp设备给邻居发送open报文后,如果收到来自邻居的回复,并且回复的报文是正确的,bgp 设备会继续发送报文,发送什么报文呢? 发送keep alive 报文,状态转为 open comfirm 状态
  • 如果bgp设备给邻居发送open报文后,如果收到来自邻居的回复,但是回复的报文有错误,bgp 设备会向邻居发送notification 报文(用于断开bgp连接状态),断开后会跳转到最初的idle 状态

open comfirm : open报文确认状态

  • 如果收到邻居发来的keep alive 报文,状态会转为established 建立状态
  • 如果收到邻居发来的notification 报文,状态会跳转为 idle 状态

established : 连接已建立状态

  • 如果收到邻居发来的正确的update 报文或者keepalive 报文,bgp就会认为邻居是正常的
  • 如果收到邻居发来的错误的update 报文或者keepalive 报文,bgp设备会发送notification 报文,通知邻居,我们分手把,不做邻居了,会回到idle 初始化状态
    在这里插入图片描述

BGP的工作原理

  • 建立邻居
  • 传递路由

BGP路由优先级

  • 默认优先级为255
  • IBGP路由默认优先级为255
  • EBGP路由默认优先级为255

BGP邻居关系建立的完整流程

关系建立图

BGP基础配置案例

拓扑

需求

  • 配置EBGP邻居关系
  • 实现网络互通

配置步骤

配置接口IP地址
配置EBGP邻居

  • 开启BGP功能,进入AS号
  • 配置router-id
  • 指定邻居地址,指定邻居AS号
    注入路由

配置命令

sysname R1

  • [R1]interface GigabitEthernet0/0/0
  • [R1-G0/0/0]ip address 192.168.1.254 255.255.255.0
  • [R1-G0/0/1]interface GigabitEthernet0/0/1
  • [R1-G0/0/1]ip address 192.168.12.1 255.255.255.0
  • [R1]bgp 100
  • [R1-bgp]router-id 1.1.1.1
  • [R1-bgp]peer 192.168.12.2 as-number 200
  • [R1-bgp]network 192.168.1.0

sysname R2

  • [R2]interface GigabitEthernet0/0/0
  • [R2-G0/0/0]ip address 192.168.12.2 255.255.255.0
  • [R2-G0/0/0]interface GigabitEthernet0/0/1
  • [R2-G0/0/1]ip address 192.168.2.254 255.255.255.0
  • [R2]bgp 200
  • [R2-bgp]router-id 2.2.2.2
  • [R2-bgp]peer 192.168.12.1 as-number 100
  • [R2-bgp]network 192.168.2.0

验证:查看邻居表

  • display bgp peer

验证:查看路由表

  • display bgp routing-table

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

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

相关文章

【超全干货】一文讲清什么是全民分销?怎么做好全民分销?

一、什么是全民分销? 全民分销,作为新时代营销模式的代表之一,是基于互联网尤其是社交媒体平台兴起的一种分销策略。它打破了传统零售与电子商务的界限,允许任何个人,无论是否为专业销售人员,都能成为品牌…

JJJ:ubuntu修改静态ip

一、IP变化的原因 1.DHCP协议 虚拟机系统(Ubuntu、CentOS、UOS等Linux系统)启动后,加入本地局域网网络时,会向本地网络申请租约一个IP地址,租约时长不定。我这里租约时间短到只有1小时左右就更换一次IP地址。 二、解决方法:手动…

英语学习笔记20——Look at them!

Look at them! 看看他们! 词汇 Vocabulary big a. 大的(尺寸,年龄,音量……) 搭配:big cheese 大人物    big mouth 大嘴巴(传话的人)    big talker 吹牛的人 例句&#xf…

(六)Spring教程——Spring IoC容器(中)

(一)Spring教程——Spring框架简介 (二)Spring教程——Spring框架特点 (三)Spring教程——依赖注入与控制反转 (四)Spring教程——控制反转或依赖注入与Java的反射技术 (五)Spring教程——Spring IoC容器(上) (六)Spring教程——Spring IoC容器(中) (七)…

Milvus的执行引擎Knowhere

前言 本文将会介绍Knowhere这个概念,它是milvus向量执行引擎的核心。 概览 Knowhere是milvus向量咨询引擎的核心,它将好几个向量相似搜索库聚集在一起(包括faiss、hnswlib、annoy)。Knowhere也被设计支持异构计算。它控制在什么…

如何使用WindowsSpyBlocker防止Windows系统被恶意监控和跟踪

关于WindowsSpyBlocker WindowsSpyBlocker是一款功能强大的Windows系统安全防护工具,该工具基于Go语言开发,WindowsSpyBlocker以一个单独的可执行程序发布,可以帮助广大用户防止自己的Windows系统被恶意监控和跟踪。 WindowsSpyBlocker能够利…

使用 LlamaParse 进行 PDF 解析并创建知识图谱

此 Python 笔记本提供了有关利用 LlamaParse 从 PDF 文档中提取信息并随后将提取的内容存储到 Neo4j 图形数据库中的综合指南。本教程在设计时考虑到了实用性,适合对文档处理、信息提取和图形数据库技术感兴趣的开发人员、数据科学家和技术爱好者。 该笔记本电脑的主…

人工智能是“数字鹦鹉”还是有了自我意识?

相关说明 这篇文章涉及到的书籍是《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 部分章节内容可以参考: 理解大语言模型(二)——从零开始实现GPT-2利用神经网络学习语言(四&…

ICRA 2024: NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院等研究人员开发了精细操作的手术机器人

英伟达(NVIDIA)正与学术研究人员合作,研究手术机器人。 NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院和佐治亚理工学院的研究人员开发了 ORBIT-Surgical,一个训练机器人的模拟框架,可以提高手术团…

拥抱红利行业,短视频带货助力普通人逆袭

短视频带货,作为当下最热门的副业选择之一,不仅迎合了现代消费者购物习惯的改变,还借助了互联网平台的强大传播力,让每一个普通人都有机会成为带货达人。 首先,短视频带货具有低门槛、易上手的特点。你无需具备专业的…

Docker-数据卷的挂载

文章目录 数据卷概念数据卷实现机制数据卷特性数据卷操作数据卷挂载通用命令匿名挂载具名挂载数据卷继承容器数据卷只读容器数据卷读写-默认 总结 数据卷概念 为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合文…

upload-labs 通关方法

目录 Less-1(JS前端验证) Less-2(MIME验证) Less-3(黑名单,特殊过滤) Less-4(黑名单验证,.htaccess) Less-5(黑名单,点空格点绕过…

「项目」负载均衡在线OJ(ONLINE_JUDGE)系统

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

Unity 开发Hololens,制作面板跟随眼镜一起移动,(面板跟踪)

Hololens滑动框以及面板跟踪 创建空物体,并添加组件 SolverHandler、RedialView、FollowMeToggle 创建按钮,控制停止/开始跟踪 创建一个Hololens自带的按钮放到右上角,并添加事件 创建蓝色背景板 创建空物体Backplate,下面再…

专题汇编 | ChatGPT引领AIGC新浪潮(一)

ChatGPT的产生与迭代 2022年11月末,美国人工智能研究实验室OpenAI推出ChatGPT。上线的ChatGPT只用了2个月,活跃用户数就突破了1亿,创造了应用增速最快的纪录。 ChatGPT是什么 ChatGPT是一种人工智能技术驱动的自然语言处理(Natural Language Processing,NLP)工具,使用的…

【Linux学习】进程基础API

下面是有关进程基础API的相关介绍,希望对你有所帮助! 小海编程心语录-CSDN博客 目录 1. 僵尸进程与孤儿进程 1.1 孤儿进程 1.2 僵尸进程 2. 监视子进程 2.1 wait() 2.2 waitpid() 3. 执行新程序 exec族函数 4. 守护进程 1. 僵尸进程与孤儿进程…

PHP报错 Notice: Undefined index: action in

upload靶场PHP报错 Notice: Undefined index: action in 修改 php.ini 中的 error配置下错误显示方式:将error_reporting E_ALL 修改为 error_reporting E_ALL & ~E_NOTICE 修改后重启下APCHE服务即可。

Java方法的基本用法

Java方法的基本用法 前言一、什么是方法方法存在的意义示例 二、方法定义语法基本语法代码示例注意事项 三、方法调用的执行过程基本规则代码示例计算两个整数相加计算 1! 2! 3! 4! 5! 四、实参和形参的关系代码示例交换两个整型变量原因分析解决办法 五、没有返回值的方法…

SWM190系列应用

一、SWM190系列IO端口应用 1.1、SWM19SCBT6 B0端口引起的漏电流 SWM19S的IAP升级必须上拉B0,但B0会漏电,B0接高对方不止需要改版还会增加大概50ua的功耗。由于芯片内置的ROMCode默认B0脚切下拉。所以说接高电平会漏电。 在APP应用中,测试了直…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数,strstr()的使用介绍和模拟实现。 模拟实现这个函数,可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力,有兴趣的话就请往下看吧。 strstr函数介绍 函数功能: strstr函…