路由的概念
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。
路由表
在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
路由表项
- destination:目的地址,用来标识IP包的目的地址或者目的网络。
- mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。
- pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。
- cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。
- interface:输出接口,说明IP包将从该路由器哪个接口转发。
- nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。
路由表中有三类路由
- 链路层协议发现的路由(即是直连路由)
路由器激活接口:1、物理上up;2、协议up - 静态路由
- 动态路由协议发现的路由。
查看路由表
R1#show ip route |
主动路由协议 vs. 被动路由协议
Routed Protocols vs. Routing Protocols
被动路由协议(Routed Protocol)是可以使用户数据被路由的协议,比如:IP、IPX、APPLE TALK等。(IP统治世界哈哈哈)
主动路由协议(Routing Protocol)是用来帮助路由器构建和维护路由表的协议,比如:RIP、OSFP、EIGRP等。
有类路由协议 vs. 无类路由协议
Classful vs. Classless Routing
有类路由协议
有类路由协议在更新路由信息的时候不会携带子网掩码的信息,常见协议有RIPv1、IGRP。当一个运行有类路由协议的路由收到一个来自其他路由器的路由项:
- 如果路由器有直连接口与这个路由项属于相同主网,则使用这个直连接口的子网掩码作为新路由项的子网掩码。
- 如果路由器没有直连接口与这个路由项属于相同主网,则使用主网作为子网掩码。
主网指IP协议的五大类地址A类B类C类D类E类
举栗子——
以下路由器运行有类路由协议
- 路由器B将网段10.2.0.0的路由信息发送给A,但是不会携带子网掩码的信息。
- 路由器A发现10.2.0.0属于A类地址
- 假设A有一个直连接口连接10.4.0.0/16的网段,10.4.0.0和10.2.0.0同属于A类地址,于是A使用10.4.0.0的子网掩码/16作为10.2.0.0的子网掩码,此时路由器A记下10.2.0.0/16的路由信息。
- 假设A没有直连接口连接同属于A类地址的网段,于是A使用A类地址的子网掩码/8作为10.2.0.0的子网掩码,此时路由器A记下10.2.0.0/8的路由信息。
使用有类路由协议时,整个应用范围的网络的子网掩码必须保持一致。
无类路由协议
无类路由协议在路由信息更新时会携带子网掩码信息。因此,无类路由协议支持VLSMs(Variable Length Subnet Masks,可变长子网掩码)。常见协议有RIPv2、EIGRP、OSPF 和 IS-IS。
静态路由
通过网络管理员手动配置路由的一种路由方式,就是静态路由。
静态路由的配置
R1(config)#ip route network-address subnet-mask {ip-add|exit-interface} |
举例——
R1(config)#ip route 192.168.1.0 255.255.255.0 192.168.12.2 |
注意:通信是双向的,因此需要注意往返流量。
R1和R3同时配置好静态路由,R1才能ping通R3,只配置R1无法ping通。
默认路由
|
故障排查
常用命令:
- ping——测试连通性
- traceroute——追踪两段中的每一跳
- show ip route——用于显示路由表
- Show ip interface brief——接口信息摘要
- show cdp neighbors detail——用于搜集相邻信息
实验
三台路由器R1、R2、R3实现全网互通,并为每一个路由器开启回环接口
动态路由
动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。
优点
- 配置简单
- 当网络拓扑变更时,能够自动收敛
缺点
- 占用CPU和内存资源
- 路由信息的交流占用网络带宽
动态路由协议的分类
graph TD 动态路由协议 --> 内部网关协议 动态路由协议 --> 外部网关协议 内部网关协议 --> 距离矢量协议 内部网关协议 --> 链路状态协议 距离矢量协议 --> RIPv1 距离矢量协议 --> IGRP RIPv1 --> RIPv2 IGRP --> EIGRP 链路状态协议 --> OSPF 链路状态协议 --> IS-IS
距离矢量路由选择协议
定义
特点
- 周期性泛洪整张路由表
- 依照传闻的更新
- 逐跳更新
工作原理
- 路由初始启动
- 随着更新周期交换路由信息
- 收敛完成——当所有路由表包含相同的网络可达性信息,网络(路由)进入一个稳态
度量值Metric
Metric值优的装进路由表,Metric值次的放入后台备用,Metric值相同的负载均衡
- RIP——跳数
- RIP度量值的查看
1前面的120指的是管理距离(AD值)
环路的产生
概述
路由环路是指数据包在一系列路由器之间不断传输却始终无法到达其预期目的网络的一种现象。当两台或多台路由器的路由信息中存在错误地指向不可达目的网络的有效路径时,就可能发生路由环路。(一般是由距离矢量路由协议引发的)
产生原因
- 静态路由配置错误
- 路由重分布配置错误
- 发生了改变的网络中收敛速度缓慢,不一致的路由表未能得到更新
- 错误配置或添加了丢弃的路由
消除机制
- 定义最大度量值以防止计数至无穷大
- 水平分割 Split Horizon——路由器不能使用接收更新的同一接口来通告同一网络。
- 毒性路由Route Poisoning——当路由器感知到某个网段发生故障,可以立即泛洪该网段的路由( 将其跳数设置为16跳,也就是不可达),以此来快速刷新网络中其他路由器的路由表。
- 毒性反转Poison Reverse——
- 抑制计时器Hold-Down Timers
- 为正在重新收敛的网络增加了应变能力
- 引入了某种程度的怀疑量
- 触发更新Triggered Updates——拓扑发生变更时,路由器立即发送更新消息,而不等更新计时器超时
管理距离(AD值)
- 英文:administrative distance
- 缩写:AD
- 管理距离是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离。
- 对于两种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪一个协议。
- 小值优先
Routing Protocols | AD | 备注 |
---|---|---|
直连接口 | 0 | |
关联出接口的静态路由 | 1 | Metric =0 |
关联下一跳的静态路由 | 1 | Metric =0 |
EIGRP 汇总路由 | 5 | |
外部 BGP | 20 | |
内部EIGRP | 90 | |
IGRP | 100 | |
OSPF | 110 | |
RIPv1、v2 | 120 | |
外部EIGRP | 170 | |
内部BGP | 200 |
RIP协议
概述
最大上限15跳(16跳为不可达)——极大程度上限制了RIP所能支持的网络规模
- RIP(Routing Information Protocol,路由信息协议)是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,简称IGP)
- 适用于小型同类网络,是典型的距离矢量协议
- 是基于UDP,端口520的应用层协议
- 管理距离:120
配置
- 启动RIP路由选择进程
Router(config)#router rip |
- 宣告指定的直连网络(接口)
Router(config-router)#network network-number |
补充:FIB(转发信息库)
RIB表把所有路由协议学习到的路由汇总到一起,经过优选,把优选结果的路由加入到FIB表,供转发使用。所以FIB是RIB的一个子集。