路由表与IP数据报的转发

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

一、相关知识

1、路由类型

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

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

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

2、IP数据报的转发过程

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

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

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

3、相关CLI命令

(1)添加一条静态路由

命令格式如下:

Haskell 复制代码
 ip route-static <ip-address> { <mask> | <mask-length> } { <nexthop-address> | <interface-type><interface-number> }

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

Haskell 复制代码
 [Huawei]ip route-static 192.168.4.0 24 192.168.3.1

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

Haskell 复制代码
 [Huawei]undo ip route-static 192.168.4.0

或者删除所有静态路由

Haskell 复制代码
[Huawei]undo ip route-static all

(2)查看路由表信息

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

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

二、建立网络拓扑

采用A1220交换机;

三、直连路由

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

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

四、静态路由

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

Haskell 复制代码
 [R2]ip route-static 2.2.2.0 24 1.1.1.2

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

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

五、总结

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

致谢

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

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

相关推荐
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