IP路由原理

1、 IP路由原理

路由是指导IP报文发送的路径信息。(就是指导路由器如何进行数据报文发送的路径信息)

路由工作包含两个基本的动作:

1、确定最佳路径。

2、通过网络传输信息。

 在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。

1.1 路由表的构成

路由表是路由器转发报文的判断依据。

1.2 路由器单跳操作

1.3 路由表查找规则

 

1、选择度量值小的进行转发。

2、永远将下一跳地址指向直连路由。

3、如果路由表中没有相匹配的主机路由进行匹配就会丢弃,但是如果存在默认路由的话,会默认从默认路由转发。

1.4 路由的特点

1、直连路由

  • 开销小,配置简单,无需人工维护。只能发现本接口所属网段的路由。

2、手工配置的静态路由

  • 无开销,配置简单,需人工维护,适合简单拓扑结构的网络。

3、路由协议发现的动态路由

  • 开销大,配置复杂,无需人工维护,适合复杂拓扑结构的网络。

1.5 路由度量值(Metric)

1、路由度量值表示到达折条路由所指目的地址的代价。(跳几次?)

2、通常影响路由度量值的因素:

线路演示,带宽,线路使用率,线路可信度,跳数,最大传输单元。

3、不同路由协议参考的因素不同:

路由类型 度量值参考因素
静态路由协议 固定值,0
OSPF路由协议 带宽
RIP路由协议 跳数

1.6 路由优先级

  • 如果到相同目的地址有多个路由来源,则:
    • 以 Preference(优先级) 确定不同类型优先级。
    • Preference 越小,优先级越高。
    • 优先级最高的路由被添加进路由表。

各类路由默认优先级:

1.7 路由环路

  环路产生的原因:配置错误/协议缺陷。

 

1.8 IP路由表摘要信息

2、直连路由和静态路由

 根据路由器学习路由信息、生成并维护路由表的方法包括直连路由(Direct)、静态路由(Static)和动态路由(Dynamic)。

  • 直连路由:路由器接口所连接的子网的路由方式。
  • 非直连路由:通过路由协议从别的路由器学到的路由方式。分为静态路由和动态路由。

2.1 直连路由

 直连路由就是直接连接网段的路由。即连接在各个路由器接口网段的路由,在路由器启动时可以直接得到路由网段。

2.1.1 简单的直连路由拓扑

上图的路由器不需要任何配置就能互相访问,因为这三个网段的网关地址都在同一个路由器的接口上,属于直连路由。

路由器会自动生成路由表,不需要手动配置就可以让这三个区域互相ping通。这就是直连路由的作用。

2.1.2 产生直连路由的条件

设备产生直连路由的两个条件:

  • 端口处于打开状态
  • 端口配上地址

直连路由在路由表中显示的协议为 Direct ,在所有路由协议中优先级是最优的。

查路由表命令:display ip routing-table (显示路由表)

2.2 静态路由

 静态路由(Static routing)是一种路由的方式,路由项(routing entry)由手动配置,而非动态决定。

 与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。

 静态路由的公式:ip route + ‘目的地址’+‘目的地址子网掩码’+‘下一跳路由地址’。

2.2.1 静态路由的工作原理

与直连路由一样,当路由器收到一段IP数据包时,会将IP数据包拆开,寻找目的IP地址,当找到目的IP地址后,会查自身路由表中的路由,从而寻找到由哪个端口发出数据包,将数据包重新打包后发出,完成路由动作。

 拆包  》》 寻址  》》查表  》 封装  》 发送数据包

2.2.2 静态路由的配置

 静态路由配置命令

[Router]ip route-static dest-address { mask | mask-length } {gateway-address | interface-type interface-name } [ preference preference-value ]

配置要点:

  • 只有下一跳所属的接口是点对点接口时,才可以填写 interface-type interface-name ,否则必须填写 gateway-address 。
  • 目的IP地址和掩码都为0.0.0.0的路由为默认路由。

 配置时须注意:

  • 所有路由器上都必须配置到所有网段的路由。
  • 下一跳地址须为直连链路上可达的地址。

静态默认路由配置:

2.2.3 静态路由实现路由备份和负载分担

  • 路由备份
    • 到相同目的地址的下一跳和优先级都不同。
    • 优先级高的为主,低的为备。
  • 负载分担
    • 到相同目的地址的下一跳不同,但优先级相同。
    • 到目的地的流量将均匀分布。

优先级不同的, 优先级高为主。 优先级相同的,均匀分布。

2.2.4 静态黑洞路由应用

   正确应用黑洞路由可以消除环路。

通过上图的静态路由的配置,RTA、RTB、RTC...

这些静态路由要是想访问RTE,则必须经过RTD。( 因为他们都是RTD的直连路由 )

