【网络层】直连路由、静态路由、动态路由
文章目录
- 路由表
- 直连路由
- 直连路由 技术背景
- 直连路由 实战训练
- 静态路由
- 静态路由 技术背景
- 静态路由 概述
- 静态路由 配置命令
- 静态路由 实战训练
- 动态路由
- 动态路由 技术背景
- 路由协议概述
- 路由协议分类
路由表
路由表的形成,路由的来源:
| 路由来源 | 备注 |
|---|---|
| 直连路由 | 路由器接口上的网络 (接口配置IP地址并且UP出现) |
| 静态路由 | 由网络管理员手工指定的路由。当网络拓扑发生变化时,管理员需要手工更新静态路由。 |
| 动态路由 | 路由器使用路由协议从其他路由器那里获悉路由。当网络拓扑发生变化时,路由器会自动更新路由信息。 |
直连路由
直连路由 技术背景
如果要连接两个不同网段直接通信,只需要一个路由设备就可以完成。将两个网段的直连接入路由设备就能实现不同网段设备通信,并配置两条直连路由就能完成不同网段之间设备通信。
直连路由 实战训练
想要实现两个网段之间通信其实很简单,只要满足两个条件:
1、找根网线将设备接入路由设备接口;
2、配置两端的IP地址。
确保两边端口是up的状态。
在eNSP中搭建拓扑

system-view
interface g0/0/0
ip address 192.168.10.1 24
interface g0/0/1
ip address 10.0.0.1 24display ip interface brief
display ip routing-table
查看接口状态是不是up状态(下图显示是up的状态)

这样就能 生成直连路由,快来用命令看看

生成三条路由信息:主机路由,本机路由,广播路由
静态路由
静态路由 技术背景
直连路由设备的端口是有限的,如果说是只用一个路由设备连接网段的话,只能连接有限网段,很容易就到瓶颈。因此静态路由就是解决这个问题,添加路由器相连配置静态路由实现多网段通信。
静态路由 概述
- 配置简单、开销小
- 通过手动配置进行添加和维护
- 无法根据拓扑的变化而自适应
- 适合于组网规模较小的场景,在大型网络环境,则配置及维护成本很高
- 在大型网络中,往往采用动、静态路由结合的方式部署网络
静态路由 配置命令
| 命令 | 备注 |
|---|---|
| Ip route-static 目标网络 子网掩码/前缀 下一跳/出接口 | 配置静态路由 |
静态路由 实战训练
在eNSP中搭建拓扑,实验目的:实现所有不同网段的PC设备都能互相ping通

配置AR5路由器 直连路由
1、将三个接口的 ip 按照拓扑图配置好
system-view
sysname Route5
interface g0/0/0
ip address 12.0.0.2 24
interface g0/0/1
ip address 1.0.0.1 24
interface g0/0/2
ip address 2.0.0.1 24
2、配置pc端 ip地址以及网关


3、配置AR4路由器 直连路由
system-view
sysname Route4
interface g0/0/0
ip address 4.0.0.12 24
interface g0/0/1
ip address 12.0.0.1 24
4、配置pc4端 ip地址以及网关

至此配置完直连路由后,PC5和PC6是可以ping 通的。但是PC4是ping 不同其他PC机,同样其他PC也是ping 不通PC4的。
原因在于当PC4 中输入ping 1.0.0.10的时候,AR4查找路由表时并没有找到去往 1.0.0.10的路由条目,就会丢弃报文。因此要在AR4中添加一条去往1.0.0.0网段的静态路由,让其知道下一跳要去往哪里。
同样要想ping 通2.0.0.20的设备,也是要添加一条去往2.0.0.0网段的静态路由。
5、AR4 中配置去往2.0.0.0网段静态路由, 配置如下:
ip route-static 1.0.0.0 24 12.0.0.2
ip route-static 2.0.0.0 24 12.0.0.2
使用 display ip routing-table 命令,查看AR4 现在的路由表:

