BGP选路之Next Hop
原理概述
当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定出去往该目标网络的最优BGP路由,然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较,从而决定是否将该最优BGP路由放进P路由表中。BGP路由属性的比较顺序为Preferred Value属性、Local Preference属性、路由生成方式、AS_Path属性、Origin属性、MED属性、BGP对等体类型等,如果前面这些路由属性都完全相同或在比较选择的过程中可被忽略,则将比较路由的.NextHop属性。
Next Hop属性记录了去往目标网络所对应的下一跳IP地址。BGP在比较Next Hop属性时,会优选去往Next Hop属性中IP地址的IGP开销最小的路由。需要注意的是,如果一条BGP路由的Next Hop属性中的P地址不可达,则该条路由在BGP路由表中不会被标记为可用路由,从而也就根本无法参与BGP路由协议的选路过程。
BGP路由器在发布路由给EBGP对等体时,该路由的Next Hop 的IP地址会被自动修改,但发布路由给IBGP对等体时,Next Hop的IP地址不会被自动修改。为了满足不同网络环境的需求,当路由器发布路由给IBGP对等体时,也可以手动修改Next Hop的IP地址。
实验目的
理解Next Hop属性的概念与作用·掌握修改Next Hop属性的方法
理解Next Hop属性对BGP路由协议选路的影响实验内容R1属于AS 100,R2、R3和R4属于AS 200。R1的Loopback 1接口模拟客户所在的网络,R4的Loopback 1接口模拟目标服务器所在的网络。所有的路由器都运行BGP,同时R2、R3和R4还运行OSPF。R1与R2和R3之间的EBGP邻居关系采用直连物理接口来建立,R2、R3、R4之间的IBGP邻居关系采用Loopback 0接口来建立。最终的目标是实现AS 100的客户与AS 200的服务器能够进行正常通信,并且不能出现非对称路由的现象。
1、基本配置
R1:
sys
sysname R1
int g0/0/0
ip add 10.0.12.1 24
int g0/0/1
ip add 10.0.13.1 24
qinterface LoopBack0ip address 10.0.1.1 255.255.255.255
#
interface LoopBack1ip address 10.0.100.1 255.255.255.255
#
bgp 100router-id 10.0.1.1peer 10.0.12.2 as-number 200peer 10.0.13.3 as-number 200#ipv4-family unicastundo synchronizationnetwork 10.0.100.1 255.255.255.255peer 10.0.12.2 enablepeer 10.0.13.3 enableR2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/0
ip add 10.0.12.2 24
int g0/0/1
ip add 10.0.24.2 24
q
bgp 200router-id 10.0.2.2peer 10.0.3.3 as-number 200peer 10.0.3.3 connect-interface LoopBack0peer 10.0.4.4 as-number 200peer 10.0.4.4 connect-interface LoopBack0peer 10.0.12.1 as-number 100#ipv4-family unicastundo synchronizationpeer 10.0.3.3 enablepeer 10.0.4.4 enablepeer 10.0.12.1 enable
#
ospf 1 router-id 10.0.2.2area 0.0.0.0network 10.0.24.0 0.0.0.255network 10.0.2.2 0.0.0.0R3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int g0/0/1
ip add 10.0.13.3 24
int g0/0/0
ip add 10.0.34.3 24
q
bgp 200peer 10.0.2.2 as-number 200peer 10.0.2.2 connect-interface LoopBack0peer 10.0.4.4 as-number 200peer 10.0.4.4 connect-interface LoopBack0peer 10.0.13.1 as-number 100#ipv4-family unicastundo synchronizationpeer 10.0.2.2 enablepeer 10.0.4.4 enablepeer 10.0.13.1 enable
#
ospf 1 router-id 10.0.3.3area 0.0.0.0network 10.0.34.0 0.0.0.255network 10.0.3.3 0.0.0.0R4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int loop 1
ip add 10.0.100.4 32
int g0/0/1
ip add 10.0.24.4 24
int g0/0/0
ip add 10.0.34.4 24
q
bgp 200peer 10.0.2.2 as-number 200peer 10.0.2.2 connect-interface LoopBack0peer 10.0.3.3 as-number 200peer 10.0.3.3 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.100.4 255.255.255.255peer 10.0.2.2 enablepeer 10.0.3.3 enable
#
ospf 1 router-id 10.0.4.4area 0.0.0.0network 10.0.24.0 0.0.0.255network 10.0.34.0 0.0.0.255network 10.0.4.4 0.0.0.0network 10.0.100.4 0.0.0.0
可以看到,R1的 BGP路由表中有两条去往10.0.100.4/32的路由信息,下一跳分别为R2与R3。R1通告的10.0.100.1/32网络的Next Hop为0.0.0.0,即自己通告的BGP路由信息的Next Hop为0.0.0.0。
可以看到,R4的 BGP路由表中也有两条去往10.0.100.1/32网络的路由信息,NextHop分别为10.0.12.1与10.0.13.1,但没有标记为可用( valid)。
可以发现,R4的IP路由表中并没有去往10.0.100.1/32的路由信息,也没有去往10.0.12.1与10.0.13.1的路由信息。而在R4的BGP路由表中,虽有两条去往10.0.100.1/32的路由信息,但没有标记为可用,说明R4认为这两条路由信息的下一跳都是不可达的。
可以看到,R2的BGP路由表中有两条去往10.0.100.1/32的路由信息,其中 Next Hop为10.0.12.1的路由信息标记为可用。根据前面的实验步骤得知,10.0.100.1/32路由在R1上的Next Hop为0.0.0.0,说明当10.0.100.1/32的路由信息在由R1传递至EBGP对等体R2的过程中,Next Hop属性会被自动修改为发送BGP报文的源地址,即 10.0.12.1。而去往10.0.100.1/32的路由信息的Next Hop在R2与R4上均为10.0.12.1,说明10.0.100.1/32这条路由信息在由R2传递至IBGP对等体R4时,Next Hop属性不会自动被修改。R3上的现象与R2上的现象类似,这里不再赘述。
为了使R4的BGP路由表中去往10.0.100.1/32的路由信息标记为可用,并放进P路由表中,必须使R4去往10.0.100.1/32的 BGP路由信息中的Next Hop是可达的。实现这一要求的方法有两种:第一种方法是将EBGP对等体之间的链路通告进IGP网络;第二种方法是在R2和R3将路由信息传递给IBGP对等体R4时,使用发送 BGP报文的源地址作为BGP路由的下一跳。
在实际应用中,通常会使用第二种方法,本实验也将采用这种方法。
在R2上使用peer 10.0.4.4 next-hop-local和 peer 10.0.3.3 next-hop-local 命令,使BGP路由信息传递给IBGP对等体R4和R3时,使用R2发送BGP报文的源地址作为BGP路由的下一跳来代替原有的Next Hop。在R3上也进行类似操作
peer 10.0.2.2 next-hop-local
peer 10.0.4.4 next-hop-local
在R2上也进行类似操作
peer 10.0.4.4 next-hop-local
peer 10.0.3.3 next-hop-local
效果图如下
虽然客户网络与服务器之间能够进行通信了,但实际上还存在一些问题。
在R1上使用tracert命令验证从10.0.100.1/32去往10.0.100.4/32的报文所经过的路径。可以看到,从R4去往10.0.100.1/32时使用的是经过R3的路径。
通信双方的往返报文选用不同路径的现象称为不对称路由。对于某些特定应用,以及在部署了某些特别的安全设备和安全策略的情况下,不对称路由的存在可能会导致通信中断的现象。
相关文章:

