【网络层】直连路由、静态路由、动态路由
文章目录
- 路由表
- 直连路由
- 直连路由 技术背景
- 直连路由 实战训练
- 静态路由
- 静态路由 技术背景
- 静态路由 概述
- 静态路由 配置命令
- 静态路由 实战训练
- 动态路由
- 动态路由 技术背景
- 路由协议概述
- 路由协议分类
路由表
路由表的形成,路由的来源:
| 路由来源 | 备注 |
|---|---|
| 直连路由 | 路由器接口上的网络 (接口配置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 用于…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
