BGP基本配置

一、知识补充

1、BGP

BGP是Border Gateway Protocol(边界网关协议)的缩写。它是用于在互联网中交换路由信息的一种协议。BGP被广泛应用于大规模的自治系统(AS)之间,用于实现跨网络的路由选择和交换。

BGP的主要功能是在不同的自治系统之间传递路由信息,帮助确定最佳的路径来转发数据包。它使用一系列的路由策略和属性来选择和优化路由,以确保数据能够有效地从源地址到目的地址进行传输。

BGP协议具有以下特点:

  1. 可靠性:BGP通过使用TCP协议建立可靠的连接来交换路由信息,并确保路由的稳定性和可达性。
  2. 可扩展性:BGP支持大规模网络的路由交换,能够处理成千上万个路由器和自治系统之间的复杂路由关系。
  3. 灵活性:BGP允许网络管理员根据自己的需求配置路由策略,以实现特定的路由选择和控制机制。
  4. 多路径选择:BGP可以同时维护多条到达相同目的地的路由路径,并根据各种属性选择最佳路径。

2、水平分割原则

水平分割原则

在AS内部,也有可能环路的

在R1、R2、R3、R4内部运行IBGP协议,R1将1.1.1.1传递给R2,R2传递给R3,R3传递R4,R4传递给R1,这样在AS100内部就形成了环路。

在这里插入图片描述

AS内部防环

设计了IBGP的水平分割原则,一个路由器从它的IBGP邻居学习到的路由,不会再传递给下一个IBGP邻居

R1通过EBGP学习到了RA的路由,R2通过IBGP学习到了R1的路由,但是R2不能把从R1学到的路由传递给R3。因为R1、R2、R3在同一个AS内,基于IBGP水平分割原则:一个路由器从它学到的IBGP邻居学到的路由,不能再传给下一个IBGP邻居。IBGP水平分割在AS内虽然防止了环路,但是带来新问题,就是路由无法传递

一般把边界路由器配置成路由反射器,以防止BGP路由黑洞,防止水平分割

二、配置需求及拓扑图

  • loopback 0地址为x.x.x.x/32(x为设备号)
  • R2、R3间运行OSPF协议,进程号为1,归属区域0,需要发布loopback地址。
  • R2、R3间部署IBGP,AS号为100,使用Loopback接口建立邻居关系。
  • R1和R2间运行EBGP,R1使用AS号为200,R2的AS号为100,使用互联接口建立邻居关系
  • R3和R4间运行EBGP,R4使用AS号为300,R3的AS号为100,使用互联接口建立邻居关系
  • 实现全网互通
    在这里插入图片描述

三、配置步骤

1、OSPF配置

R2

R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
Change router-id and update OSPF process! [yes/no]:y 
R2(config-router)#network 102.1.1.0 0.0.0.255 area 0
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
R2(config-router)#exit

R3

R3(config)#router ospf 1 
R3(config-router)#router-id 3.3.3.3    
Change router-id and update OSPF process! [yes/no]:y
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
R3(config-router)#network 102.1.1.0 0.0.0.255 area 0
R3(config-router)#exit
验证-查看邻居关系的建立

在这里插入图片描述

2、BGP配置

R1

R1(config)#router bgp 200
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#neighbor 101.1.1.2 remote-as 100       
R1(config-router)#exit

R3

R2(config)#router bgp 100
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#neighbor 101.1.1.1 remote-as 200
R2(config-router)#neighbor 3.3.3.3 remote-as 100
R2(config-router)#neighbor 3.3.3.3 update-source loopback 0
R2(config-router)#exit

R3

R3(config)#router bgp 100
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#neighbor 103.1.1.2 remote-as 300
R3(config-router)#neighbor 2.2.2.2 remote-as 100
R3(config-router)#neighbor 2.2.2.2 update-source loopback 0
R3(config-router)#exit

R4

R4(config)#router bgp 300
R4(config-router)#bgp router-id 4.4.4.4
R4(config-router)#neighbor 103.1.1.1 remote-as 100
R4(config-router)#exit
验证-R2上查看BGP的邻居