BGP选路之Next Hop
原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定出去往该目标网络的最优BGP路由,然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较,从而决定是否将该最优BGP路由放进P路由表中…...
牛客14666(优先屏障) + 牛客14847(Masha与老鼠)
文章目录 写在前面14666-优先屏障思路编程 14847-Masha与老鼠思路编程 写在前面 昨天刷的这两道题写了很久,特别是Masha与老鼠这道题,写了都快3个小时,主要还是理解代码逻辑有点难,不过写完之后感觉收获挺大的,给我以…...

Git下载与安装
下载网址:https://git-scm.com/downloads 下载之后开始安装 选择安装路径,next 选择需要安装的组件,这里默认即可,next 选择菜单文件夹,这里默认即可,next 选择默认编辑器,默认推荐的即可&…...
创建vue2/vue3项目
目录 创建一个Vue2项目创建一个Vue3项目 创建一个Vue2项目 ## 安装Vue-Cli : npm install -g vue/cli // Vue CLI 4.x 需要 Node.js v8.9 或更高版本 (推荐 v10 以上)vue --version // 检测版本是否正确## 创建一个项目: vue create hello-world // hel…...
IOS七层模型对应的网络协议和物理设备
以下是网络模型、对应的协议以及对应的物理设备的表格总结: 网络模型层次主要功能对应协议对应物理设备物理层透明的传输比特流,确定机械及电气规范RS-232、V.35、RJ-45、FDDI等中继器、集线器、网线、调制解调器、网卡数据链路层将比特组装成帧和点到点…...