导致环路的原因:当RTA访问RTE的数据时,RTD需要写一个默认路由传到RTE。又因为路由是互相传递的,有来有回,因此RTE也会写一个路由传到RTD,反复传递就会导致环路。

 解决环路的方法:在RTD中写一个静态路由,将RTE传递回来的数据放入回收站中不作处理即可。

2.3 动态路由

动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化自主动态进行调整。

2.3.1 动态路由协议在协议栈中的位置

  • RIP      基于 UDP  端口号 520
  • OSPF  基于 IP       协议号 89
  • BGP    基于 TCP   端口号 179

2.3.2 动态路由协议的基本原理

  • 网络中所有路由器须实现相同的某种路由协议并已经启动该协议。
  • 邻居发现
    • 路由器通过发送广播报文或发送给指定的邻居路由器以主动把自己介绍给网段内的其它路由器。(自我介绍)
  • 路由交换
    • 每台路由器将自己已知的路由相关信息(路由表)发给相邻路由器。(他人介绍)
  • 路由计算
    • 每台路由器运行某种算法,计算出最终的路由来。
  • 路由维护
    • 路由器之间通过周期性地发送协议报文来维护邻居信息。(看看邻居还在不在)

 

2.4 VLAN间的路由

一个VLAN是一个广播域,同一个VLAN之间通信是属于二层互访,那如果想要VLAN之间的通信,就需要借助三层设备。

三层设备:路由器或三层交换机。如下图所示。

广播域:全体目光向我看齐!我是xx!

2.4.1 不适当的VLAN间路由方式

 

  路由器与每个VLAN建立一条物理连接,浪费大量的端口。不如Trunk链路聚合好。

2.4.2 用802.1Q和子接口实现VLAN间路由(单臂路由)

 

目的:避免物理端口和线缆浪费,简化连接方式。

方法:使用802.1Q封装和子接口,通过一条物理链路实现VLAN间路由。

原理:交换机的端口链路类型有Access和Trunk,其中Access链路仅允许一个VLAN的数据帧通过,而Trunk链路能够允许多个VLAN数据帧通过。单臂路由正是利用Trunk链路允许多个VLAN的数据帧通过而实现的。

2.4.3 用三层交换机实现VLAN间路由

 

三层交换机在功能上实现了:VLAN的划分、VLAN内部的二层交换和VLAN间路由。

三层VLAN接口连接到三层路由转发引擎上,通过转发引擎在三层VLAN接口间转发数据。

3 路由协议概述

路由协议(Routing protocol)是一种指定数据包转送方式的网上协议。

路由器用来计算、维护网络路由信息的协议,通常有一定的算法,工作在传输层或应用层。

 

3.1 衡量路由协议的主要指标

协议计算的正确性

  • 协议使用的算法能够计算出最优的路由,且正确无自环。

路由收敛速度

  • 当网络的拓扑结构发生变化之后,能够迅速感知并及时更新相应的路由信息。

协议占用系统开销

  • 协议自身的开销(内存、CPU、网络带宽)最小。

协议自身的安全性

  • 协议自身不易受攻击,有安全机制。

协议适用网络规模

  • 协议可以应用在何种拓扑结构和规模的网络中。

3.2 路由协议的划分

3.2.1 根据使用范围分类
  • 内部网关协议(IGP) 在一个自治系统内部运行,常见的IGP:RIP、OSPF、和IS-IS
  • 外部网关协议(EGP)在不同自治系统之间运行,常用的EGP:BGP
3.2.2 根据使用的算法分类

(1)距离矢量协议: RIP、BGP                       

其中BGP也被称为路径矢量协议;

学习路由:周期性、广播式更新路由表。协议基于贝尔曼-福特算法(D-V算法)

维护路由:网络发生改变,直连路由器更新路由表,在下一个拷贝间隔发到邻居路由器,

                          邻居路由器再更新路由表。

缺点:采用距离矢量算法,可能造成路由环路。

解决方案:最大跳数限制,水平分割,路由毒杀,反转毒杀,保持时间,快速更新。

(2)链路状态协议: OSPF、IS-IS

学习路由:发送链路状态和泛洪链路状态声明,同步链路状态数据库,运行最短路径的优先算法计算路由。协议基于Dijkstra算法(最短路径优先算法)

维护路由:链路改变,发送新的状态和泛洪声明,同步数据库,运行最短路径优先算法。

缺点:对于大的链路状态数据库,CPU要求高,链路不稳定,负担更大。

解决方案:层次化的拓扑设计,通过划分区域实现,将链路状态声明的泛洪控制在区域内。



 

https://blog.csdn.net/Beatrice_lovely/article/details/118926124

posted @ 2022-12-16 16:41  leagueandlegends  阅读(959)  评论(0编辑  收藏  举报