lec7-路由与路由器
1. 路由器硬件
-
路由器的硬件部分:
- 断电失去: RAM
- 断电不失去:NVRAM, Flash, ROM
- interface也算是一部分
-
路由器是特殊组件的计算机
-
console 口进行具体的调试
-
辅助口(Auxiliary):一般不用,但是可能用到
1.1. RAM
- 路由器配置文件的临时存储,可以看作是内存
- 断电/重启,就会失去内容
- 可以存储:
- 路由表
- ARP cache
- Fast switching cache 快速切换缓存
- packet buffer 报文缓存:可能前面有正在处理的,需要等待
- packet hold queues 数据包保留队列
- 根据地址可以读到地址内容
1.2. NVRAM
- 意思是不易失的 RAM
- 存放 backup / startup 备份与启动配置文件
- 通过内置电池的方式来保证不断电
1.3. Flash
- EEPROM (Electronic erasable programmable read-only memory)电擦除可编程只读存储器
- 存放着 IOS,互联网操作系统
- 允许更新软件而不需要更新flash芯片
- 可以存放多个版本的 IOS
- 断电也可以保存的
1.4. ROM
- 包含着 POST (Power On Self Test),开机自检
- 包含 bootstrap, 也就是引导程序,用来加载IOS
- 可以存放IOS的备份,精简版本(Trimmed down)
但是要更新需要更换芯片
1.5. 接口
- 数据包进入和离开路由器的网络连接口
- 在主板(mother board)上或者作为单独的模块
2. 路由器启动步骤
2.1. 系统启动程序(3步骤)
- 执行POST开机自检,路由器执行所有从ROM获取的对所有硬件模块的诊断
- 验证CPU,存储,网络接口端口的基本操作
- 软件初始化
2.2. 软件启动程序(5步骤)
- ROM内存放的bootstrap,引导加载程序,在CPU上执行
- 可以在以下几个位置找到操作系统。位置在配置寄存器的引导字段中被公开
- 操作系统被加载
- 存放在NVRAM中的配置文件加载到主存中,并且每次执行一行
- 如果NVRAM中没有配置文件,那么就执行问题驱动(problem driven)的初始配置例程,也叫做设置模式(setup mode)
2.3. 路由器初始化过程
- 设置本身不用做在路由器中输入复杂协议功能
- 对于大多数路由器配置任务,应该使用安装程序提出最少的配置,然后使用各种configuration mode命令而不是安装程序
3. 路由
3.1. 概述
- 路由器通常使用两个基本功能 路径确定 和 交换功能,将数据包从一条数据链路转移到另一个数据链路上。
- switching function:交换功能,使得一个路由器可以从一个接口接收数据包,并且通过第二个接口进行转发
- path determination:路径确定功能,使得路由器可以选择出那个最合适的接口进行转发
- 路由器使用一个地址的 network **portion(网络部分)**进行路径的选择
- 地址的 **node portion(节点部分)**由 直接连接到目标网络的路由器使用,确保数据包传递到正确的主机
3.2. 静态和动态路由(static and Dynamic route)
- 静态路由:路由表是由管理员手动输入的
- 动态路由:路由表是路由器通过拓扑情况和交通情况自动调整的
3.2.1. 静态路由
- 静态路由相比于动态路由并不是没有优点的,安全性 就是一种优点
- 动态路由倾向于显示有关网络的所有信息;
但是处于安全原因,你可能想要隐藏网络的某些部分 - 当只有一条路径可以访问网络的时候,一条静态路由就足够了。(默认路由,将B所有不知道位置的全部交给A,让A去访问)
- 这种分区称为 stub network(名词解释)
(末节网络)
3.2.2. 静态路由配置
。。。
3.2.3. Administration Distance(管理距离)
- 管理距离是一个 0 - 255 的数字,它表明了路由信息源的可信赖度
注意:数字越小,可信度越高 - 静态路由的管理距离通常设置很短,默认值是1
- 直连网段可信,管理距离是0
3.3. 动态路由
-
(Dynamic routing protocols can also redirect traffic or loadshare between different paths in a network)
动态路由可以重定向网络中不同路径之间的流量(loadshare 负载分担) -
静态路由中固定的链路不能出错,但是动态可以自己调整。
-
动态路由依赖于不同的路由表之间共享知识
- 动态路由依赖两个基本路由功能:
- 对路由表维护
- 对其他路由器,分发路由信息
- 动态路由依赖两个基本路由功能:
3.4. Time to Convergence
- 收敛时间(对于动态路由才有这种说法)
- 当所有的路由器使用同一套的稳定拓扑是,就会收敛
- 网络拓扑发生变化之后,路由器就会重新计算路由 recalculate / recompute
3.5. 动态路由协议分类
- distance vector 距离矢量
- link state 链路状态
- hybrid routing 混合路由
3.5.1. 距离矢量协议
- 距离矢量协议不允许路由器获得网络的完整拓扑
- 距离矢量模型,基于贝尔曼-福特(动态规划最短路)算法,在路由器之间传递路由表的周期性副本
- 是周期性的
3.5.1.1. 路由环路问题
- 注意:这里明确一下,下面提到的路由环路问题解决方案,都是对于 距离矢量 这种路由协议的解决方案,OSPF等由另外的解决方案;后面可能考名词解释
-
解决方案1: maximum (定义最大值)
- 设置一个最大条数,比如15跳,16跳以上为不可达
-
解决方案2: route poisoning(路由中毒)
-
当网络5发生的时候,路由器E就会通过把通向网络5的路由表条目设成16 / 不可达
-
当路由器C获得 E 传来的路由表时,他也会更新路由表,并且发送回 E,(poison reverse)毒性逆转,确保整个网段的路由器都知道中毒的路由信息
-
> 上图来源于:[10-RIP路由协议详解——触发更新和中毒路由_rip触发更新-CSDN博客](https://blog.csdn.net/qq_35733751/article/details/80309562#:~:text=路由中毒是指在路由信息在路由表中失效时,先将度量值变为无穷大的数,而不是马上从路由表中删掉这条路由信息。,然后再将中毒路由信息发布出去,当相邻的路由器收到该中毒路由就可以通过其度量值是16,说明该路由是无效的。)
-
解决方案3:split horizon(水平分割,常考)
- 从某个接口收到的路由信息,不能再从这个接口发送回去
- 当该路由器准备通过该接口发送路由信息时,它会检查自己是否已经通过该接口接收到了到达相同目的地的路由信息。
- 有名词解释题目
-
解决方案4: hold-down timers(计时器)
- 收到网络不可达信息的时候,启动计时器,开始计时
- 如果任何一个计时的设备收到了一个比原来更好的到达路径,那么就会修改对应记录,更差就不会记录
- 计时器结束后,删掉对应的条目,避免出现问题
- 每一条路由表的记录都有有效时间
3.5.2. LSP 链路状态协议
3.5.3. DV 与 LSP 比较
- DV:
- 视野窄,代价小
- 基于跳数
- 周期性进行更新,收敛慢
- 交换的是 路由表
- LSP:
- 视野宽,但是有一定代价
- 计算最短路(考虑带宽,成本)
- 事件驱动型,收敛快
- 交换的是 link state 数据库
3.5.4. Hybrid Routing 混合协议
-
比如说: OSI 的 IS-IS(intermediate system to intermediate system),还有 思科的 EIGPR (enhanced interior gateway routing protocol)
-
权重分配?
-
这里4个主要的主动路由协议:(可以记一下全称)
- RIP routing info pro
- IGRP interior gateway routing pro
- OSPF open shortest path first
- EIGRP enhanced
3.5.5. 路由协议评判标准
- 最佳(Optimal)路线:选择最佳路线
- 效率(Efficiency):最少使用带宽和路由器处理器资源
- 快速收敛(Rapid Convergence):越快越好。有些比其他收敛更快。
- 灵活性(Flexibility):可以处理各种情况,例如高使用率和失败的路由
- 默认路由可以减少路由表条数
- 动态和静态路由都可以使用默认路由
- 默认路由对于路由聚合具有很大的帮助