论文复现:Predictive Control of Networked Multiagent Systems via Cloud Computing
Predictive Control of Networked Multiagent Systems via Cloud Computing论文复现 文章目录 Predictive Control of Networked Multiagent Systems via Cloud Computing论文复现论文摘要系统参数初始化系统模型观测器预测过程控制器设计系统的整体框图仿真结果 论文摘要 翻译…...

JSON 文件存储
JSON 全称为: JavaScript Object Notation 也就是 javaScript 对象标记,通过对象和数组的组合来表示数据, 虽然构造简洁,但是结构化程度非常高, 是一种轻量级的数据交换格式 对象和数组 在 JavaScript 语言中&#…...
python——pynput
pynput 是一个 Python 库,用于控制和监听键盘与鼠标输入。它在 Windows、macOS 和 Linux 上都可以工作,为用户提供了一个跨平台的输入事件处理方式。pynput 包含两个主要模块:keyboard 和 mouse,分别用于处理键盘和鼠标事件。 主…...

[用AI日进斗金系列]用码上飞在企微接单开发一个项目管理系统!
今天是【日进斗金】系列的第二期文章。 先给不了解这个系列的朋友们介绍一下,在这个系列的文章中,我们将会在企微的工作台的“需求发布页面”中寻找有软件开发需求的用户 并通过自研的L4级自动化智能软件开发平台「码上飞CodeFlying」让AI生成应用以解…...

《JavaEE篇》--多线程(2)
《JavaEE篇》--多线程(1) 线程安全 线程不安全 我们先来观察一个线程不安全的案例: public class Demo {private static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(() -> {//让count自增5W次…...

防爆智能手机如何助力电气行业保驾护航?
在电气行业的智能化转型浪潮中,防爆智能手机以其强大的数据处理能力、实时通讯功能及高度集成的安全特性,正成为保障电力网络稳定运行、预防安全隐患的得力助手。 防爆智能手机在电气行业中发挥着重要的保驾护航作用,主要体现在以下几个方面&…...
24.7.24数组|那几个课后得做的题
1、对长整形数据进行反转 2、对字符串进行反转 一、题目地址: 1. 实现一个函数atoi,使其能够将字符串转换整数 (Leetcode 8/中等). - 力扣(LeetCode) 2. 颠倒给定的32位无符号整数的二进制位(Leetcode 190/简单&…...
03Spring底层架构核心概念解析
为了感谢罕哥对我工作的帮助,特此记录下学习过程,期待成为和罕哥一样优秀的人 时间:2024.7.13 内容:spring源码课程3学习记录 一、BeanDefinition BeanDefinition表示Bean的定义,BeanDefinition中存在很多属性用来…...
Vue学习---vue 防抖处理函数,是处理什么场景
Vue防抖处理函数是用来处理在快速连续操作中,只执行最后一次操作的情况。 例如,在输入框输入时,我们可能希望只在用户完成输入后进行处理,而不是在每次键入时都处理。(n秒后触发一次) 以下是一个简单的Vue防抖处理函数的例子&am…...

力扣爆刷第166天之TOP100五连刷96-100(单词拆分、回溯、旋转数组)
力扣爆刷第166天之TOP100五连刷96-100(单词拆分、回溯、旋转数组) 文章目录 力扣爆刷第166天之TOP100五连刷96-100(单词拆分、回溯、旋转数组)一、24. 两两交换链表中的节点二、139. 单词拆分三、560. 和为 K 的子数组四、209. 长…...

2024在线PHP加密网站源码
源码介绍 2024在线PHP加密网站源码 更新内容: 1.加强算法强度 2.优化模版UI 加密后的代码示例截图 源码下载 https://download.csdn.net/download/huayula/89568335...

网络驱动移植(RTL8189)
1、把驱动放到内核文件夹中(linux/drivers/net/wireless),对应的驱动可以在网上下载 2、修改该目录下的Kconfig和Makefile文件 3、配置内核(make menuconfig) 配置支持IEEE 802.11,选中8189模块࿰…...
go语言中map学习
在 Go 语言中,map 是一种引用类型,这意味着它有以下特点: 内存结构: map 实际上是一个指向底层数据结构的指针。这个底层数据结构包含键值对的集合。 赋值与传参: 当你给一个变量赋值一个 map 时,或者将 map 作为函数参数传递时,实际上传递的是指针,而不是完整的数据结构副本。…...
【C#】| 与 及其相关例子
按位或(|) 按位或运算符 | 对两个数的每一位进行比较,如果两个数中至少有一个为 1,则结果位为 1;否则,结果位为0。 1010 (10 in decimal) | 1100 (12 in decimal) ------1110 (14 in decimal) 力扣相关…...

【数据结构 | 哈希表】一文了解哈希表(散列表)
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...