路由基础
1、IP路由和路由表
1.1、路由和路由段
如果把网络中的路由器看成网络中的节点,把因特网中的一个路由段看成是网络中的一条链路,那么因特网中的路由选择就与简单网络中的路由选择相似了。采用路由段数最小的路由有事也不一定是最理想的。例如,经过三个高速局域网点可能比经过两个低速广域网端的路由快得多。
1.2、路由表
每个路由器中都保存着一张路由表,表中每条路邮箱都指明分组到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。
分类:根据来源不同,路由表中的路由通常可分为以下三类:
链路层协议发现的路由(也称为接口路由或直连路由)
有网络管理员手工配置的静态路由
动态路由协议发现的路由
1.2.1、路由表中的内容
-
目的地址:用来标识IP包的目的地址或目的网络
-
网络掩码:与目的地址一起来标识目的主机或路由器所在的网段的地址。例如:目的地之为129.102.8.10,掩码为255.255.0.0的主机或路由器所在网段的地址为129.102.0.0
-
输出接口:说明IP包姜葱该路由器从哪个接口转发
-
下一跳ip地址:说明ip包所经由的下一个路由器
-
优先级高(数值小)将成为当前的最先路由
1.2.2、根据路由目的地不同
可以划分为:
-
子网路由:目的地为子网
-
主机路由:目的地为主机
1.2.3、根据目的地与该路由器是否直接相连
可分为:
-
直接路由:目的地所在网络与路由器直接相连
-
间接路由:目的地所在网络与路由器不是直接相连
1.2.4、为了不使路由表过于庞大
可以设置一条缺省路由。凡遇到查找路由表失败后的数据包,就选择缺省路由转发。
2、路由协议概述
2.1、静态路由与动态路由
VRP不仅支持静态路由,同时也支持RIP、OSPF、IS-IS和BGP等动态路由协议
静态路由配置方便,对系统要求低,适用于拓扑结构 简单并且稳定的小型网络,缺点是不能自动适应网络拓扑的变化,需要人工干预。
动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置比较复杂,对系统的要求高于静态路由,并将占用一定的网络资源。
2.1.1、动态路由协议的分类
对动态路由协议的分类可以采用以下不同标准:
①根据作用的范围,路由协议可分为:
-
内部网关协议(IGP) :在一个自治系统内部运行,常见的IGP协议包括RIP、ospf和is-is
-
外部网关协议:(EGP)运行于不同自治系统之间,BGP是目前最常用的EGP。
②根据算法分类:主要区别在于 发现路由和计算路由的方法
-
距离矢量协议:包括RIP和BGP,其中,BGP也被称为路径矢量协议
-
链路状态协议:包括OSPF和IS-IS
③根据目的地址类型分类
-
单播路由协议:(RIP、OSPF、BGP和IS-IS)
-
组播路由协议:(DVMRP、PIM-SM、PIM-DM)
注:静态路由和路由协议发现的动态路由在路由器中是统一管理的,静态路由与各路由协议之间发现或者配置的路由也可以在路由协议间共享。
2.2、路由协议以及路由优先级
对于不同的目的地,不同的路由协议(包括静态路由),可能会发现不同的路由,但这些路由都不是最优的。以下是路由协议及其发现路由的缺省优先级:
其中:0表示直连路由,255表示任何来自不可信源端的路由,数值越小优先级越高
除直连路由外(DIRECT)各个路由的优先级都可由用户手工进行配置。另外,每条静态路由的优先级都可以不相同。
路由协议或路由种类 | 相应路由的优先级 |
---|---|
DIRECT | 0 |
OSPF | 10 |
IS-IS | 15 |
STATIC | 60 |
RIP | 100 |
OSPF ASE | 150 |
OSPF NSSA | 150 |
IBGP | 256 |
EBGP | 256 |
UNKNOWN | 255 |
3、负载分担和路由备份
3.1、负载分担和路由备份
3.1.1、负载分担
VRP支持多路由模式,即允许配置多条目的地相同且优先级也相同的路由。当没有到同一目的地的更高优先级路由时,这几条路由都被采纳,在转发去往该目的地报文时,由ip依次通过各条路径发送,从而实现网络的负载分担。
对于同一目的地,特定的路由协议也可能会发现几条不同的路由,如果该路由协议在所有活跃的路由协议中优先级最高,那么这几条不同的路由都被看作当前有效地路由。这样,在路由协议层面上,保证了ip流量的负载分担。
在目前的实现中,支持负载分担的路由协议为OSPF、BGP和IS-IS,静态路由也支持负载分担
注:系统所允许的负载分担的具体路由条数,与实际产品型号相关。
3.1.2、路由备份
VRP支持路由备份功能,提高网络的可靠性,用户可根据实际情况,配置到同一目的地的多条路由,其中一条路由的优先级最高,作为主路由,其余的优先级较低的路由做备份路由。
3.2、路由表的显示和调试
掌握路由表信息的查看是定位路由问题的基本要求
display命令可以在所有视图下使用,debugging命令则只能在用户视图下使用。
查看路由表中当前激活路由的摘要信息 display ip routing-table
查看路由表详细信息 display ip routing-table verbose
查看指定目的地址的路由
display ip routing-table ip-address [ mask ] [ longer-match ] [ verbose ]
查看指定目的地址范围内的路由
display ip routing-table ip-address1 mask1 ip-address2 mask2 [ verbose ]
查看通过指定基本访问控制列表过滤的路由
display ip routing-table acl { acl-number | acl-name } [ verbose ]
查看通过指定前缀列表过滤的路由
display ip routing-table ip-prefix ip-prefix-number [ verbose ]
查看指定协议发现的路由
display ip routing-table protocol protocol [ inactive | verbose ]
查看树形式路由表 display ip routing-table radix
查看路由表的综合信息 display ip routing-table statistics
查看私网路由表摘要信息
display ip routing-table vpn-instance vpn-instance-name [ ip-address ]
查看路由表详细信息
display ip routing-table vpn-instance vpn-instance-name [ ip-address ] verbose
打开路由协议的调试信息开关
debugging ip rtpro { interface | kernal | routing | task [ task | timer ] }
关闭路由协议的调试信息开关
undo debugging ip rtpro [ interface | kernal | routing | task [ task | timer ] ]
其中命令行的格式:
粗体:命令行中必须照输的部分
斜体:命令行中必须由实际值进行替代的部分
[] :命令行中括起来的部分在命令配置可选的
{ x | y | ... }:表示另个或多个选项中选取一个
[ x | y | ... ]:表示两个或者多个选项中选取一个或者不选
{ x | y | ... }* :表示从两个或多个选项中选取多个,最少选取一个,最多选取所有选项
[ x | y | ... ]* :表示从两个或多个选项中选取多个或者不选
&<1-n> : 表示符号“&”前面的参数可以重复 1~n次
# :注释
二、网络基础—静态路由配置
1.1、静态路由简介
静态路由是一种特殊的路由,它由管理员手工配置,当网络结构比较简单时,只需配置静态路由就可以使用网络正常工作,仔细设置和使用静态路由可以改进网络的性能,并可为重要的应用保证带宽。
静态路由的缺点在于:当网络发生故障或者拓扑发生变化后,静态路由可以改进网络的性能,必须由管理员介入。
1.1.1、缺省路由
管理员可以手动配置缺省路由,但有时候,也可以使动态路由协议生成缺省路由,如ospf,IS-IS.
缺省路由是在没有找到匹配的路由表入口项时才使用的路由,在路由表中,缺省路由以到网络0.0.0.0(掩码也为0.0.0.0)的路由形式出现,可以通过命令 display ip routing-table 查看当前是否设置了缺省路由。
如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由。如果没有缺省路由且报文的目的地不在路由表中,那么该报文将被丢弃,并向源端返回一个ICMP报文,并报告该目标地址或网络不可达。
1.1.2、IPv6静态路由属性及功能
IPv6静态路由与IPv4静态路由类似,也需要管理员手工配置,适合于一些结构比较简单的IPv6网络。
他们之间的主要区别是目的地址和下一跳地址有所不同,IPv6静态路由使用的是IPv6地址,IPv4使用的IPv4的地址,另外,IPv6静态路由暂不支持VPN实例。
在配置IPv6静态路由时,如果指定的目的地址为 ::/0 (掩码长度为0),则表示配置了一条IPv6缺省路由,如果报文的目的地址无法匹配路由表中的任何一项,路由器将选择IPv6缺省路由来转发IPv6报文
2.1、配置IPv4静态路由
准备:(1)、目的地址与掩码
在 ip route-static 命令中,IPv4地址为点分十进制格式,掩码可以用点分十进制表示
(2)、出接口和下一跳地址
在配置静态路由时,可指定出接口interface-name,也可指定下一跳地址nexthop-address,是指定发送接口还是指定下一跳地址要按照具体情况而定。
规定:所有的ip地址都必须明确下一跳地址,在发送报文时,首先根据报文的目的地址寻找路由表中与之匹配的路由,只有指定了下一跳地址,链路层才能找到对应的链路层地址,并转发报文。
(3)、其他属性
对于不同的静态路由,可以为他们配置不同的优先级preference,从而更灵活地应用路由管理策略。例如:配置到达相同目的地的多条路由,如果指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。
在使用 ip route-static 配置静态路由时,如果将目的地址与掩码配置为全零(0.0.0.0 0.0.0.0),则表示配置的是缺省路由。
2.1.1、前置任务
-
配置相关接口的物理参数
-
配置相关接口的链路层属性
-
配置相关接口的IPv4地址
2.1.2、数据准备
在配置IPv4静态路由之前,务必准备一下数据:
-
目的网络地址和掩码
-
下一跳的IPv4地址或出接口
-
IPv4静态路由的优先级
2.1.3、配置过程
-
进入系统视图 system-view
-
配置IPv4静态路由
ip route-static [ vpn-instances-vpn-instance-name ] ip-address { mask | mask-length } { gateway-address | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address }[ preference preference ]
注:缺省情况下,没有配置IPv4静态路由。
2.1.4、配置IPv4静态路由的缺省优先级
-
进入系统视图 system-view
-
配置静态路由的缺省优先级
ip route-static default-perference preference
缺省情况下,静态路由的缺省优先级为60.
在配置静态路由时,如果没有显示的指定优先级,就会使用缺省优先级,重新设置缺省优先级后,仅对新增的IPv4静态路由有效。
3.1、配置IPv6静态路由
3.1.1、建立配置任务
-
应用环境
在小型IPv6网络中,可以通过配置IPv6静态路由达到网络互连的目的,相对使用动态路由来说,可以节省宽带。
-
前置任务
在配置IPv6静态路由之前,需完成以下任务:
-
配置相关接口的物理参数
-
配置相关接口的链路层属性
-
使能IPv6报文转发能力
-
相邻节点网络层(IPv6)可达
-
-
数据准备
在配置IPv6静态路由之前,需要准备以下数据:
-
目的地址和掩码
-
下一跳的IPv6地址或者出接口
-
IPv6静态路由的优先级
-
-
配置过程
配置IPv6静态路由
-
进入系统视图 system-view
-
配置IPv6静态路由
ipv6 route-static ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | next-hop-address } [ preference preference ]
缺省情况下,没有配置IPv6静态路由
-
4.1、维护静态路由
4.1.1、显示IPv4静态路由
在完成上述配置后,在所有视图下执行display命令进行查看IPv4静态路由配置的运行情况并检验配置结果
配置命令:路由配置