路由表与IP数据报的转发

embedded/2024/9/23 10:41:50/

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、相关知识

1、路由类型

路由表中有3类路由:直连路由、静态路由、动态路由

  • 直连路由:一般指去往路由器接口直接连接网络的路径
  • 静态路由:由网络管理员在路由器中手动配置的固定路由;明确地指定了IP数据报到达目的地必须经过的下一跳路由器或接口;允许对路由的行为进行精确的控制、减少了网络流量、配置简单;
  • 动态路由:路由器根据网络系统的运行情况而自动生成的路由信息;路由器通过路由选择协议(Routing Protocol),自动学习和记忆网络运行情况,在需要时自动计算到达目的网络的最佳路径;能随网络拓扑的变化自动调整路由、配置不易出错、可支持较复杂的大规模网络

默认路由的作用是将无法匹配路由表中其他路由表项的数据包转发到指定下一跳路由器。在实际网络中,默认路由通常用于简化路由配置,通常在网络边缘的路由器上配置

2、IP数据报的转发过程

IP数据报转发是逐跳进行的,每一跳都要查找路由表,通过最长前缀匹配原则找到匹配项的下一跳IP地址和接口,然后将IP数据报封装到数据链路层帧中并从该接口转发出去

  • 若输出接口为局域网接口,对于直连路由,需要通过ARP解析目的IP地址的MAC地址
  • 对于非直连路由,则要通过ARP解析下一跳IP地址的MAC地址
  • 若输出链路为点到点链路,则直接将IP数据报封装到数据链路层帧中进行传输

最长前缀匹配原则是指选择所有匹配路由中网络前缀最长的那条进行数据转发

3、相关CLI命令

(1)添加一条静态路由

命令格式如下:

 ip route-static <ip-address> { <mask> | <mask-length> } { <nexthop-address> | <interface-type><interface-number> }

该命令需要在系统视图下执行。例如,创建一条到网络192.168.4.0/24、下一跳为192.168.3.1的路由:

 [Huawei]ip route-static 192.168.4.0 24 192.168.3.1

可执行undo命令删除某条已存在的路由

 [Huawei]undo ip route-static 192.168.4.0

或者删除所有静态路由

[Huawei]undo ip route-static all

(2)查看路由表信息

任何视图下都可执行display ip routing-table命令来查看路由表信息:

 [Huawei]display ip-routing-tableRoute Flags: R - relay, D - download to fib------------------------------------------------------------------------------Routing Tables: PublicDestinations : 6        Routes : 6        ​Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface​127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0210.1.1.0/24  Direct  0    0           D   210.1.1.254     GigabitEthernet0/0/0210.1.1.254/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0210.1.2.0/24  Direct  0    0           D   210.1.2.254     GigabitEthernet0/0/1210.1.2.254/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
  • Destination目的地址、用来标识IP数据报目的地址或目的网络
  • Mask网络掩码(也称子网掩码),与目的地址一起标识目的地网络前缀
  • Pre路由优先级,值越小,优先级越高。
  • Cost路由开销,当到达一个目的地的多个路由的优先级相同时,路由开销最小的将成为最优路由
  • Interface输出接口,表示IP数据报将从该路由器的哪个接口转发出去
  • NextHop下一跳地址,说明IP数据报所经过的下一个路由器
  • Proto:学习此路由的路由协议,其中,Direct表示直连路由;Static表示静态路由;EBGP表示EBGP路由...

二、建立网络拓扑

采用A1220交换机;

三、直连路由

分别测试R1到R2、R2到R3的连通性;

发现相邻之间的PC机通过直连路由可以直接通信

四、静态路由

(1)不使用默认路由,给R1做静态路由;

 [R2]ip route-static 2.2.2.0 24 1.1.1.2

(2)测试R1与R3的连通性

发现不相邻的路由需要做静态路由才能连通;其余同样;核心思想:非直连网段通通做静态路由

五、总结

  • IP 数据报在路由器中的转发行为分为两种:直接交付间接交付。目的 IP 地址属于直接连接的网络时,IP 数据报直接交付给目的主机,否则转发给下一跳路由器进行间接交付
  • 静态路由表网络管理员在路由器中手动配置,能对路由的行为进行精确的控制, 但不能对网络的变化做出反应
  • 路由聚合默认路由减少路由表项,以及减少查找路由时间

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!


http://www.ppmy.cn/embedded/87209.html

相关文章

MySQL练习05

题目 步骤 触发器 use mydb16_trigger; #使用数据库create table goods( gid char(8) primary key, name varchar(10), price decimal(8,2), num int);create table orders( oid int primary key auto_increment, gid char(10) not null, name varchar(10), price decima…

ArcGIS教程(00):初识ArcGIS

ArcGIS 是由 Esri 公司开发的地理信息系统(GIS)软件套件,广泛用于创建、管理、分析和共享地理数据。它提供了多种工具和应用,帮助用户在地图上进行复杂的空间分析和数据可视化。以下是 ArcGIS 的详细介绍: 1. ArcGIS 简介 ArcGIS 是一个全面的地理信息系统平台,适用于各…

UE4-构建光照后导入的静态网格体变黑

当我们将我们的静态网格体导入到项目当中的时候&#xff0c;此时我们进行重新构建光照&#xff0c;我们在从新构建完光照后&#xff0c;会发现我们的静态网格体全部变黑了&#xff0c;此时是因为没有设置光照贴图分辨率和坐标索引引起的。 将General Settings中的L…

Thinkphp仿华为商城源码/红色风格电脑手机数码商城系统网站源码

Thinkphp仿华为商城&#xff0c;主要实现了商品首页展示、用户意见、商品分类列表、商品搜索、商品详细展示、购物车、订单生成、在线付款、以及个人中心完善个人资料、用户修改收货地址、余额查询、消费查询、订单管理、商品评价、热销商品和最近商品浏览&#xff1b; 后台是…

Redisson中的RScoredSortedSet的常见使用场景及排行榜例子

Redisson 中的 RScoredSortedSet 类是对 Redis 内置的 Sorted Set 数据结构的一个封装&#xff0c;它支持对集合中的元素进行排序&#xff0c;每个元素都有一个与之关联的分数(score)。 RScoredSortedSet 可以用于多种场景&#xff0c;以下是一些常见的使用案例&#xff1a; 排…

50.TFT_LCD液晶屏驱动设计与验证(3)

&#xff08;1&#xff09;数据生成模块Verilog代码&#xff1a; module data_gen(input [9:0] hang ,input [9:0] lie ,input clk_33M ,input reset_n ,output reg [23:0] data ); //定义最大行、列parameter …

Fabric网络

简介 在前面的几个章节里&#xff0c;我们详细讨论了在构造数据中心网络时位置如何摆放、机框如何布线以及流量收敛比的计算&#xff0c;相信你已经对华为CE系列数据中心交换机的物理架构有了一个很好的了解。接下来将要介绍的是CE系列交换机提供的不同的逻辑体系架构&#xf…

【PostgreSQL案例】我要查的表没有在执行计划中

问题&#xff1a;查的表没有在执行计划中 sql&#xff1a; SELECT* FROM(SELECTA.column1 as "column1",--中间省略很多A字段A.column99 as "column99"fromtable_a Aleft join (SELECTlzl_idfromtable_a AAinner join table_b BB ON AA.lzl_key BB.lzl_…