当前位置:网站首页>路由技术
路由技术
2022-08-04 18:14:00 【51CTO】
路由的原理和作用
路由器是第三层网络设备。集线器工作在第一层(即物理层),没有智能处理能力,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,不关心其他端口连接的计算机是否接收这些数据。交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它而言,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的 ICMP 信息。
路由器和交换机的区别
1.工作层不同 交换在二层;路由在三层
2.回路 交换机不允许有回路;路由器可以存在多条线路负载
3.交换机识别MAC地址;路由器识别IP地址
4.交换机分割冲突域;路由器分割广播域
5.负载上 交换机只有一条线路,不能动态分配;路由器的协议算法又多条路由
6.介质上 交换机是相同或者相似的物理介质和链路协议的网络互联;路由器可以用于不同网络之间互联
路由工作包含两个基本的动作:
1、确定最佳路径
2、通过网络传输信息
静态路由
人工手动配置的路由,使数据包能够按照预定的路径送到指定的目标网络就是静态路由。
配置命令
Ip route-static 目标网络 子网掩码/前缀 下一跳/出接口
配置实验
目的:不同网段之间可以互访。
AR1:
AR2:
配置静态路由:
验证
[AR1]dis ip routing-table //查看AR1路由表
[AR2]dis ip routing-table //查看AR2路由表
然后测试一下连通性 pc3pingpc1和pc2
优点:配置简单,开销小、不占用网络带宽,手工配置
缺点:网络发生改变,需要手动修改路由配置
动态路由
动态路由指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整,是基于协议实现的。
常见路由协议
RIP
路由信息协议(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的基于距离向量的路由选择协议,是因特网的标准协议,其最大优点就是实现简单,开销较小。
OSPF
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。
IS-IS
IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议最初是ISO(the International Organization for Standardization,国际标准化组织)为CLNP(Connection Less Network Protocol,无连接网络协议)设计的一种动态路由协议。
BGP
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。
特点
1、无需管理员手工维护,减轻了管理员的工作负担。
2、占用了网络带宽。
3、在路由器上运行路由协议,使路由器可以自动根据网络拓朴结构的变化调整路由条目。
4、网络规模大、拓扑复杂的网络。
度量值
路由器会通过度量值来确定最优的路由路径。每一种路由算法在产生路由表时,会为每一条通过网络的路径产生一个数值(度量值),最小的值表示最优路径。
1.跳数
它可以简单的记录经过路由器的个数。例如,数据从路由器A发出,经过路由器B到达其他网络,那么其跳数为1,如果经过c到达其他网络,它经过的路由器为2,那么其跳数为2在RIP中跳数是衡量路径的主要标准,其最大跳数16,超过16即为不可达。意为最大16个路由器
2.带宽
一般会选择带宽高的路径,但是不是主要标准,如果在某一线路上,链路带宽占用过多,那么它就可能不会选择这个链路了。
3.负载
负载反映了沿途链路的流量大小。最优路径应该是负载最低的路径。负载不会像带宽或者跳数那样,路径上的负载变化,那么度量也会跟着变化。这里需要当心,如果度量变化过于频繁,那么会引起路由振荡,路由振荡会对路由器的CPU、数据链路的带宽和全网稳定性产生负面影响。
4.时延
时延是报文经过链路经过的时间,使用时延作为度量的路由协议会使用时延较低的链路最为最佳路径。有多种方法可以计算时延,时延不仅要考虑链路时延,而且还要考虑路由器的’处理时延和队列时延等因素。另一方面,路由的时延可能根本无法度量。因此,时延可能是沿路各个接口所定义的静态时延的总
和。
5.可靠性
此独联是用以度量链路在某种情况下发生故障的可能性。可靠性是可以变化的或者固定的。可靠性高的链路将被优先选择。
6.成本
此度量有管理员设置,可以反映路由的登记。通过任何策略或者链路特性对链路的cost进行定义。同时,花费也可以反映出网络管理员的主观意识。
一般以上几种度量不是单独使用,一般是综合使用,通过某种算法来计算最佳路径。大家在使用中应该灵活运用。
收敛
所有路由表都达到一致的过程,也就说大家的现在路由表都一样。
距离矢量路由协议RIP
原理
它使用跳数作为度量值来衡量到达目的地址的距离
度量值等于从本网络到达目的网络间的设备数量,跳数最大为15跳,16跳为不可达(所以RIP应用不了大型网络)
使用UDP的520端口发送和接收RIP分组
RIP 每隔30秒(更新周期)以广播形式发送一次路由信息,在邻居之间互传
更新消息是发送整个路由信息
路由环路
在路由运行中不可能有同时开启的情况,而基且本都是每隔30S更新一次
这里如果R3在更新CD中先发生状态变化,比如毒化了(40.0.0.0出现故障断掉了),那么Hop变化成16
此时正好R2更新周期到了,向R3发送本身的路由表,就把原先学习记录到的40网段的发送了过去
这下直接就把出问题的40网段给覆盖,并且把下一跳地址变为30.0.0.1
此时如果有个数据包是发向40网段的,经过R2,查看路由表,找到下一跳30.0.0.2发向R3,R3得到后查看路由表得到,40网段的下一跳往30.0.0.1发,即形成路由环路
水平分割
按照这种工作原理工作下去,一旦一点发生故障,就有可能会形成路由环路,那么有没有解决的办法呢 我们可以这样设置:路由器从某个接口接收到的更新信息不允许再从这个接口发回去,意思就是说收到了你的消息,我下次往回传的时候不会再发送你上次传给我的内容了
本来更新消息是发送整个路由信息的。但这样,当R2之前的一次互相广播路由信息,已经学习记录了R1和R3的路由记录信息,再次广播给邻居的时候,就不会再添加之前收的属于他们的路由信息了
这样能有效组织路由环路的产生,同时也能减少路由更新信息所占用的链路带宽资源
毒性逆转
这里可以理解,毒性逆转实际上是一种改进版的水平分割
就是说将从邻居那里所获得的路由信息不是不发送回去,而是直接将这个网段标志为不可达(16跳)再发送回去
收到此种的路由信息后,接收方路由器会立刻抛弃该路由,而不是等待其老化时间到
这样可以加速路由的收敛
通俗的来讲,就是收到一条坏消息好过没有收到任何消息,也就是有消息好过没有消息
不过通常情况下,不提倡使用,因为这样会增大路由表,浪费链路带宽
V1和V2区别
实验
验证R1、R2、R3能否互相RIP进行发送和接收广播(路由信息)
配置
检查
链路状态路由协议OSPF
由于RIP路由器最大到16跳就无法满足企业大型网络需求,而且RIP作为距离矢量路由器,大型企业中收敛速度非常慢,同时度量值也不科学,采用跳数,扩展性非常差。同时RIP更新的是路由表,占用大量的带宽资源,也会影响网络性能。RIP已经淘汰,极少的现网采用,OSPF作为主流动态路由协议,采用OSPF更加适用大型网络扩展。
OSPF 作为基于链路状态的协议,具有收敛快、路由无环、可扩展等优点
三张表和五种报文
ospf数据包是承载在IP数据包中,使用的协议号89
五种报文(工作流程)
1.Hello 发现、建立和维护邻居报文
- 建立邻居
- 同网段
- 同区域
- 维护邻居
- 周期性的发送
- 10秒钟发送一次,40秒超时
2.DBD 数据库报文
- 链路状态数据库描述信息(描述LSDB中LSA头部信息)
- 用于向邻居发送摘要信息以及同步链路状态数据库,选举DR和BDR
3.LSR 请求报文
- 链路状态请求包(向OSPF邻居请求链路状态信息)
- DBD中对应的路由信息
- 在路由器收到包含新信息的DD/DBD后发送,用于请求更详细的信息
4.LSU 发送报文
- 链路状态更新包
- 发送路由信息(包含一条或多条LSA),LSA->LSDB->SPF->路由表
- 收到LSR后发送链路状态通告,一个LSU数据包可能包含几个LSA
5.LSAck 回答报文
- 链路状态确认包
- 确认对方发送的LUS信息(对LSU中的LSA进行确认)
三张表(工作过程)
启动配置完成后,OSPF向本地所有运行OFPS协议的接口以组播224.0.0.5的形式发hello包。hello包中需要携带自身本地的RID及自身已知邻居的RID。之后,将收集到的邻居关系记录在一张表中——邻居表。
邻居表建立完成后需要进行条件匹配,失败则停留在邻居关系,仅使用hello包进行周期保活。
匹配成功,则开始建立邻接关系。首先需要使用未携带(未携带摘要信息)数据DBD包进行主从关系选举。之后使用携带数据的DBD包共享数据库目录。之后使用LSR/LSU/LSACK数据包来获取未知网段的LSA信息;完成本地数据库表的建立。——LSDB——链路状态数据库。
最后,基于本地的链路状态数据库,生成有向图及最短路径树,之后,计算本地到达未知网段的路由信息。生成的路由信息加载到路由表中。
收敛完成后,OFPS需要10s一次使用hello包进行周期保活。每30min进行一次周期更新。
邻居表:建立的邻居关系如何
查看:display ospf peer
链路状态数据库:所有有关OSPF传递过来的信息
查看:display ospf lsdb
OSPF路由表:使能(最优的条目)的路由加入表项
查看:display ip routing-table protocol ospf
ospf状态机
作用:用来描述OSPF中的各种状态
down状态——启动OFPS,发送hello包后进入下一个状态 init(初始化)状态——当你收到一个hello包中包含本地的RID信息时,进入下一个状态
Init(初始化):表示已经收到了邻居的Hello报文,但是该报文中列出的邻居中没有包含我的Router ID
two-way(双向通信)状态——标志着邻居关系的建立 (条件匹配)——如果条件匹配失败,则停留在邻居关系,仅10s一次,使用hello包进行活动;条件匹配成功,则进入下一个状态
exstart(预启动)状态——使用未携带数据的DBD包进行主从关系选举,RID大的为主,主可以优先进行下一个状态
exchange(准交换)状态——使用携带目录信息的DBD包进行目录信息的共享,需要ACK确认
loading(加载)状态——查看对端的DBD包与本端LSA信息进行对比,基于未知的LSA信息发送LSR包进行请求。对端使用LSU进行回复,需要ACK确认。
full(转发)状态——标志着邻接关系的建立
实验
各个路由器之间可以相互访问
边栏推荐
猜你喜欢
基于大学生内卷行为的调查研究
数据库SqlServer迁移PostgreSql实践
阿里云国际版使用ROS搭建WordPress教程
链表的经典入门LeetCode题目
【STM32】入门(五):串口TTL、RS232、RS485
力扣学习---0804
JS兼容问题总结
How does EasyCVR call the double-speed playback of device recording through the interface?
Documentary on Security Reinforcement of Network Range Monitoring System (1)—SSL/TLS Encrypted Transmission of Log Data
Babbitt | Metaverse daily must-read: Weibo animation will recruit all kinds of virtual idols around the world and provide support for them...
随机推荐
Babbitt | Metaverse daily must-read: Weibo animation will recruit all kinds of virtual idols around the world and provide support for them...
Flask框架实现注册加密功能详解【Flask企业课学习】
How to make JS code unbreakable
mysql cdc 为什么需要RELOAD 这个权限?这个权限在采集数据的过程中的作用是什么?有哪
"Involution" Index Analysis Based on AHP
PT100铂热电阻三种测温方法介绍
数仓建模面试
数仓相关,总结
使用bash语句,清空aaa文件夹下的所有文件
Iptables防火墙基础知识介绍
【STM32】入门(五):串口TTL、RS232、RS485
2022 May 1 Mathematical Modeling Question C Explanation
合宙Cat1 4G模块Air724UG配置RNDIS网卡或PPP拨号,通过RNDIS网卡使开发板上网(以RV1126/1109开发板为例)
Go 言 Go 语,一文看懂 Go 语言文件操作
通配符SSL证书不支持多域名吗?
ptables基本语法使用规则
LeetCode 899. 有序队列
LeetCode 899. Ordered Queues
EasyCVR调用云端录像API接口返回错误且无录像文件生成,是什么原因?
哈夫曼树(暑假每日一题 15)