当前位置: 首页 > news >正文

BGP(边界网关协议)

1、网络AS(自治系统)

边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。

AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。AS号分为2字节AS号和4字节AS号,其中2字节AS号的范围为1至65535,4字节AS号的范围为1至4294967295。支持4字节AS号的设备能够与支持2字节AS号的设备兼容。

在统一的管理机构、统一的路由策略之下的一系列网络产品组成的网络实体,被称为一个网络的自治系统。BGP协议用于AS之间,而IGP用于AS内部。

2、BGP特征 不能注入igp 通信靠默认路由 igp注入bgp实现和互联网通信

(1)使用BGP的条件(情况)

一个AS允许数据穿过它到达其他AS

一个AS与其他AS有多条连接   

数据报文在进入或者离开AS时,需要对其进行策略处理

(2)BGP是路径矢量协议,是对距离矢量协议的增强

可靠更新:使用TCP179端口发送更新 *** 不能自动发现邻居

只采用触发的、增量更新

周期性的保活消息(keepalive message)维持TCP连接(默认60秒间隔,保持时间3倍)

丰富的度量值(也被称为路径矢量或路径属性)

3、BGP数据库结构(BGP有几张表)

(1)邻居表

(2)BGP表(拓扑表)

从每个邻居学习到的所有网络的列表

到达每个网络的多条路径

每个路径的BGP属性

(3)IP路由表

4、BGP消息类型

(1)Open

自治系统号(AS号):AS号范围1-65535(其中64512-55535为私有AS号)

保持时间(Holdtime):默认3min

BGP标识符(BGP的router-id)

可选参数(多协议扩展,路由刷新,优雅重启,路由刷新新旧格式,出站路由过滤)

(2)Keepalive:默认60s

(3)Update(更新)

NLRI(网络层可达信息)

路由属性

撤销路由

(4)Notification(通告)

当检测到错误时,会发送此消息并关闭BGP连接

5、BGP邻居关系的种类

(1)IBGP(Internal BGP)

建立BGP邻居(对等体)的路由器在同一个AS里,通常情况下,IBGP对等体不需要直接相连

(2)EBGP(External BGP)

建立BGP邻居(对等体)的路由器不在同一个AS里,通常情况下,EBGP对等体之间需要直连

As内部并且不知道 其他As网段

基础实验:R1,R2分别启用环回口,然后直连建立bgp,再宣发环回口进入bgp

[Huawei]bgp 1

[Huawei-bgp]router-id 2.2.2.2

[Huawei-bgp]peer  12.1.1.1 as-number 1  //对方所属的ip,as区域

Ibgp 建立

[Huawei-bgp]network  10.1.4.0 24  //宣发其他网段进入bgp

验证:

sike:

R1(config)#router bgp 1

R1(config-router)#bgp router-id 1.1.1.1

R1(config-router)#no bgp  default ipv4-unicast  //关闭消息设置

R1(config-router)#neighbor 12.1.1.2 remote-as 1   // 发现邻居   remote-as 1 邻居的as号

R1(config-router)#address-family ipv4              //进入到IPv4地址簇

R1(config-router-af)#nei 12.1.1.2 activate       //激活邻居12.1.1.2

宣发进入bgp

R1(config)#router bgp 1

R1(config-router)#address-family  ipv4

R1(config-router-af)#network 10.1.1.0 mask 255.255.255.0

