路由基础原理.docx
《路由基础原理.docx》由会员分享,可在线阅读,更多相关《路由基础原理.docx(30页珍藏版)》请在冰豆网上搜索。
路由基础原理
路由基础
课程目标:
●路由器的定义与作用
●基本概念
●路由器工作原理
●IP路由过程
●VLAN路由
第一章路由器定义和作用
&知识点
l路由器的定义。
l路由器的作用。
一.1路由器的定义
现在Internet上的应用已经非常广泛,从早期的远程登陆和文件传输,到现在的电子邮件,Web浏览等。
Internet网络就是这些应用的基础设施,是一组互相连接的网络。
每一个单独的网络都有它自己的网络号,网络号对于特定的互连网络必须是唯一的。
随着网络的发展,每台计算机要跟踪互联网络上其他每台计算机的地址是很不适宜的,必须有一些方案来减少每台计算机和其他每台计算机通信必须拥有的信息量。
因此,我们将一个互连网络分成许多分离的但互相连接的网络,使得网络计算机只需跟踪互连网络上的一些网络计算机,而不必跟踪每一台网络计算机。
路由器就是负责完成这种分离网络工作的设备。
目前路由器已经广泛应用于各行各业,各种不同档次的产品已经成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。
所谓路由就是指通过相互连接的网络把信息从源地点移动到目标地点的活动。
一般来说,在路由过程中,信息至少会经过一个或多个中间节点。
早在40多年之前就已经出现了对路由技术的讨论,但是直到80年代路由技术才逐渐进入商业化的应用。
路由技术之所以在问世之初没有被广泛使用主要是因为80年代之前的网络结构都非常简单,路由技术没有用武之地。
直到最近十几年,大规模的互联网络才逐渐流行起来,为路由技术的发展提供了良好的基础和平台。
路由器是用于连接不同网络的专用计算机设备,在不同网络间转发数据单元,是互连网络的枢纽、"交通警察"。
我们这样来打个比喻:
如果把Internet的传输线路看作一条信息公路的话,组成Internet的各个网络相当于分布于公路上各个信息城市,它们之间传输的信息(数据)相当于公路上的车辆,而路由器就是进出这些城市的大门和公路上的驿站,它负责在公路上为车辆指引道路和在城市边缘安排车辆进出。
因此,作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP的国际互连网络Internet的主体脉络,是Internet的骨架。
在园区网、地区网、乃至整个Internet研究领域中,路由器技术始终处于核心地位,其发展历程和方向,成为整个Internet研究的一个缩影。
由于未来的宽带IP网络仍然使用IP协议来进行路由(或基于该路由技术的某些改进),路由器将扮演着重要的角色。
路由器之所以在互连网络中处于关键地位,是因为它处于网络层,一方面它屏蔽了下层网络的技术细节,能够跨越不同的物理网络类型(DDN、FDDI、以太网等等),使各类网络都统一为IP,这种一致性使全球范围用户之间的通信成为可能;另一方面在逻辑上将整个互连网络分割成逻辑上独立的网络单位,使网络具有一定的逻辑结构。
同时路由器还负责对IP包进行灵活的路由选择,把数据逐段向目的地转发,使全球范围用户之间的通信成为现实。
这里面所说的不同网络指的是运行同一通讯协议(如IP或IPX)的不同逻辑网段。
其数据链路层协议可以相同,也可以不同,如路由器可以在以太网之间做数据转发,也可以在以太网与FrameRelay网络之间进行数据转发,但其上层(网络层)协议必须一致。
路由器不能在不同的三层网络之间做数据转发,如路由器不能在IP与IPX网络之间做数据转发。
一.2路由器的作用
路由器的核心作用是实现网络互连,在不同网络之间转发数据单元。
为实现在不同网络间转发数据单元的功能,路由器必须具备以下条件。
首先,路由器上多个三层接口要连接不同的网络上,每个三层接口连接到一个逻辑网段。
这里面所说的三层接口可以是物理接口,也可以是各种逻辑接口或子接口。
在实际组网中确实存在只有一个接口的情况,这种方式我们称之为单臂路由,单臂路由应用很少。
其次,路由器协议至少向上实现到网络层,路由器工作在网络层,根据目的网络地址进行数据转发,所以协议至少向上实现到网络层。
再次,路由器必须具有存储、转发、寻径功能。
下面将路由器需要要具备得主要功能解释如下:
l路由功能(寻径功能):
包括路由表的建立、维护和查找。
l交换功能:
路由器的交换功能与以太网交换机执行的交换功能不同,路由器的交换功能是指在网络之间转发分组数据的过程,涉及到从接收接口收到数据帧,解封装,对数据包做相应处理,根据目的网络查找路由表,决定转发接口,做新的数据链路层封装等过程。
l隔离广播、指定访问规则:
路由器阻止广播的通过。
并且可以设置访问控制列表(ACL)对流量进行控制。
l异种网络互连:
支持不同的数据链路层协议,连接异种网络。
l子网间的速率匹配:
路由器有多个接口,不同接口具有不同的速率,路由器需要利用缓存及流控协议进行速率适配。
对于不同规模的网络,路由器作用的侧重点有所不同:
在骨干网上,路由器的主要作用是路由选择。
骨干网上的路由器,必须知道到达所有下层网络的路径。
这需要维护庞大的路由表,并对连接状态的变化作出尽可能迅速的反应。
路由器的故障将会导致严重的信息传输问题。
在地区网中,路由器的主要作用是网络连接和路由选择,即连接下层各个基层网络单位---园区网,同时,负责下层网络之间的数据转发。
在园区网内部,路由器的主要作用是分隔子网。
早期的互连网基层单位是局域网,其中所有主机处于同一个逻辑网络中。
随着网络规模的不断扩大,局域网演变成以高速骨干和路由器连接的多个子网所组成的园区网。
在其中,各个子网在逻辑上独立,而路由器就是唯一能够分隔它们的设备,它负责子网间的报文转发和广播隔离,在边界上的路由器则负责与上层网络的连接。
第二章基本概念
&知识点
l什么是路由表。
l路由表的构成。
l路由的分类。
l路由的优先级。
二.1路由表
路由器的一个作用就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。
选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。
由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。
为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(RoutingTable),供路由选择时使用。
常情况下,路由器根据接收到的IP数据包的目的网段地址查找路由表决定转发路径。
路由表中需要保存着子网的标志信息、网上路由器的个数和要到达此目的网段需要将IP数据包转发至哪一个下一跳相邻设备地址等内容,以供路由器查询使用。
路由表被存放在路由器的RAM上,这意味着路由器如果要维护的路由信息较多时,必须有足够的RAM,而且一旦路由器重新启动,那么原来的路由信息都会消失。
路由表可以是由系统管理员固定设置好的(静态路由表),也可以是根据网络系统的运行情况而自动调整的路由表(动态路由表),它是根据路由选择协议提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。
路由器的另一个作用是连通不同的网络。
一般说来,异种网络互联与多个子网互联都应采用路由器来完成。
二.2路由表的构成
通常情况下,路由表包含了路由器进行路由选择时所需要的关键信息。
这些信息构成了路由表的总体结构。
理解路由表的构成对我们进行路由维护和排错有非常重要的意义。
下边将逐一讲述路由表的结构成分。
l目的网络地址(Dest):
用于标识IP包要到达的目的逻辑网络或子网地址。
l掩码(Mask):
与目的地址一起来标识目的主机或路由器所在的网段的地址。
将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。
例如:
目的地址为8.0.0.0,掩码为255.0.0.0的主机或路由器所在网段的地址为8.0.0.0。
掩码由若干个连续“1”构成,既可以用点分十进制表示,也可以用掩码中连续“1”的个数来表示。
l下一跳地址(Gw):
与承载路由表的路由器相邻的路由器的端口地址,有时我们也把下一跳地址成为路由器的网关地址。
l发送的物理端口(interface):
学习到该路由条目的接口,也是数据包离开路由器去往目的地将经过的接口。
l路由信息的来源(Owner):
表示该路由信息是怎样学习到的。
路由表可以由管理员手工建立(静态路由表);也可以由路由选择协议自动建立并维护。
路由表不同的建立方式也决定了其中路由信息的不同学习方式。
l路由优先级(pri):
决定了来自不同路由来源的路由信息的优先权。
后边的课程中由详细的讲解。
l度量值(metric):
度量值用于表示每条可能路由的代价,度量值最小的路由就是最佳路由。
如上图所示中所显示的是路由表中的一条路由信息,其中:
172.16.8.0为目的逻辑网络地址或子网地址,255.255.255.0为目的逻辑网络或子网的网络掩码。
1.1.1.1为下一跳逻辑地址。
fei_0/1.1为学习到这条路由的接口和将要进行数据的转发的接口。
static为路由器学习到这条路由的方式,本例中本条路由信息是通过手工配置的方式学习到的。
1为此路由路由管理距离,0为此路由的Metric值。
二.3路由的分类
上一节我门讲解了路由表的结构,也许大家会有个疑问。
无论手工或自动学习,路由表最初是如何建立起来的呢?
建立起路由表后又如何进行维护呢?
路由器不是既插既用设备,路由信息必须通过配置才会产生,并且路由信息必须要根据网络拓扑结构的变化做相应的调整与维护。
这些都如何来实现呢?
下面的小节将介绍路由的分类和产生与维护的过程。
根据路由信息产生的方式和特点,也就是路由是如何生成的,路由可以被分为直连路由、静态路由、缺省路由和动态路由几种。
l直连路由:
路由器接口上配置的网段地址会自动出现在路由表中并与接口关联,这样的路由叫做直连路由。
直连路由是由链路层发现的。
其优点是自动发现、开销小;缺点是只能发现本接口所属网段。
当路由器的接口配置了网络协议地址并状态正常时,既物理连接正常,并且可以正常检测到数据链路层协议的keepalive信息时,接口上配置的网段地址自动出现在路由表中并与接口关联。
其中产生方式(owner)为直连(direct),路由优先级为0,拥有最高路由优先级。
其metric值为0,表示拥有最小metric值。
如下图所示。
直连路由会随接口的状态变化在路由表中自动变化,当接口的物理层与数据链路层状态正常时,此直连路由会自动出现在路由表中,当路由器检测到此接口down掉后此条路由会自动消失。
l静态路由:
系统管理员手工设置的路由称之为静态(static)路由,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络拓扑结构的改变自动改变。
其优点是不占用网络、系统资源、安全;其缺点是当一个网络故障发生后,静态路由不会自动修正,必须有管理员的介入,需网络管理员手工逐条配置,不能自动对网络状态变化做出相应的调整。
因此,我们也许会这样考虑:
“我们应该避免使用静态路由!
”然而,对于一个平滑的网络,静态路由在很多地方都是必要的。
仔细地设置和使用静态路由可以改进网络的性能,为重要的应用保存带宽。
实际上,在一个无冗余连接网络中,静态路由可能是最佳选择。
我们推荐在以下两种情况下使用静态路由。
在稳固的网络中使用静态路由,减少路由选择问题和路由选择数据流的过载。
例如,在只有一条通路有效的stub网络中使用静态路由。
某些时候,可以通过备份中心提供多条通路,这个时候,由备份中心来检测网络拓扑结构,以便当一条网络链路出现故障时,通过路由的切换来实现数据业务在不同通路间的切换。
静态路由的另一个价值方面体现在一个构筑非常大型的网络中,各个区域通过一刀两条主链路连接。
静态路由的隔离特征能够有助于减少整个网络中的路由选择协议的开销、限制路由选择发生改变和出现问题的范围。
静态路由是否出现在路由表中取决于下一跳是否可达,即此路由的下一跳地址所处网段对本路由器是否可达。
静态路由在路由表中产生方式(owner)为静态(static),路由优先级为1,其metric值为0。
如下图所示。
静态路由的配置
我们使用命令iproute来配置静态路由,一条静态路由的配置命令中要有以下几个要素:
1.目的地址:
用来标识IP包的目标地址或目标网络
2.网络掩码:
和目标地址一起来标识目标网络。
3.下一跳IP地址:
说明IP包所经由的下一个IP地址。
4.接口:
说明IP包从哪个接口发出去。
5.distance-metric:
相当于路由协议的优先级,值越小,优先级越高。
范例,如下图所示,路由器A的静态路由配置如下:
发给网络10.0.0.0的包将被路由到拥有地址172.16.2.2的路由器:
ZXR10(config)#iproutel0.0.0.0255.0.0.0172.16.2.2
U说明
ZXRC系列路由器与G系列和E系列有所不同,C系列使用命令ipaddroute配置静态路由。
具体命令请参考ZXRC系列命令手册。
l缺省路由:
缺省路由是一个路由表条目,用来指明一些在下一跳没有明确地列于路由表中的数据单元应如何转发。
对于在路由表中找不到明确路由条目的所有的数据包都将按照缺省路由指定的接口和下一跳地址进行转发。
在路由表中,缺省路由以到网络0.0.0.0(掩码为0.0.0.0)的路由形式出现。
可通过命令Showiproute的输出看它是否被设置。
如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由。
如果没有缺省路由且报文的目的地址不在路由表中,那么该报文被丢弃的同时,将返回源端一个ICMP报文指出该目的地址或网络不可达。
缺省路由是否出现在路由表中取决于本地出口状态。
缺省路由在网络中是非常有用的。
在一个包含上百个路由器的典型网络中,选择动态路由协议可能耗费较大量的带宽资源,使用缺省路由意味着采用适当带宽的链路来替代高带宽的链路以满足大量用户通信的需求。
Internet上大约99.99%的路由器上都存在一条缺省路由!
缺省路由并不一定都是手工配置的静态路由,有时也可以由动态路由协议产生。
比如OSPF路由协议配置了Stub区域的路由器会动态产生一条缺省路由。
优点:
使用缺省路由可以极大减少路由表条目。
缺点:
一旦配置不正确可能导致路由环路;可能导致非最佳路由。
如上图显示的是一个手工配置缺省路由的配置例子。
所有从172.16.1.0网络中传出的没有明确目的地址路由条目与之匹配的IP包,都被传送到了缺省的网关172.16.2.2上。
U说明
ZXRC系列路由器与G系列和E系列有所不同,C系列使用命令ipaddroutedefaultgateway/gate-list…配置缺省路由。
具体命令请参考ZXRC系列命令手册。
l动态路由:
正如前边课程所讲,路由表可以是由系统管理员固定设置好的静态路由表,也可以是配置动态路由选择协议根据网络系统的运行情况而自动调整的。
根据所配置的路由选择协议提供的功能,动态路由可以自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。
它适应大规模和复杂的网络环境下的应用。
所有的动态路由协议在TCP/IP协议栈中都属于应用层的协议。
但是不同的路由协议使用的底层协议不同。
OSPF工作网络层,将协议报文直接封装在IP报文中,协议号89,由于IP协议本身是不可靠传输协议,所以OSPF传输的可靠性需要协议本身来保证。
BGP工作在应用层,使用TCP作为传输协议,提高了协议的可靠性,TCP的端口号是179。
RIP工作在应用层,使用UDP作为传输协议,端口号520。
IS-IS协议在OSI协议栈中。
综合IS-IS工作在TCP/IP的网络层,直接封装成帧。
配置了动态路由选择协议后,动态路由协议通过交换路由信息,生成并维护转发引擎所需的路由表。
当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径。
动态路由协议的优点是可以自动适应网络状态的变化,自动维护路由信息而不需要网络管理员的参与。
其缺点为由于需要相互交换路由信息,因而占用网络带宽与系统资源。
另外安全性也不如静态路由。
在有冗余连接的复杂大型网络环境中,适合采用动态路由协议。
在动态路由协议中目的网络是否可达取决于网络状态。
二.4路由的优先级
二.4.1路由的优先级
一台路由器上可以同时运行多个路由协议。
不同的路由协议都有自己的标准来衡量路由的好坏(有的采用下一跳次数、有的采用带宽、有的采用延时,一般在路由数据中使用度量Metric来量化),并且每个路由协议都把自己认为是最好的路由送到路由表中。
这样到达一个同样的目的地址,可能由多条分别由不同路由选择协议学习来的不同的路由。
虽然每个路由选择协议都有自己的度量值,但是不同协议间的度量值含义不同,也没有可比性。
路由器必须选择其中一个路由协议计算出来的最佳路径作为转发路径加入到路由表中。
我们就需要有一种方法来实现这个目的。
通过这种方法的判断,我们能判断出最优的路由并使用它来转发数据包。
实际的应用中,我们使用路由优先级来实现这个目的。
每个路由器可以配置一个优先级参数。
路由器选择路由协议的依据就可以是这个路由优先级。
不同的路由协议有不同的路由优先级。
数值小的优先级高。
当我们有到达同一个目的地址的多条路由时,可以根据优先级的大小,选择其中一个优先级最小的作为最优路由,同时将这条路由写进路由表中。
在上图中,一台路由器上同时运行两个路由协议:
RIP和OSPF。
RIP与OSPF协议都发现并计算出了到达同一条网络10.0.0.0/16的最佳路径,但由于选路算法不同选择了不同的路径。
由于OSPF具有比RIP高的路由优先级(数值较小),所以路由器将通过OSPF学到的这条路由加入到路由表中。
注意:
必须是完全相同的一条路由才进行路由优先级的比较,如10.0.0.0/16和10.0.0.0/24被认为不是相同的路由,如果RIP学到了其中的一条,而OSPF学到了另一条,则两条路由都会被加入路由表中。
下面的表中列出了各种路由选择协议的缺省优先级:
路由选择协议
优先级
直连路由
0
静态路由
1
外部BGP(EBGP)协议
20
OSPF协议
110
RIPv1,v2协议
120
内部BGP(IBGP)协议
200
Special(内部处理使用)
255
路由优先级数值范围为0-255。
缺省路由优先级赋值原则为:
直连路由具有最高优先级;人工设置的路由条目优先级高于动态学习到的路由条目;度量值算法复杂的路由协议优先级高于度量值算法简单的路由协议。
这样,各路由协议(包括静态路由)都被赋予了一个管理距离。
当存在多个路由信息源时,具有较小管理距离数值的路由协议发现的路由将成为最优路由,并被加入路由表中。
对不同路由协议的路由优先级的赋值是各个设备厂商自行决定的,没有统一标准。
所以有可能不同厂商的设备上路由优先级是不同的,并且通过配置可以修改缺省路由优先级。
二.4.2浮动静态路由与路由备份
应用路由的这种选择机制,可以实现路由的备份。
用户可以根据实际情况,配置到同一个目的地的多条路由,并设置通主链路的路由优先级最高,其余的备份链路依次递减。
这样配置后,正常的情况下,路由器采用主链路发送数据。
当主链路发生故障时,备份链路接替主链路转发数据。
当主链路状态恢复正常后流量应该自动切换回主链路。
路由表种的路由条目也会根据链路的状态做适当的调整,如下图所示,正常情况下所有到达外部网络的路由应该通过接口e1_1进行转发,而当连接接口e1_1的DDN链路down掉后,路由表中的到达外部网络的路由应该自动变为指向接口e1_2,通过其所连接的PSTN网络进行转发。
在路由器上如何设置以满足备份链路的需求呢?
我们可以使用浮动静态路由配置备份链路。
如下图所示,分别配置了通过不同接口到达外部网络10.0.0.0255.0.0.0的路由,其中通过主链路的静态路由的路由优先级没有配置,保持缺省值1;通过备份链路的静态路由的路由优先级配置为5。
当两条链路状态都正常的情况下由于设置的是两条完全相同的路由,所以路由优先级高(数值小)的通过接口e1_1转发的路由条目会出现路由表中,而路由优先级低(数值大)的通过接口e1_2转发的路由条目不会出现在路由表中。
当主链路发生故障,路由器在接口上检测出链路down掉后会撤消所有通过此接口转发的路由条目。
此时路由优先级低(数值大)的通过接口e1_2转发的路由条目就自动出现在路由表中,所有到达外部网络10.0.0.0255.0.0.0的流量被切换到备份链路。
而当主链路状态恢复正常后,通过主链路转发的路由会自动出现在路由表中,而通过备份链路转发的路由被自动撤消。
U说明
ZXRC系列路由器与G系列和E系列有所不同,C系列使用命令ipaddroute实现静态浮动路由配置。
同时还支持多网关浮动路由,用以实现多路由环境下的负载均衡。
具体命令请参考ZXRC系列相关资料。
二.4.3最长匹配原则
在路由器中,路由查找遵循的是最长匹配原则。
所谓的最长匹配就是路由查找时,使用路由表中到达同一目的地的子网掩码最长的路由。
如下图所示,相对于上述的去往10.1.1.1的数据包,在路由表中,可同时有三条路由显示可以为此数据包进行转发,分别是10.0.0.0、10.1.0.0和10.1.1.0。
根据最长匹配原则,10.1.1.0这个条目匹配到了24位,因此,去往10.1.1.1的数据包用10.1.1.10的路由条目提供的信息进行转发,也就是从fei_0/1.3进行转发。
第三章路由器的工作原理
&知识点
l路由器的路由功能。
l路由器的交换/转发功能。
路由器是一种用于网络互连的专用计算机设备,在网络建设中有着重要的地位。
路由器工作在OSI参考模型的第三层(网络层),主要的作用是为收到的报文寻找正确的路径,并把它们转发出去。
在这个过程中,路由器被认为了执行两个最重要的基本功能:
路由功能与交换功能。
l路由功能是指路由器通过运行动态路由协议或其他方法来学习和维护网络拓扑结构知识的机制,产生和维护路由表。
为了完成路由功能,路由器需要学习与维护以下几个基本信息:
首先需要知道被路由协议的是什么。
一旦在接口上配置了IP地址,子网掩码,即在接口上启动了IP协议(缺省情况下IP路由是打开的),而且路由器接口状态正常的话,就可以利用这个接口转发数据包。
其次,目的网络地址是否已存在。
通常IP数据包的转发依据是目的网络地址,路由表中必须有能够匹配得上的路由条目才能够转发此数据包,否则此IP数据包将被路由器丢弃。
第三,路由表中还包含为将数据包转发至目的网络需要将此数据包从哪个端口发送出和应转发到那一个下一跳地址等信息。
l路由器的交换/转发功能与以太网交换机所执行的交换功能概念不同,指的是数据在路由器内部移动与处理的过程:
从路由器一个接口接收,然后选择合适接口转发,其间做帧的解封装与封装,并对包做相应处理,如下图所示。
首先当一个数据帧到达某一端口,端口对帧进行CRC校验并检查其目的数据链路层地址是否与本端口符合。
如果通过检查,则去掉帧的封装并读出IP数据包中的目的地址信息,查询路由表,决定转发接口与下一跳地址。
获得了转发接口与下一跳地址信息后路由器将查找缓存中是否已经有了在外出接口上进行数据链路层封装所需的信息,如果没有这些信息路由器将通过适当的进程获得这些信息:
外出接口如果是以太网,则将通过ARP协议获得下一跳IP地址所对应的MAC地址;而如果外出接口是广域网接口,则将通过手工配置或自动实现的映射过程获得相应的2层地址信息。
然后做新的数据链路层封装,并