AR4 配置完静态路由之后,PC4 发给PC5和PC6的数据包就能发出去了。但是路由是双向的,当PC5和PC6给PC4回复数据包的时候,AR5中没有去往4.0.0.0 网段的路由,因此数据包也是会被丢弃。也就是说现在的配置 PC4和其他PC之间还是不能互相通讯。
6、AR5 中配置去往4.0.0.0网段静态路由, 配置如下:
ip route-static 4.0.0.0 24 12.0.0.1
使用 display ip routing-table 命令,查看AR5 现在的路由表:

这就完成了这个拓扑中的路由配置,相互ping下PC设备,成功!!!
动态路由
动态路由 技术背景
静态路由是依靠网络管理员手动设置路由,这种方式有个缺点就是当要在很庞大的网络拓扑中添加/删除一各设备,就要在网络中手动添加/删除很多地方相关的静态路由,并且维护也是很麻烦的事情。为了解决这个问题引入动态路由。
动态路由器使用路由协议从其他路由器那里获悉路由。当网络拓扑发生变化时,路由器会自动更新路由信息。也就是动态路由在发生拓扑变更时,能够动态感知,无需人工干预。
路由协议概述
- 路由器之间交互的一种语言
- 共享路由信息
- 维护路由器、提供最佳转发路径

路由协议分类

路由协议分类:根据作用范围
| 类型 | 备注 | 区别 |
|---|---|---|
| IGP 内部网关协议(Interior gateway protocol) | 用于一个AS内部交互路由信息 常用协议:RIP、OSPF、ISIS、EIGRP | 路由器相互信任 (同一管理机构) 路由数量较少 注重发现路由,不需要什么策略 |
| EGP 外部网关路由协议(Exterior gateway protocol) | 用于不同AS之间交互路由信息 常用协议:BGP | 路由器并非相互信任 (不同管理机构) 路由数量庞大 注重于引入路由,策略丰富 |
| AS(autonomous system) | 处于同一管理机构下的网络(如:企业、电信、移动、联通) |
自治系统(AS)
互联网就像一个庞大的城市,而自治系统(AS)就像是这个城市中的不同区域或社区。每个社区都有自己的规则和管理系统,它们可能有不同的建筑风格、交通规则和社区服务。
特性:
社区边界:自治系统的边界就像社区的围墙,它们定义了社区的范围。在网络中,这些边界由路由器和防火墙等网络设备来维护。
社区管理:每个自治系统都有自己的网络管理员,他们负责管理社区内的网络流量和安全。就像社区的物业管理一样,他们确保网络运行顺畅,没有拥堵或安全问题。
内部交通:在社区内部,居民(数据包)可以在社区的道路上自由移动。在网络中,这相当于自治系统内部的路由协议,它帮助数据包在自治系统内部找到最佳路径。
外部交通:当居民需要去其他社区时,他们可能会使用公共交通工具,比如公交车或地铁。在网络中,这就是边界网关协议(BGP),它允许不同的自治系统之间交换路由信息,以便数据包能够找到从一个自治系统到另一个自治系统的路径。
社区标识:每个社区都有一个独特的名称或编号,以便在城市中识别。在网络中,这就是自治系统号(ASN),它是一个独特的数字,用来在BGP通信中标识不同的自治系统。
社区间的合作:尽管每个社区都有自己的规则,但它们之间需要合作以确保整个城市的交通流畅。在网络中,这意味着自治系统之间需要通过BGP等协议来协调路由信息,以确保数据包能够在整个互联网中高效地传输。

路由协议分类:根据协议算法
DV 距离矢量(distance-vector):基于距离矢量算法,路由器并不了解网络拓扑信息。(根据跳数来选择路由) 交互路由信息都会修改原始参数 (类似路旁)。如:RIP、EIGRP

LS 链路状态(link-state):基于SPF算法(shortest path first 最短路径优先),路由器了解完整的网络。(根据链路带宽来选择路由) 交互路由信息直接传递不会修改原始参数(类似地图,完整)。如:OSPF、ISIS

路由协议分类:根据发送的更新是否携带掩码
不携带掩码:默认的路由掩码都是默认的,影响路由选路