实验:igp注入bgp(反之万万不可以bgp路由表巨大

[Huawei]bgp 1  //注意不同as 的bgp进程号不同

[Huawei-bgp]router-id 2.2.2.2

[Huawei-bgp]peer  12.1.1.1 as-number 1

注入ospf

[Huawei]bgp 1

[Huawei-bgp]ipv4-family unicast

[Huawei-bgp-af-ipv4]import-route  ospf 1

验证:R3,R4都有了全路由

sike: 

注入ospf

R1(config)#router bgp 1

R1(config-router)#address-family ipv4

R1(config-router-af)#redistribute  ospf  100 match internal external

实验:使用环回口建立ebgp关系

要写静态路由 因为是环回口

[Huawei]ip route 2.2.2.2 255.255.255.255 21.1.1.2

[Huawei]ip route 1.1.1.1 255.255.255.255 12.1.1.1

ebgp一般是直连接口建立

[Huawei-bgp]peer  1.1.1.1 connect-interface LoopBack 0  //数字代表建立关系的环回口

不在同一个as 使用环回口 会增加TTL bgp 默认max是1 所以无法到达 用下面指令修改 max为255

[Huawei-bgp]peer 1.1.1.1 ebgp-max-hop 2  //不使用环回口也会有跳数问题所以尽量拉高

验证:使用环回口建立ebgp关系成功

sike:

R1(config-router)#nei 2.2.2.2 update-source loopback0

R1(config-router)#neighbor  2.2.2.2 ebgp-multihop 255

BGP下一跳行为:

BGP的下一跳为AS的一跳,因此AS边界的BGP路由器,向它的IBGP对等体发送从它的EBGP对等体学习到的路由时,由于AS之间的网段不宣告到AS内部,因此会导致它的IBGP对等体学习到的外部AS的路由的下一跳不可达。

实验:目的使R1到R3路由下一跳为R2 不是R3

R1,R2建立igbp和ospf R2,R3建立ebgp,同时三台都起环回口用于验证

直接查看R1路由表无法看到R3环回口,使用如下命令验证

[Huawei-bgp]peer 12.1.1.1 next-hop-local //在R2上

验证:下一跳更改为了R2对应接口

sike:

R2(config)#router bgp 1

R2(config-router)#add ipv4

R2(config-router-af)#nei 1.1.1.1 next-hop-self

BGP的选路原则 *****(同步端口号179)

1Prefer highest weight (local to router). --思科私有,作用范围本路由器(最高的权重优先)

2、Prefer highest local preference (global within AS).(最大的本地优先级优先)

3、Prefer route originated by the local router (next hop = 0.0.0.0).(起源路由器优先)

4Prefer shortest AS path.(最短的AS-PATH优先)as个数

5、Prefer lowest origin code (IGP < EGP < incomplete).(最低的起源代码)

6、Prefer lowest MED (exchanged between autonomous systems).(最小的MED优先)

IGP的选路原则:

1、下一跳可达

2、最长掩码匹配  //同路由掩码越长越优先

3、最优管理距离

4、最小的度量值

实验:修改属性实现指定选路(这里只教一种方法很多大差不差)

上图中R1与R2以及R1与R3之间是EBGP关系,R2与R3之间是IBGP关系

在R1上启用Lo1:11.11.11.11/32,宣告到BGP中

在R2上启用Lo1:22.22.22.22/32,宣告的BGP中

要求在完成以上配置后,通过相关的修改,实现

在R2上:

traceroute 11.11.11.11 source 22.22.22.22

经过的路径是R2-->R3-->R1

注意:R2,R3必须是环回口建立邻居关系,不然修改 preferred-value无效

基本配置后

[Huawei]ip ip-prefix abc permit 11.11.11.11 32 //抓取目标流量

[Huawei]route-policy f1 permit node 10

[Huawei-route-policy]if-match ip-prefix abc

[Huawei-route-policy]apply  preferred-value 500 // 赋予PrefVal值越大越优先

[Huawei]route-policy f3 permit node 10

[Huawei-route-policy]if-match ip-prefix abc

[Huawei-route-policy]apply  preferred-value 1000

[Huawei]bgp 2
[Huawei-bgp]peer  12.1.1.1 route-policy f1 import  //导入

[Huawei-bgp]peer 3.3.3.3 route-policy f3 import

验证:R1,与2 3 不是通过环回口建立但可用此方法(懂得大佬评论区解答以下)

sike:

Weight 优先级

R2(config)#ip prefix-list 10 permit 11.11.11.11/32 抓住这段流量

R2(config)#route-map fromr1 permit 10

R2(config-route-map)#match ip address prefix 10

R2(config-route-map)#set weight 500  //weight值越大越优先

R2(config-route-map)#exit

R2(config)#route-map fromr3 permit 10

R2(config-route-map)#match ip add pre 10

R2(config-route-map)#set wei 1000

R2(config-route-map)#exit

R2(config)#router bgp 2

R2(config-router)#add ipv4

R2(config-router-af)#nei 12.1.1.1 route-map fromr1 in

R2(config-router-af)#nei 3.3.3.3 route-map fromr3 in

汇总(聚合)

聚合

huawei :

aggregate 192.168.0.0 255.255.248.0 as-set detail-suppressed 

sike : 

R2(config-router)#address-family ipv4

R2(config-router-af)#aggregate-address 10.1.8.0 255.255.252.0 summer-only as-set

BGP联盟(联邦)

相当于As 之上又嵌套一个As,便于网络管理

BGP联盟使管理者可以将大型AS分割成子AS,从而使大型AS更容易管理。被分割的AS本身是联盟,那些子AS是该AS的成员,在联盟以外的AS将整个联盟看作一个AS,它们看不到联盟内部的成员AS,因为这些成员AS对外部是隐藏的,因此成员AS可以使用公共AS号,也可以使用私有AS号,在实际生产环境中,建议使用私有AS号作为成员AS号。

实验时先建立联盟再peer邻居

不在联盟内peer联盟 直接peer联盟号 As号联盟内用

huawei:

[Huawei-bgp]confederation id  1

[Huawei-bgp]confederation peer-as  65002  //发现同联盟并相连的AS

sike:

R2(config-router)#bgp confederation identifier 1 //定义联盟AS

R2(config-router)#bgp confederation peers 65002 //定义域本AS相连的其他联盟成员AS

路由反射器:

bgp水平分割:同一个As内部的ibgp对等体A从B学习到的路由不会传给C(从ibgp对等体学习的路由不会向其他对等体转发)

解决方法:1.A与C同样建立对等体关系使得C可以从A学习路由(关系复杂不利于网络管理)

                  2.使B成为路由反射器会将其他客户反射给客户以及非客户,路由反射后的所有属性不发生变化(包括下一跳属性)

R2,R3起环回口宣发进bgp但因为水平分割R2看不到R3路由

[Huawei-bgp]peer  2.2.2.2 reflect-client

[Huawei-bgp]peer  3.3.3.3 reflect-client

验证:

sike:

R1(config)#router bgp 1

R1(config-router)#add ipv4

R1(config-router-af)#nei 2.2.2.2 route-reflector-client

R1(config-router-af)#nei 3.3.3.3 route-reflector-client

相关文章:

BGP(边界网关协议)

1、网络AS&#xff08;自治系统&#xff09; 边界网关协议BGP&#xff08;Border Gateway Protocol&#xff09;是一种实现自治系统AS&#xff08;Autonomous System&#xff09;之间的路由可达&#xff0c;并选择最佳路由的距离矢量路由协议。 AS是指在一个实体管辖下的拥有…...

Spring 概念汇总

一、Spring中的依赖注入和依赖反转 依赖注入&#xff08;Dependency Injection&#xff09; 概念 依赖注入是一种设计模式&#xff0c;它允许在对象创建时将其依赖的对象传递给它&#xff0c;而不是让对象自己去创建或查找依赖对象。在Spring中&#xff0c;依赖注入是控制反转…...

快速在找到函数的实体的方法

当我们写了许多许多的函数&#xff0c;那我们怎么快速的找到他们呢 我们只需要按下ctrl&#xff0c;在点击函数名字就可以快速的找到我们想要的函数...

05 django管理系统 - 部门管理 - 修改部门

04我们已经实现了新增部门的功能&#xff0c;下面开始修改部门模块的实现。 按道理来说&#xff0c;应该是做成弹框样式的&#xff0c;通过ajax悄咪咪的发数据&#xff0c;然后更新前端数据&#xff0c;但是考虑到实际情况&#xff0c;先用页面跳转的方式实现&#xff0c;后面…...

C++初阶——入门

目录 1、C发展历史 2、C版本更新 3、C参考文档 4、C书籍推荐 5、C的程序 6、命名空间 6.1 namespace的作用 6.2 namespace的定义 6.3 namespace的使用 7、C输入&输出 8、缺省参数 9、函数重载 10、引用 10.1 引用的概念和定义 10.2 引用的特性 10.3 引用的使…...

Java基于SSM微信小程序物流仓库管理系统设计与实现(源码+lw+数据库+讲解等)

选题背景 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…...

82.【C语言】数据结构之顺序表的初始化和销毁

目录 1.线性表 2.分类 1.静态顺序表&#xff1a;使用定长数组存储元素 代码示例(写入Seqlist.h中) 2.动态顺序表:使用与动态内存管理有关的函数 代码示例(写入Seqlist.h中) 补:数据管理的四个需求:增改删查 3.操作顺序表 1.初始化顺序表 1.不开辟空间 2.开辟空间 1…...

java-推荐一个控制台输出颜色ANSI字符的类

java-推荐一个控制台输出颜色ANSI字符的类 背景代码调用输出 背景 这个类是来自hive的一段代码&#xff0c;大家可以参考一下&#xff0c;这个类名是ColorBuffer 代码 /** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreem…...

关于定义结构体别名时 是否加*

在C语言中&#xff0c;使用typedef来定义结构体类型及其指针的别名时&#xff0c;Node和LinkList的声明方式有所不同&#xff0c;这是因为你对它们的目的和用途有不同的设定。 首先&#xff0c;看一下你的代码&#xff1a; typedef struct { int data; int lenght; // 注意&am…...

成语积累学习

识文断字&#xff1a;有一点文化知识 雨后春笋&#xff1a;春雨过后快速生长的竹笋&#xff1b;比喻大量涌现的新生事物 味同嚼蜡&#xff1a;如同咀嚼白蜡一样&#xff0c;毫无味道。形容文章或言辞枯燥乏味。 差强人意&#xff1a;大体上让人满意 八面玲珑&#xff1a;处…...

基于Java的茶叶商城设计与实现(源码+定制+开发)茶叶电商系统开发、茶叶电商平台开发、茶叶在线销售平台设计与开发

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

桥接、NAT和仅主机三种网络模式对虚拟机IP地址分配的影响

在虚拟机中&#xff0c;桥接、NAT和仅主机&#xff08;Host-Only&#xff09;这三种网络模式会给虚拟机带来不同的IP地址分配方式及相应的网络连接特性&#xff0c;从而产生不同的影响&#xff0c;具体如下&#xff1a; 桥接模式 IP地址分配特点&#xff1a;在桥接模式下&…...

音乐播放器-0.专栏介绍​

1.简介 本专栏使用Qt QWidget作为显示界面&#xff0c;你将会学习到以下内容&#xff1a; 1.大量ui美化的实例。 2.各种复杂ui布局。 3.常见显示效果实现。 4.大量QSS实例。 5.Qt音频播放&#xff0c;音乐歌词文件加载&#xff0c;展示。 6.播放器界面换肤。 相信学习了本专栏…...

单月变现3W!AI助力沙雕图文爆红小绿书,12篇阅读量破10万+!

最近有没有小伙伴注意到&#xff0c;在各大社交平台上&#xff0c;那些温馨治愈、搞笑沙雕的图文内容&#xff0c;能吸引大量的目光和流量&#xff0c;不久前&#xff0c;我也曾分享过这类内容&#xff0c;比如让人眼前一亮的人间清醒老奶奶&#xff0c;她的图文就属于这类流行…...

C语言复习第4章 数组

目录 一、一维数组的创建和初始化1.1数组的创建1.2 变长数组1.3 数组的初始化1.4 全局数组默认初始化为01.5 区分两种字符数组1.6 用sizeof计算数组元素个数1.7 如何访问数组元素1.8 一维数组在内存中的存储(连续存储)1.9 访问数组元素的另一种方式:指针变量1.10 数组越界是运行…...

大数据研究实训室建设方案

一、概述 本方案旨在提出一套全面的大数据研究实训室建设策略&#xff0c;旨在为学生打造一个集理论学习与实践操作于一体的高端教育环境。实训室将专注于培养学生在大数据处理、分析及应用领域的专业技能&#xff0c;通过先进的设施配置、科学的课程体系和实用的实训模式&…...

Unity3D 观察者模式

Unity3D 泛型事件系统 观察者模式 观察者模式是一种行为设计模式&#xff0c;通过订阅机制&#xff0c;可以让对象触发事件时&#xff0c;通知多个其他对象。 在游戏逻辑中&#xff0c;UI 界面通常会监听一些事件&#xff0c;当数据层发生变化时&#xff0c;通过触发事件&am…...

vue从0开始的项目搭建(含环境配置)

一、环境准备 下载node.js 检查node.js版本 替换npm下载源 1.下载node.js: Node.js — 在任何地方运行 JavaScript (nodejs.org) 2.查看版本: windowsr输入cmd进入输入node -v命令查看版本号是否出现确认是否安装 2.替换npm下载源: npm config set registry https://reg…...

力扣61~65题

题61&#xff08;中等&#xff09;&#xff1a; 分析&#xff1a; python代码&#xff1a; # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def rot…...

API接口开发流程与指南

API&#xff08;应用程序编程接口&#xff09;是现代软件开发中不可或缺的一部分&#xff0c;它允许不同的软件应用之间进行交互和数据交换。无论是调用第三方服务、集成内部系统还是开发微服务架构&#xff0c;API都扮演着关键角色。本文将为你提供一个API接口入门的详解&…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...