互联网计算系列整理主要内容来自软院 2020 级学长 EagleBear2002 的博客,为博主本人阅读后提炼整理的内容。
内容不算全面,仅推荐大家复习时参考。
# 路由器基础
# 内部组件
# RAM 随机存取存储器
RAM(Random Access Memory,随机存取存储器)
路由器配置文件的临时存储,一般做为内存使用
断电或重新启动时 RAM 内容丢失
访问很快
# NVRAM 非易失随机存取存储器
NVRAM(Non-volatile RAM)
存储备份(backup)/ 启动(startup)配置文件
路由器掉电或重启时内容不会丢失。
保证快速访问,但是存储空间有限。
# Flash
存储了 Cisco IOS(互联网操作系统),可以存储多个版本的 IOS
相当于台式机硬盘
断电保持
# ROM 只读存储器
ROM,Read-Only Memory
包含 POST(开机自检)
引导程序(加载 Cisco IOS)
作系统软件。有 IOS 的备份
# 接口 Interface
略
# 路由器启动步骤
# 系统启动程序
执行开机自检 POST
验证 CPU、内存和网络接口的基本操作
软件初始化
# 软件启动程序
略
如果 NVRAM 中没有有效的配置文件,则执行问题驱动(question-driven)的初始配置例程,该例程称为系统配置对话框,也称为设置模式 setup mode
# 路由器初始化
略
# 路由器 CLI 指令
检验基本的路由配置
- 使用 show running-config 命令
存储路由器基本配置
copy running-config
- startup-config
其他检验路由器的命令:
Show running-config – 显示当前随机访问存储器中的配置
Show startup-config – 显示 NVRAM 中的配置文件
Show IP route – 现实路由表
Show interfaces – 显示所有接口的配置信息
Show IP int brief - 显示接口的简要信息
# 路由和配置
收敛时间 Convergence Time:
从刚启动到网络达到稳定的时间
从发生变化到再次稳定的时间
# 使用网络寻址进行路由
路由器通常使用两个基本功能(路径确定功能和交换功能)将数据包从一条数据链路中继(relay)到另一条数据链路。
交换功能(switching function)允许路由器在一个接口上接受数据包并通过第二个接口转发。
路径确定(path determination)功能使路由器能够选择最合适的接口来转发数据包。
路由器使用地址的网络部分进行路径选择,以将数据包传递到下一个路由器
地址的 ** 节点部分(主机部分)** 由直接连接到目标网络的路由器使用,以将数据包传递到正确的主机。
路由器如何使用网络部分和节点部分
网络部分
路由器使用网络部分决定数据包下一跳的路径。
例如,路由器看到目标 IP 是
192.168.2.10
,而根据路由表知道192.168.2.0/24
应该转发到接口GigabitEthernet0/1
,因此数据包被发送到该接口。
节点部分
当数据包到达目标网络(如
192.168.2.0/24
)时,目标路由器使用节点部分(如10
)确定具体设备。这一阶段通常由 ARP 协议解析 MAC 地址,并通过交换机转发到目标主机。
# 静态和动态路由
# 静态路由
目的地址 network:后面需要包含掩码
下一条地址 address:确定下一跳地址
Distance:管理距离(可选项。不写的话,默认为 1)
例:
ip route 172.16.3.0 255.255.255.0 192.168.2.4
这个命令定义了一条从当前路由器到 172.16.3.0/24 网络的静态路由,具体通过下一跳地址 192.168.2.4 转发数据包。
即如果收到目的地址为 172.16.3.0/24 **** 的报文,将其转发给 192.168.2.4
# 管理距离
** 管理距离(administrative distance,AD)** 是路由信息源的可信赖性的等级,表示为从 0 到 255 的数值。
静态路由的管理距离通常很短(默认值为 1)
数值越低,可信度越高。AD 为 1 时其优先级非常高,仅次于直连网段 AD=0
# 动态路由
动态路由取决于两个基本路由器功能:
维护(maintance)路由表(动态维持的)
向其他路由器分发(distribution)路由信息
# 动态路由协议分类
大致分为以下三类:
距离矢量(DV,Distance Vector)DVP Protocol
链路状态(LS,Link State)LSP
混合路由(HR,Hybird Routing)
其中 Hybrid Routing 是在两种之间
# DVP 距离矢量协议
路由器不知道整个网路的具体拓扑
基于距离矢量的路由算法(也称为 Bellman-Ford 算法)在路由器之间传递路由表的周期性副本。
大家交换 Routing Table
只知道可达,但是不知道怎么可达(知道 where, 但是不知道 how),不知道整个网路的具体拓扑
# 路由环路问题 Routing Loops
路由环路会导致数据包在网络中不断循环,无法到达目的地,从而浪费网络资源和带宽,甚至引起网络崩溃。
解决方法:
定义最大值(Maximum)
设置最大跳数
路由中毒(Route Poisoning)
当网络 5 发生故障时,路由器 E 通过将网络 5 的表条目设置为 16(无穷大) 或不可访问来启动路由中毒。(而不是删除条目)
当路由器 C 从路由器 E 接收到路由中毒时,它会将更新(称为毒性逆转,poison reverse)发送回路由器 E。这确保网段上的所有路由器都已接收到中毒的路由信息。
最终所有的路由器都知道不可达。
一句话概括:路由毒害,由信息在路由表中失效的时候,把该表项的的度量值(metric)设为无穷大 16。
水平分隔(Split Horizon)
从某个端口收到的报文信息,不能再从该端口发送回去
计时器(Hold-Down Timers)
启动计时器:当目标网络被标记为 “不可达” 时,路由器会启动一个计时器。
等待更优路径:在计时器运行期间,如果路由器收到新的、更优的路径信息,会更新记录。
忽略更差路径:如果收到的路径信息不如现有记录好,则忽略。
超时删除记录:如果计时器倒计时结束且没有新的有效路径信息,路由器会删除该条目。
# 阻止发送路由更新
防止接口发出任何路由更新信息:
Router(config-router)#Passive-interface f0/0
接口接受路由表的更新,但是不发送报文出去
# LSP 链接状态协议
基于链接状态的路由算法也称为 SPF(shortest path first,最短路径优先)算法,维护复杂的拓扑信息数据库:对树处理路由表,没有环路问题
LSA(Link State Advertisement,链路状态通告)
# 链接状态网络发现
路由器之间交换 LSA,每个路由器都以直接连接的网络开头
每个路由器与其他路由器并行构建一个拓扑数据库,该拓扑数据库包含来自网络的所有 LSA。
SPF 算法计算网络可达性:路由器将此逻辑拓扑构建为一棵树,以其自身为根,由链路状态协议互联网络中每个网络的所有可能路径组成。然后,对这些路径进行最短路径优先(SPF)排序。
路由器在路由表中列出其最佳路径以及这些目标网络的端口。它还维护拓扑元素和状态详细信息的其他数据库。
# 链接状态更新
如果有一个链路的状态发生变化(恢复或者被破坏),必须将修改通知给全部路由器消耗代价比较大(SPF 算法)。
# 比较:链接状态和距离矢量
DV:距离矢量
视野窄,代价小
基于跳数
定期交换路由表,收敛慢
交换路由表
LS:链路状态
视野宽,有一定代价
基于带宽
初期充分交换,收敛快
交换 Linked State 的数据库
# 混合协议
示例:
OSI’s IS-IS(Intermediate System-to-Intermediate System)
Cisco’s EIGRP(Enhanced Interior Gateway Routing Protocol)
# 主动路由协议 Routing Protocol
主动路由协议的示例包括:
英文缩写 | 英文解释 | 中文解释 | 备注 |
---|---|---|---|
RIP | a distance-vector routing protocol | 距离矢量协议 | DV |
IGRP | Cisco’s distance-vector routing protocol IGRP | 思科的距离矢量路由协议 | DV,基本启用 |
OSPF | Open Shortest Path First | 开放式最短路径优先 | LSP |
EIGRP | - | 平衡的混合路由协议 | 杂合 |
工作在第三层
# 路由协议的主要目标
最佳路线(Optimal Route):选择最佳路线
效率(Efficiency):最少使用带宽和路由器处理器资源
快速收敛(Rapid Convergence):越快越好。有些比其他人收敛更快。
灵活性(Flexibility):可以处理各种情况,例如高使用率和失败的路由
# 如何启用动态路由协议
Router(config)#router [protocol]
, [protocol
填 rip
, ospf
等
Router(config)#network [network-number]
, network-number
填直连网络号
# 定义默认路由
如果路由表中没有目标网络的条目,则将数据包发送到默认网络。
使用动态路由协议定义默认路由:
Router(config)# ip default-network [network-number]
将默认路由定义为静态路由:
Router(config)## ip route 0.0.0.0 0.0.0.0 [next-hop-ipaddress| exit-interface]
配置默认路由后,使用 show ip route 将显示:(172.16.1.2 是默认的下一跳地址)
不得已的网关是到网络 0.0.0.0 的 172.16.1.2
所有不知道转发给谁的都给 172.16.1.2
解释
在
ip route 0.0.0.0 0.0.0.0 <next-hop-ip>
这条配置中,默认路由是指0.0.0.0 0.0.0.0
这一部分。0.0.0.0
表示网络号,匹配所有的目标地址。0.0.0.0
表示子网掩码,匹配所有网络范围。
作用:
当路由器接收到一个数据包且无法在路由表中找到更具体的匹配时,就会使用这条默认路由,并将数据包转发给<next-hop-ip>
(下一跳地址)。默认路由指向的下一跳地址(
<next-hop-ip>
)通常是出口网关,比如通向互联网的上级路由器。