| 类型 | 备注 |
|---|---|
| Classful有类 | 不携带掩码 如:RIPv1、IGRP、EGP |
| clasless无类 | 携带掩码 如:RIPv2、EIGRP、OSPF、BGP |
路由协议分类:根据业务应用
| 类型 | 备注 |
|---|---|
| Unicast routing protocol 单播路由协议 | 如:RIP、EIGRP、OSPF、BGP、ISIS |
| Multicast routing protocol组播路由协议 | 如:DVMRP、PIM-SM、PIM-DM |
路由协议配置规则:
- 协议是在接口运行的 (需要宣告接口的IP地址/接口开启协议)
- 只能学习和发布运行相同协议的路由信息(不同路由协议之间互不干扰)
- 不同路由协议之间需要交互路由信息,需要进行引入/注入(Import)
注:引入必须要同时运行多个协议的路由器做中间人/代理


路由器收敛:
- 当所有路由表的信息都有一致的网络可达信息(相同的目的地址)
- 网络(路由)进入一个稳定状态
- 网络在达到收敛前无法完全正常工作
选择/衡量动态路由协议的一些性能指标:
| 指标 | 备注 |
|---|---|
| 正确性 | 能够正确的找到最优且无环的路由 |
| 收敛快 | 当网络发生变化后,能够快速做出响应 |
| 低开销 | 协议自身的开销(占用内存、CPU、带宽) |
| 安全性 | 协议具有安全机制 |
| 普适度 | 适合各种拓扑结构和各种规模的网络 |
相关文章:
【网络层】直连路由、静态路由、动态路由
文章目录 路由表直连路由直连路由 技术背景直连路由 实战训练 静态路由静态路由 技术背景静态路由 概述静态路由 配置命令静态路由 实战训练 动态路由动态路由 技术背景路由协议概述路由协议分类 路由表 路由表的形成,路由的来源: 路由来源备注直连路由…...
tkinter用法总结
Tkinter 是 Python 标准库中的一个模块,用于创建图形用户界面 (GUI)。它是 Python 中最常用的 GUI 库之一,因为它集成在 Python 的标准发行版中,无需额外安装即可使用。 一、基本用法 1. 简单示例 import tkinter as tk# 创建主窗口 root …...
iOS基础-Block
系列文章目录 文章目录 系列文章目录一、Block是什么二、Block的使用场景1. 异步操作和完成处理器2. 动画3. 集合操作4. 定时器5. 自定义控件的事件处理6.错误处理 三、Block的底层实现1.结构分析2.Block的类型3.Block的copy4.变量捕捉 四、Block的使用细节1.auto变量的生命周期…...
本地图片瀑布流浏览器asonry Image Viewer
本地图片瀑布流浏览器asonry Image Viewer 前言效果图部分源码领取完整源码下期更新 前言 一款采用 HTML 的瀑布流本地图片浏览器「Masonry Image Viewer」只需要把你的图片文件夹拖到下载的 index 网页文件里面就可以实现瀑布流效果。项目免费开源,据介绍采用了HT…...
macos重装系统 启动U盘制作方法 - createinstallmedia 命令使用方法总结
macos重装系统比windows要稍微复杂一些,不过还好,macos系统安装app这个Apple官方提供的系统软件里面默认就内置了一个可用为我们制作启动盘的工具 createinstallmedia 我们下载的apple安装镜像要门是 dmg/pkg/iso 的压缩档案格式的,要么是 x…...
八问八答搞懂Transformer内部运作原理
最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…...
MySQL增删改查(基础)
1、. 新增(Create) 语法: INSERT [INTO] table_name[(column [, column] ...)] VALUES (value_list) [, (value_list)] ... 例子: -- 创建一张学生表 DROP TABLE IF EXISTS student; CREATE TABLE student (id INT,sn INT com…...
Cairo库移植到安卓记录
前言 接Android Studio引入ndk编译的so库的故事,这个东西搞了两周以后,由于自己不熟悉Java和安卓开发,踩了不少坑,其中一周时间都是花在怎么用Android Studio上的。。。AS下的新版本Koala,结果网上资料全是旧版本&…...
Redis 哈希类型的常用命令总结
1. hset 设置哈希表中字段的值。 hset key field value示例: hset user:1000 name "Alice"2. hget 获取哈希表中字段的值。 hget key field示例: hget user:1000 name3. hgetall 获取哈希表中所有的字段和值。 hgetall key示例&#x…...
【物联网设备端开发】ESP开发工具:QEMU如何模拟以太网口接入网络
以太网口支持 ESP-IDF中添加了对Opencores以太网MAC的支持。 运行以太网示例时,启用CONFIG_EXAMPLE_CONNECT_ETHERNET和 CONFIG_EXAMPLE_USE_OPENETH.。运行自定义应用程序时,启用CONFIG_ETH_USE_OPENETH 并初始化以太网驱动程序,如示例 /c…...
Python学习笔记(四)
# 数据容器分为5类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)""" 演示数据容器之:list列表 语法:[元素ÿ…...
跨域:安全分步实施指南
什么是跨域问题? 跨域(Cross-Origin Resource Sharing,CORS)问题发生在浏览器的同源策略(Same-Origin Policy)限制下。当一个域上的网页试图访问另一个域上的资源时,浏览器会阻止这些操作以保护…...
【iOS】AutoreleasePool自动释放池的实现原理
目录 ARC与MRC项目中的main函数自动释放池autoreleasepool {}实现原理AutoreleasePoolPage总结 objc_autoreleasePoolPush的源码分析autoreleaseNewPageautoreleaseFullPageautoreleaseNoPage autoreleaseFast总结 autorelease方法源码分析objc_autoreleasePoolPop的源码分析po…...
stm32—GPIO
0. 引入 在单片机产品中,我们常常可以见到三种模块:LCD灯、KEY按键、BEEP蜂鸣器 LED灯: 一个比较常见的LED电路LED0 ---------- 通过控制LED0引脚(电线) 给它一个低电平(低电压),LED灯就会亮 给它一个高电平(高电压),LED灯就会灭 …...
CocosCreator使用 ProtoBuf WebSocket与服务器对接方法
在 Cocos Creator 中使用 .proto 文件和转换成 TypeScript(TS)两者各有其优缺点,具体选择取决于你的项目需求和团队的开发习惯。以下是两者的一些比较: 1、使用 .proto 文件的优点: 跨语言支持:Protocol B…...
【python基础】while循环语句练习
明显可以感觉到循环比判断要更加难以理解一些,这个就只能通过练习来提高理解和思维能力了。 学习视频:第一阶段-第四章-05-while循环案例-九九乘法表_哔哩哔哩_bilibili 练习一:计算1-10的和 i1#循环的起始值 sum0 while i&l…...
【SpringBoot系列】WebMvcConfigurer配置
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
学懂C++ (十九):高级教程——深入详解C++信号处理
目录 C中的信号处理 1. 信号处理的本质 2. 主要信号类型 3. 核心关键点 4. 经典实例 代码分析 5. 进阶:信号屏蔽与多线程 例子:使用sigaction() 6. Windows中的信号处理 7. 比较与总结 示例:Windows控制台事件处理 总结 C中的信号…...
SOMEIP_ETS_032:echoUINT8ArrayMinSize
测试目的: 确保DUT能够正确处理最小尺寸的UINT8数组参数,并且在发送和接收过程中保持参数值和顺序不变。 描述 本测试用例旨在验证DUT在处理包含最小尺寸UINT8数组参数的SOME/IP消息时,是否能够准确地发送和接收这些参数,确保返…...
JS+CSS案例:可适应上下布局和左右布局的菜单(含二级菜单)
今天,我给大家分享一个原创的CSS菜单,整个菜单全由CSS写成,仅在切换布局时使用JS。合不合意,先看看效果图。 本例图片 接下来,我来详细给大家分享它的制作方法。 文件夹结构 因为涉及到了样式表切换,所以,你需要借鉴一下我的文件夹结构。 CSS文件夹: reset.css 用于…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
【java】【服务器】线程上下文丢失 是指什么
目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失? 直观示例说明 为什么上下文如此重要? 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程,代码应该如何实现 推荐方案:使用 ManagedE…...
Pandas 可视化集成:数据科学家的高效绘图指南
为什么选择 Pandas 进行数据可视化? 在数据科学和分析领域,可视化是理解数据、发现模式和传达见解的关键步骤。Python 生态系统提供了多种可视化工具,如 Matplotlib、Seaborn、Plotly 等,但 Pandas 内置的可视化功能因其与数据结…...
