导图社区 第一章:路由基础
HCNP学习指南中第一章路由基础详细知识导图。
编辑于2020-09-11 12:06:04路由基础
路由的基本概念
路由的概念:
当一台路由器收到一个IP报文时,他会在自己的路由表中执行路由查询,寻找匹配该报文的目的IP地址和路由条目(或者说是路由表项),如果找到匹配的路由条目,路由器便按照该条目所指示的出接口及下一跳IP地址转发该报文,如果没有任何路由条目匹配该目的IP地址,则意味着路由器没有相关路由信息可用于指导报文转发,因此该报文将会被丢弃,上述行为就是路由。
路由表的概念:
路由表的概念:
路由表可以理解为是设备将报文转发到特定目的地所依据的一张”地图“
路由表的组成:
目的网络地址及掩码长度(Destinations/Mask)
目的网络地址及子网掩码用于标示一条路由
协议类型(Proto)
表示该路由的协议类型,或者该路由是通过什么途径学习到的。
Static表示该路由是通过手工配置方式学习到的静态路由。
Direct表示该路由是直连路由
OSPF表示该路由是通过OSPF这个协议学习到的
优先级(Pre)
优先级的值越小则该路由的优先级越高,优先级越高则该路由则被优选。
度量值(Cost)
度量值指示了本路由器到达目的网段的代价值。在很多场合它也被称为度量值。不同的路由协议,对于路由度量值的定义和计算均有所不同。
标志(Flags)
下一跳(NextHop)
描述了路由器转发到达目的网段的数据包所使用的下一跳地址
出接口(Interface)
指示的是数据包被路由后离开本路由器的接口。
路由的优先级
当路由器从多种不同的途径获知到达同一个目的网段的路由时,路由器会比较这些路由的优先级,优选优先级值最小的路由。(不同的途径,同一个目的网段,比较优先级)
路由与优先级的对应表:
直连路由 0 OSPF内部路由 10 IS-IS路由 15 静态路由 60 RIP路由 100 OSPF ASE路由 150 OSPF NSSA路由 150 IBGP路由 255 EBGP路由 255
路由的度量值
当路由器从多个不同的下一跳,通过同种路由协议获悉到达同一个目的网段的路由时,它则会进行度量值的比较。(不同的途径,同一个路由协议,同一个目的网段,比较度量值)
度量值也称为开销,不同的路由协议定义的度量值是不同的,例如RIP路由是以跳数做为度量值的,而OSPF则以开销(与链路带宽有关)作为度量值。
静态路由
静态路由的基本概念
概念:
所谓静态路由,通俗的说法就是,网络管理员通过手工配置的方法告诉路由器:“你要到达目的地X,需把数据包从接口Y扔出去给下一跳Z”,在网络中部署静态路由后,网络设备之间无需交互特别的协议报文(不像动态路由协议那样)。
注意事项:
在配置静态路由时,一定要注意,网络中的通信讲的是双向通信,不能可以去了,但不能回来。故在配置静态时,一定要配置好去的静态,在配置好回来的静态,要保证双向通信。
静态路由配置命令:
ip route static 目的网络地址/子网掩码 出接口 下一跳地址
静态路由配置须知
如果出接口为BMA(广播型多路访问)类型,则静态路由需指定下一跳IP地址。
说明:以太网接口就是一种非常典型的BMA类型接口,BMA接口接入一个广播网络,该网络中往往还同时接入了多台设备,因此如果仅仅为静态路由指定出接口,那么路由器无法判断究竟该将数据包发往哪一个下一跳设备。
如果出接口为P2P(点对点)类型,则静态路由仅需指定出接口。
说明:P2P类型的接口仅与一台设备对接,故只需指定出接口即可。
如果出接口为NBMA(非广播多路访问)类型,则静态路由需指定下一跳IP地址。
说明:
默认路由
默认路由的实验场景:
默认路由的概念:
默认路由也称缺省路由,默认路由是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。
默认路由的适用场景:
默认路由一般存在末梢网络,配置在内网与外网的链路上。默认路由会大大简化路由器的配置,减轻管理员的工作负担,提高网络性能。
静态默认路由的配置命令
ip route-static 0.0.0.0 0.0.0.0 下一跳地址
默认路由的注意事项:
当网络中同时配置了静态路由和默认路由后,当网关收到报文后,会先根据最长匹配原则,匹配最佳路径,执行内网内的数据转发。当网关中的路由表没有找到明细路由时,则会用默认路由进行数据转发。故在网络边界配置默认路由,既不影响内网的数据传输,也不影响内网用户访问外部互联网。
浮动静态路由
浮动静态路由的实验场景
静态路由的负载均衡:
这两条静态路由的目的网络地址及网路掩码都相同,而且分别采用不同的下一跳地址,在这种情况下,R2会比较这两条路由的优先级,由于这两条路由都是以手工的方式配置的静态路由,因为优先级缺省值都是60,因为这两条路由同时被加表。这种现象被称为路由的等价负载均衡,最终结果就是R2转发的流量,可能会同时使用R1及R3作为下一跳。减轻了链路的负担。
浮动静态路由实现方法:
但在某些情况下,希望R2发往10.9.9.0的流量,始终走单边,当R1故障,或R1-R2之间的互联链路发生故障时,R2能够自动将流量切换到R3,这该如何实现。这种情况就采用浮动静态路由来实现,实现方法为:就是当R2在配置路由两条路由时,将其中一条路由的优先级调高,这样路由优先级高的这条路由就会被潜藏起来,不会再路由表中体现。当优先级低的那条路由发生故障时,这条优先级高的路由则会浮现到路由表中,实现路径的切换。这就是浮动静态路由。
案例1:静态路由与BFD联动
BFD产生的背景:
静态路由配置起来非常方便,简单,然而其短板也是非常明显的——它无法根据拓扑的变化做出动态响应,
实验拓扑:
实验拓扑讲解:
R2通过以太网链路分别连接到出口路由器R1及R3,在R1与R2之间隔着一台以太网交换机,这台以太网交换机不做任何配置,在该网络中仅发挥数据帧透传的作用。现在网络的需求是R2能够访问10.9.9.0/24,而且在网络正常时,R2将到达10.9.9.0/24的数据包转发给R1,而当R1发生故障时,或者R1与R2之间的某段链路发生故障时,R2自动将数据包的转发路径进行切换,将到达该网段的数据包转发给R3。
BFD的出现:
然后仅依靠上述配置时不够的,经过测试你会发现,当R2的G0/0/0接口发生故障或者SW与R2互联的链路发生故障时,R2都能够感知到,此时G0/0/0接口的物理状态会变为Down,则该接口的静态路由就会失效,R2会将其从路由表中删除。随后去往R3的备份路由就会浮现出来,但是如果R1发生故障或者R1与SW互联的链路发生故障时,R2是无法感知的,在这种情况下R2的路由表中10.9.9.0/24路由的下一跳依然是10.1.12.1。而事实上10.1.12.1已经不可达了,这样以后备份路由就无法浮现,从而通信就断了。
BFD的具体实施方法:
可以在R1与R2上部署BFD来检测双方直连接口的IP连通性,BFD在R1与R2之间开始工作后,两者会周期性地交互BFD报文,当R1及R2之间的连通性出现问题时,双方的BFD报文交互也将发生问题,此时R1与R2都能通过BFD感知到网络的变化。当我们在R2上配置静态路由时,可将下一跳为R1的静态路由与BFD进行联动,当BFD检测状态为UP时,这条路由能够正常工作,而当BFDdown时,静态路由会立即失效,从而使备份路由能够浮现。
BFD的命令:
见《HCNP路由交换学习指南》第一章静态路由部分。
案例2:静态路由与NQA联动
NAQ的介绍:
NAQ是一个非常强大的工具,主要用于对网络的性能检测及运行状况分析,通过在设备上部署NQA,网络管理员可以对网络的响应时间、网路抖动、丢包率等信息进行统计,从而能够实时采集到网络的各项运行指标。
NQA所支持测试的协议:
DHCP、DNS、FTP、HTTP、ICMP、SNMP、TCP、Trace、UDP等
NQA的原理:
NQA可以和静态路由联动,假如在实验环境当中,我们配置了两条静态路由来实现浮动静态路由的策略,此时我们将主链路与NQA进行联动,当主链路发生故障时,nqa会自动检测出来,检测出来后,主链路的静态路由就会消失,而那条被隐藏的备用静态路由就会浮现出来,它的原理和BFD基本相似。
NQA的配置:
见《HCNP路由交换学习指南》第一章静态路由部分。
案例3:A与B互Ping问题
案例场景一描述:
A能pingB,但是B无法ping通A。此现象发生在一个典型的场景中,就是在防火墙组网中,位于两个不同安全区域的主机构成的拓扑。
案例一的实验拓补:
案例场景一的解释:
之所以A能Ping通B,B无法PIng通A的原因是因为A是安全区域,B是不安全区域,为了保证安全区域内PC的安全,所以在防火墙部署了安全策略,允许安全区域内的PC主动访问不完全区域内的PC,反之则禁止。
在这个案例当中有两个不同的现象,就是PC1访问PC2时去程流量能够被防火墙检测通过并放行,而PC1访问PC2所触发的,PC2发送的回程流量,也能够被防火墙放行。因此在这个场景当中,PC1能够Ping通PC2,而PC2无法ping通PC1。
为什么PC2响应PC1的访问时所产生的回程流量能够被防火墙放行,而PC2主动访问PC1的流量无法穿越防火墙?流量同样是从不安全区域到安全区域,为什么会区别对待?实际上这与防火墙的工作机制有关,目前行业中多数的防火墙都是状态化防火墙,当一个会话的首包顺利通过防火墙的安全检查并被其转发时,防火墙会为该会话动态的产生一个状态化信息,这个信息就是会话表项,该表项包含着这个会话的5元组信息(原Ip地址、目的Ip地址,协议类型,源端口号及目的端口号),而回程流量由于拥有相匹配的五元组信息,因此防火墙根据会话表项的查询,判断出该流量为一个已知会话的回程流量,于是会将其放行。而PC2主动访问PC1,防火墙查询会话表项后,发现并无相匹配的表项。而安全策略又禁止了这些流量,因此PC2主动发往PC1的流量将被丢弃,这就是PC2无法ping通PC1的原因。
案例场景二的描述:
除了防火墙组网经常容易出现A能pingB,但是B无法ping通A的现象,纯路由器组网也可能会遇到类似现象。网络管理员在R1上使用ping1.1.1.1命令测试到PC的可达性时,发现结果是成功的,但是从PC却无法ping通R1的接口地址10.1.12.1.
案例二的实验拓扑:
案例场景二的解释:
见《HCNP路由交换学习指南》第一章静态路由部分。
案例4:静态路由在以太网接口中的写法及路由器的操作
动态路由协议及分类
基于协议算法的分类
距离矢量路由协议
每一台运行距离矢量路由协议的路由器都会周期性的将自己的路由表通报出去,其直连的路由器会收到这些路由信息,在学习前者通告的路由并更新自己的路由表后,他也会向自己直连的路由器通告其路由表,最终网络中的每台路由器都能获知到达各个网段的路由,这就是距离矢量路由的运行原理。
链路状态路由协议
链路状态路由协议与距离矢量路由协议不同,运行链路状态路由协议的路由器会使用一些特殊的信息描述网络的拓扑结构及IP网段,这些信息被称为链路状态信息,所有的路由器都会产生描述自己直连接口状态的链路状态信息,路由器将网络中所泛洪的链路状态信息都搜集起来,并且存入一个数据库中。这个数据库就是链路状态数据库,链路状态数据库可以视为对整个网络的拓扑结构及IP网段的描述,所有路由器拥有对网络的统一认知,接下来所有的路由器都基于链路状态数据库,使用特定的算法进行计算,计算的结果是得到一颗以自己为根的无环的最短路径树,并将基于这棵树得到的路由加载到路由表中,典型的链路状态路由协议有ospf、is-is
基于工作范围的分类
内部网关协议IGP
RIP、OSPF、IS-IS
外部网关协议EGP
BGP
最长前缀匹配
最长匹配机制:
当路由器收到一个Ip数据包时,它会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位比对,直到找到匹配度最长的条目,这就是最长前缀匹配机制。
实验场景:
路由器R4的路由表中除了直连路由之外,还有三条路由他们分别是:172.16.1.0/24、172.16.2.0/24、172.16.0.0/16。这三个路由条目分别关联不同的出接口和下一条Ip地址,那么当R4收到一个到达172.16.2.1数据包时,他将把数据包转发给哪一台路由器?
实验解读:
1:将报文的目的IP地址172.16.2.1和路由条目1的目的网络掩码255.255.255.0进行逻辑与运算,将运算结果与路由条目1的目的网络地址前面的24字节进行比对,发现有两个比特位不相同,因此判断这个目的IP地址与路由条目1不匹配,R4将不会使用这条路由器转发到达172.16.2.1的数据包,
2:将目的Ip地址172.16.2.1和路由条目2的目的网络掩码255.255.255.0进行逻辑与运算,将运算结果与路由条目2的目的网络地址的前面24字节进行对比,发现每一个比特位都是相同的,因此该目的Ip地址匹配这条路由,而且匹配结果是172.16.2.0/24,也就是说匹配长度为24,
3:将目的Ip地址172.16.2.1和路由条目3的目的网络掩码255.255.0.0进行逻辑与运算,将运算结果与路由条目3的目的网络地址前面的16字节进行对比,发现每一个比特位都是相同的,因此该目的Ip地址匹配这条路由,而且匹配结果是172.16.0.0/16,也就是说匹配长度为16。
4:有两条路由匹配目的Ip地址172.16.2.1,路由条目2的匹配结果为172.16.2.0/24,而路由条目3的匹配结果为172.16.0.0/16,因此条目2的匹配度更长,最终R4将采用路由条目2来转发到达172.16.2.1的数据包,这些数据包被转发给R2。
上述描述就是最长匹配原则。
路由汇总
路由汇总的概念:
路由汇总又被称为路由聚合,是将一组有规律的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这一条路由称为汇总路由或聚合路由。
实验场景:
对于R1而言,如果要到达R2右侧的192.168.1.0/24、192.168.2.0/24........192.168.255.0/24,自然是要有路由得,若手工为每一个网段配置一条静态路由,这就意味着要给R1手工配置255条静态路由,显然工作量太大了,R1的路由表也会变得非常臃肿。
实验说明:
路由汇总可以很好的解决这个问题,原来需使用255条明细路由,而运用路由汇总的思想后,仅仅使用一条路由即可实现相同的效果。
路由汇总的具体步郰:
条件:
现有明细路由:172.16.1.0/24、172.16.2.0/24.......172.16.31.0/24、请计算出关于这些明细路由的、最精确的汇总路由。
方法:
黑洞路由
黑洞路由得概念:
一条路由无论是静态的或者是动态的,都需要关联到一个出接口,路由的出接口指的是设备要到达一个目的网络时的出站接口,路由的出接口可以是该设备的物理接口,如百兆、千兆以太网接口,也可以是逻辑接口。如VLAN接口。在众多类型的出接口中,有一种非常特殊,那就是NULL(无效)接口,这种类型的接口只有一个编号,也就是0,Null0是一个系统保留的逻辑接口,当网络设备在转发某些数据包时,如果使用出接口为Null0的路由,那么这些报文将被直接丢弃,就像被扔进了一个黑洞里,因此出接口为Null0的路由又被称为黑洞路由。
实验场景:
R1的G0/0/0连接着一个终端网络,处于该终端网络的PC将默认网关设置为R1的G0/0/0接口IP地址,而为了让PC能够访问R2右侧的服务器网络,我们在R1上配置一条默认路由,当PC访问本地网段192.168.1.0/24之外的资源时,流量都会先被发往R1,然后由R1转发给R2,现在网络中出现这样一个需求:在服务器网络中,有一个特殊网段(192.168.200.0/24)并不希望被PC访问,能否通过路由配置来实现这个需求?
实验场景解决方法:
可以通过配置解决,方法就是在R1上配置这条命令:ip route-static 192.168.200.0 255.255.255.0 NULL 0。使用上述命令可以为R1增加一条到达192.168.200.0/24的路由,而这条路由得出接口是Null0,故如果有访问该地址的路由会直接被丢弃。这就是黑洞路由得概念。
路由表与FIB表
见《HCNP路由交换学习指南》第一章路由表与FIB表部分。