前言
在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基本的要素。路由信息是指导报文转发的路径信息,路由过程就是报文转发的过程。 本次将会向读者介绍路由的基本概念。
目录
背景:网段间通信
IP地址唯一标识了网络中的一个节点,每个IP地址都拥有自己的网段,各个网段可能分布在网络的不同区域。 为实现IP寻址,分布在不同区域的网段之间要能够相互通信。
【后面补充】
控制平面:是路由的学习(是得到的访问目的地的坐标)
转发平面:是数据的转发(是根据目的地进行数据的发送)
网段间通信:要求每个网段之间相互可知
路由【路径由来】
路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。 路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器。 路由设备维护着一张路由表,保存着路由信息。
路由信息介绍
路由中包含以下信息:
- 目的网络:标识目的网段
- 掩码:与目的地址共同标识一个网段
- 出接口:数据包被路由后离开本路由器的接口
- 下一跳:路由器转发到达目的网段的数据包所使用的下一跳地址
这些信息标识了目的网段、明确了转发IP报文的路径。
display ip routing-table 查看IP路由表【查看设备的路由表项信息】
如图:
display ip interface brief 查看设备接口类型
路由表中各个内容的含义:
Destination/Mask:表示此路由的目的网络地址与网络掩码。【网络地址+掩码:可以唯一的判定一个网段】将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0。
Proto(Protocol):该路由的协议类型,也即路由器是通过什么方式获知该路由的。
Pre(Preference):表示此路由的路由协议优先级。【每种产生方式(协议)对应的路由优选值】针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。
Interface:表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。
基本路由思想
- 每台路由器独立决策报文的转发,不是所有路由器都有去往目的地址的路由。
- 沿途设备必须有去往目的网络的路由,并且一定要有去往源网络的路由信息。
路由器设备一定是先查表后转发。
路由信息获取方式
1)直连路由:自动生成,当接口出现故障以及人为关闭时,直连路由会自动消失。
当路由器为路由转发的最后一跳路由器时,IP报文匹配直连路由,路由器转发IP报文到目的主机。 使用直连路由进行路由转发时,报文的目的IP和路由器接口IP在一个网段之中。
并不是所有接口生成的直连路由都会出现在路由表中,直连路由出现在路由表中的前提是该接口的物理状态、协议状态都为UP。
2)静态路由:管理员手工配置添加网段信息。
3)动态路由:路由器运行动态路由协议通过动态的方式学习到路由信息。
路由器需要获取非直连网段信息的话,就必须通过路由协议来解决,比如静态路由和动态路由。
【后面补充】
路由产生的方式:
1.direct:直连方式
路由器设备存在4条默认的直连路由信息
优先级值为0(取值范围0-255),开销值为0
当设备接口配置地址后,会根据地址的网段产生对应的直连路由
如果配置的地址掩码<=30位,则产生3条直连路由
如果配置的地址掩码=31位,则产生2条直连路由
如果配置的地址掩码=32位,则产生1条直连路由
2.static:静态方式
[AR1]ip route-static 192.168.3.0 24 GigabitEthernet 0/0/0 10.1.12.2
优先级值为60 ,开销值为0
由管理员手工配置,也可以执行手工删除
当配置静态路由时:
1.在广播网络中,可以不配置路由的出接口信息
2.在PPP网络中,可以不配置路由的下一跳信息
路由优先级
取值范围0---255,取值越小,优先级越高。当去往同一个目的网段存在不同协议的路由时,选择路由优先级最高的作为最优路由放到路由表中。
默认路由优先级:
直连路由:0
静态路由:60
RIP:100
OSPF:10(内部) ospf ASE:150
ISIS:15
BGP:255
度量值---基本概念
当路由器通过某种路由协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由优选的依据之一。 路由度量值表示到达这条路由所指目的地址的代价。 一些常用的度量值有:跳数、带宽、时延、代价、负载、可靠性等。 度量值数值越小越优先,度量值最小路由将会被添加到路由表中。 度量值很多时候被称为开销(Cost)。
度量值---比较过程
不同的路由协议有不同的cost计算方式,不同协议的cost不具备可比性。
当去往同一个目的网段并且是同一个路由协议时,存在多条路径,选择开销值小的作为转发路径。去往同一个目标网段存在多个不同的下一跳,则认为是不同路径。
跨链路转发的时候,二层数据帧需要重写。
主机判断机制:
- 源地址和目的地址在同一个网段,则直接通过ARP缓存表找到目的MAC地址进行封装。
- 源地址和目的地址不在同一个网段,则查ARP缓存表中网关的MAC地址进行封装,并将数据发给网关。
最长匹配原则
当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位(Bit-By-Bit)比对,直到找到匹配度最长的条目,这就是最长前缀匹配机制。
转发平面执行的操作:【补充】
当一个目标访问存在多条路由可达时,优选子网掩码最长的那一条路由信息进行数据转发。
IP路由表小结
1)当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,会选择路由优先级值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值最优的。总之,最优的路由加入路由表。
2)当路由器收到一个数据包时,会在自己的路由表中查询数据包的目的IP地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表项,则丢弃该数据包。
3)路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包。
4)数据通信往往是双向的,因此要关注流量的往返(往返路由)。
静态路由应用场景
静态路由由网络管理员手动配置,配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。
缺点是不能自动适应网络拓扑的变化,需要人工干预。
静态路由配置
简述:
ip route-static 目标网段 目标网段掩码 下一跳IP地址 (常用)
切记(注意):
如果出口是以太网接口,则必须要写下一跳地址,不能使用出接口方式;如果出口是PPP、HDLC链路时,可以写下一跳地址也可以写出接口IP地址。
HDLC补充
广域网简称WAN,是一种跨越超大的、地域性的计算机网络集合。通常跨省、市、甚至一个国家。广域网包括很多子网,子网可以是局域网;也可以是小型的广域网。由于串行通信有着传输距离远、成本低的特点,所以远距离、超远距离的通信中较常使用串行通信。广域网以及两种最常用的广域网链路层协议——PPP协议和HDLC协议。
HDLC(High-level Data Link Control,高级数据链路控)。就是一种面向比特的网络节点之间同步传输数据的数据链路层协议。
一般情况下,HDLC通信协议IP核为三个部分,即外部接口模块、数据发送部分和数据接收部分。在这类面向比特的数据链路协议中,帧头和帧尾都是特定的二进制序列, 通过控制字段来实现对链路的监控,可以采用多种编码方式 实现高效的、可靠的透明传输。故其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。
网络节点补充
网络节点是指一台电脑或其他设备与一个有独立地址和具有传送或接收数据功能的网络相连。节点可以是工作站、客户、网络用户或个人计算机,还可以是服务器、打印机和其他网络连接的设备。每一个工作站﹑服务器、终端设备、网络设备,即拥有自己唯一网络地址的设备都是网络节点。整个网络就是由这许许多多的网络节点组成的,把许多的网络节点用通信线路连接起来,形成一定的几何关系,这就是计算机网络拓扑。
缺省路由
缺省路由是一种特殊的路由,当报文没有在路由表中找到匹配的具体路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。
缺省路由在路由表中的形式为0.0.0.0/0,缺省路由也被叫做默认路由。
简述:
ip route-static 0.0.0.0 0 下一跳IP地址
注意:
默认路由只能单方向配置,要么默认路由去明细路由回,要么明细路由去默认路由回。
缺省路由应用场景
缺省路由一般用于企业网络出口或者自己的PC机,配置一条缺省路由让出口设备能够转发前往Internet上任意地址的IP报文。
动态路由概述
动态路由协议能够自动发现和生成路由,并在拓扑变化时及时更新路由,可以有效减少管理人员工作量,更适用于大规模网络。
动态路由分类
如图:
AS(自治系统):运行相同的IGP协议的一组设备所组成的网络。
BGP:实现AS之间的互联互通。
路由高级特性
路由递归
路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由递归。路由递归也被称为路由迭代。
等价路由(基于流的负载分担)
来源相同、开销相同的路由都会被加入路由表,形成的路由为等价路由(两个路由条目指向的目的网段相同,但是具有不同的下一跳地址),路由转发会将流量分布到多条路径上。
路由表中存在等价路由之后,前往该目的网段的IP报文路由器会通过所有有效的接口、下一跳转发,这种转发行为被称为负载分担。
简述:
对于TCP、UDP报文,五元组相同则认为是同一个流,如果五元组有一个不同则认为是不同的流。
对于非TCP、UDP报文,只要SIP+DIP相同则认为是同一个数据流。
匹配同一个路由的不同数据流在多条等价链路上进行转发。
浮动路由
浮动路由是主用路由的备份,保证链路故障时提供备份路由。主用路由下一跳可达时该备份路由不会出现在路由表。
对比:
浮动路由和等价路由,前提都是去往同一个目的网段拥有两个或多个不同的下一跳。
1)静态路由由于无法配置COST值,只能通过优先级的调整来实现主备备份。
2)动态路由通过配置COST值来实现主备备份,开销小的优先,开销大的作为备份。如果相同则是负载分担。去往同一个目的网段也可以使用不同的路由协议去实现浮动路由。
CIDR
CIDR(classless inter-domain routing,无类别域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。
CIDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。
路由汇总需求
子网划分、VLSM解决了地址空间浪费的问题,但同时也带了新的问题:路由表中的路由条目数量增加。 为减少路由条目数量可以使用路由汇总。
路由汇总将一组具有相同前缀的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的。
路由汇总采用了CIDR的思想:将相同前缀的地址聚合成一个。
我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。
【后面补充】
等价路由:去访问同一个目的地,路由的类型,开销都是相等的,但是下一跳不同
6.6.6.6/32 Static 60 0 RD 10.1.34.4 GigabitEthernet0/0/0
Static 60 0 RD 10.1.35.5 GigabitEthernet0/0/1
浮动路由:也称为主备路由,数据访问时优选主路由进行数据的发送,如果主路由失效,则按照备份路由进行转发
ip route-static 6.6.6.6 255.255.255.255 10.1.34.4 preference 50
ip route-static 6.6.6.6 255.255.255.255 10.1.35.5
路由递归:也称为路由迭代,去往目标地址的下一跳不可达时,通过配置路由信息访问下一跳可达
被递归的路由,下一跳是可以被访问通信的。
ip route-static 3.3.3.3 255.255.255.255 10.1.35.3
ip route-static 10.1.35.0 255.255.255.0 10.1.56.5
路由汇总:将多条明细路由,变为一条综合的路由,可以简化配置路由的数量,优化路由表的显示
ip route-static 3.3.3.1 255.255.255.255 10.1.35.3
ip route-static 3.3.3.2 255.255.255.255 10.1.35.3
ip route-static 3.3.3.3 255.255.255.255 10.1.35.3
可以转换为:
ip route-static 3.3.3.0 255.255.255.252 10.1.35.3
【静态+动态实验】
动态配置略写其一:[每台路由器都按照AR1配置,将自身接口的ip地址宣告出去]
[AR1]ospf 1 router-id 10.1.1.1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 10.1.123.1 0.0.0.0
静态配置:
AR1:
ip route-static 5.5.5.5 255.255.255.255 10.1.123.2 preference 59
ip route-static 5.5.5.5 255.255.255.255 10.1.123.3
ip route-static 10.1.34.0 255.255.255.0 10.1.123.3
AR2:
ip route-static 1.1.1.1 255.255.255.255 10.1.123.1
ip route-static 5.5.5.5 255.255.255.255 10.1.24.4
AR3:
ip route-static 1.1.1.1 255.255.255.255 10.1.123.1
ip route-static 5.5.5.5 255.255.255.255 10.1.34.4
AR4:
ip route-static 1.1.1.1 255.255.255.255 10.1.24.2
ip route-static 1.1.1.1 255.255.255.255 10.1.34.3 preference 50
ip route-static 5.5.5.5 255.255.255.255 10.1.45.5
AR5:
ip route-static 1.1.1.1 255.255.255.255 10.1.45.4