在这里插入图片描述

在这里插入图片描述

3、路由引入

宣告网段的两种方式

  • BGP中引入直连路由
  • BGP中Network宣告接口

这里使用引入直连路由

R1

R1(config)#router bgp 200 
R1(config-router)#redistribute connected 
R1(config-router)#exit

R2

R2(config)#router bgp 100
R2(config-router)#redistribute connected 
R2(config-router)#exit

R3

R3(config)#router bgp 100 
R3(config-router)#redistribute connected 
R3(config-router)#exit

R4

R4(config)#router bgp 300 
R4(config-router)#redistribute connected 
R4(config-router)#exit
验证-在R1上查看BGP路由明细

在这里插入图片描述

验证-在R4上查看BGP路由明细

在这里插入图片描述

4、最后分析

可以发现,R1学习不到R3的loopback地址,R4学习不到R2的loopback地址,是因为BGP的水平分隔的问题。可以将OSPF路由引入到BGP中来解决这个问题

R2

R2(config)#router bgp 100
R2(config-router)#redistribute ospf 1
R2(config-router)#exit

R3

R3(config)#router bgp 100
R3(config-router)#redistribute ospf 1
R3(config-router)#exit
验证-在R1和R4上查看BGP的路由明细

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Unity中Shader的Standard材质解析(二)

文章目录 前言一、我们对 Standard 的 PBR 的 GI 进行解析1、我们先创建一个PBR的.cginc文件,用于整理用到的函数2、然后在Standard的Shader中引用该cginc文件 二、依次整理函数到该cginc文件中我们来看一下PBR中GI的镜面反射做了些什么 二、最终代码.cginc代码&…

中兴亮相中国国际现代化铁路技术装备展览会 筑智铁路5G同行

近日,第十六届中国国际现代化铁路技术装备展览会在北京中国国际展览中心举办,中兴以“数智铁路,5G同行”主题亮相本次展览会,并全面展示了“数字铁路网络基础设施”、“云边结合的铁路行业云”、“数字铁路赋能赋智”等方面的最新…

github国内访问小解(windows)

git 下载安装 使用 github 前必须确保电脑上已经安装了 Git,可以从 Git 官方网站去下载。 官方的网站在国内访问会比较慢,这里可以选择国内镜像:https://registry.npmmirror.com/binary.html?pathgit-for-windows/ github 之旅 确认电脑已…

HCIA-H12-811题目解析(1)

1、【多选题】关于动态 MAC 地址表说法正确的是? A、通过报文中的源MAC地址学习获得的动态MAC表项会老化 B、通过查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数 C、在设备重启后,之前的动态表项会丢失 D、在设备重启后&…

运维 在Windows上搭建小型Git服务

文章目录 1、Git选型1.1、主要特性1.2、代码管理1.3、工单管理1.4、Pull/Merge requests1.5、第三方集成1.6、选型结论 2、环境搭建2.1、Gitea下载2.2、Gitea安装2.3、配置服务信息2.4、运行服务2.5、注册Gitea为服务2.6、正常使用 1、Git选型 1.1、主要特性 1.2、代码管理 1.…

VUE2+THREE.JS项目搭建

THREE项目搭建 简介学习文档推荐搭建1.下载three.js2.新建3DWorkShop.vue文件3.创建utils/three/tool.js4.创建components/three/draw.vue[重点]4.1 引入文件4.2 初始化场景4.3 初始化渲染器4.4 初始化光源4.5 初始化相机(人眼模式)4.6 初始化控制器4.7 初始化动画4.8 添加全局…

GB28181学习(十七)——基于jrtplib实现tcp被动和主动发流

前言 GB/T28181-2022实时流的传输方式介绍:https://blog.csdn.net/www_dong/article/details/134255185 基于jrtplib实现tcp被动和主动收流介绍:https://blog.csdn.net/www_dong/article/details/134451387 本文主要介绍下级平台或设备发流功能&#…

【心得】XXE漏洞利用个人笔记

XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别) xxe的利用 XML Entity 实体注入 当程序处理xml文件时,没有禁止对外部实体的处理,容易造成xxe漏洞 危害 主流是任意文件读取 XML 文件 一般表示带有结构的数据 祖父 3个叔父 8个堂弟堂妹 …

【C++】string模拟

string讲解&#xff1a;【C】String类-CSDN博客 基本框架 #pragma once #include <iostream> using namespace std; ​ namespace wzf {class string{public:// 默认构造函数string(): _str(new char[1]), _size(0), _capacity(0){_str[0] \0; // 在没有内容时仍要有终…

ChatGPT 使用入门

背景 ChatGPT是一个强大的聊天机器人助手&#xff0c;内置了大量的互联网知识文档&#xff0c;且具有上下文记忆&#xff0c;可以帮我们快速地查找一些资料&#xff0c;了解一个知识&#xff0c;帮我们回答问题&#xff0c;编写代码等。此外&#xff0c;在使用ChatGPT时具有一…

拼图游戏制作

2.创建用户界面 package domain; /** * ClassName: User * Author: Kox * Data: 2023/2/2 * Sketch: */ public class User { private String username; private String password; public User() { } public User(String username, String p…

简单好用!日常写给 ChatGPT 的几个提示词技巧

ChatGPT 很强&#xff0c;但是有时候又显得很蠢&#xff0c;下面是使用 GPT4 的一个实例&#xff1a; 技巧一&#xff1a;三重冒号 """ 引用内容使用三重冒号 """&#xff0c;让 ChatGPT 清晰引用的内容&#xff1a; 技巧二&#xff1a;角色设定…

【数据清洗 | 数据规约】数据类别型数据 编码最佳实践,确定不来看看?

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

mysql8下载与安装教程

文章目录 1. MySQL下载2. 方式一&#xff1a;msi文件安装2.1 安装2.2 添加环境变量2.3 登录mysql 3. 方式二&#xff1a;zip文件安装3.1 安装3.2 配置文件3.3 加入环境变量3.4 初始化mysql3.5 登录mysql 1. MySQL下载 以下两个网址二选一 官网&#xff1a;https://downloads.…

LeetCode(46)汇总区间【区间】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 汇总区间 1.题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某…

知识蒸馏代码实现(以MNIST手写数字体为例,自定义MLP网络做为教师和学生网络)

dataloader_tools.py import torchvision from torchvision import transforms from torch.utils.data import DataLoaderdef load_data():# 载入MNIST训练集train_dataset torchvision.datasets.MNIST(root "../datasets/",trainTrue,transformtransforms.ToTens…

鸿蒙系统扫盲(三):鸿蒙开发用什么语言?

1.两种开发方向 我们常说鸿蒙开发&#xff0c;但是其实鸿蒙开发分为两个方向&#xff1a; 一个是系统级别的开发&#xff0c;比如驱动&#xff0c;内核和框架层的开发&#xff0c;这种开发以C/C为主 还有一个是应用级别的开发&#xff0c;在API7以及以下&#xff0c;还是支持…

咨询+低代码,强强联合为制造业客户赋能

内容来自演讲&#xff1a;沈毅 | 遨睿智库 | 董事长 & 王劭禹 | 橙木智能 | 联合创始人 摘要 文章主要讲述了智库董事长沈毅创办广告公司的经历&#xff0c;以及他在管理公司过程中遇到的问题和挑战&#xff0c;最后通过与明道云以及橙木智能联合创始人王邵禹老师的合作&…

分布式篇---第五篇

系列文章目录 文章目录 系列文章目录前言一、你知道哪些限流算法?二、说说什么是计数器(固定窗口)算法三、说说什么是滑动窗口算法前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去…

【软件测试】盘一盘工作中遇到的 Redis 异常测试

在测试工作中&#xff0c;涉及到与 redis 交互的场景变的越来越多了。关于redis本身就不作赘述了&#xff0c;网上随便搜&#xff0c;本人也做过一些整理。 今天只来复盘一下&#xff0c;在测试过程中与 redis 的二三事儿。其中提到的案例是经过抽象化的&#xff0c;用作辅助说…