天天看点

路由基础-第一章

目录

​​第零层:前言​​

​​第一层:路由基础​​

​​第二层:静态路由​​

​​第三层:动态路由​​

第零层:前言

路由基础这一节的复习没有看任何老师的讲解视频,而是看了《hncp路由交换指南》的路由基础这一章节之后的自我梳理。在一年之前看《hcnp路由交换指南》的时候还是一种“不识庐山真面相,只缘身在此山中”的感觉,现在再看时就能够把握住作者想说的话和每一章的结构,能基本上理解每一句话,能大概判断下一句话要讲什么,感觉真的是太棒了!当我写这篇自我梳理的时候,我认为我完全没必要按照作者对这一章节的架构来梳理,完全可以按照自己的方式。

当看完整个章节之后,发现整个章节都是围绕着路由表扩展开始讲的。

路由表里面有协议这一字段,这一字段扩展来讲其实也没有什么好讲的,无非是直连、静态、动态、而动态又分距离矢量和链路状态路由这两种类型,这一字段其实是概括性的,没什么好说的;

还有目标网络和掩码这一字段,这一字段里面讲了路由匹配和最长掩码匹配这两个重要的知识点。在下一跳接口和下一跳ip这里知识点比较重要,强调了各种路由书写方式导致的不同后果,既然讲到下一跳接口,又扩展到路由黑洞,通过路由黑洞又可以扩展出路由汇总、nat这些知识点;

优先级和度量值也是相对简单的,讲了路由是如何匹配的,当遇到不同的情况路由器是如何处理的,以及利用优先级可以做浮动路由,通过浮动路由双引出了企业双链路负载均衡;最后通过静态路由的缺点又引出了nqa和bfd;

标记位,通过标记引出了fib和路由表,其实fib是可以与路由书写那个小节产生联系,可以让我们更好的理解;

另外,作者这一章节还”抖了两个激灵“,一个是在路由书写时如果书写错误会导致意外,但通过一种手段(arp代理)就能弥补这个错误;另一个是在路由汇总这一个小节当中,如果真的汇总错误之后,我们还可以通过路由黑洞加入弥补。

作者在最后的环节出了几道题目,有几道题目真的有点意思,我虽然可以答出一些答案,但是无法将这个问题回答完美,比如这个问题有三个答案,我能回答出来两个,但也从侧面反应出我对知识的整合是不足的。

第一层:路由基础

什么是路由?

路由就是转发,什么转发呢?就是根据目标ip查找路由表进行转发。

路由表里面有什么内容?

协议、目标ip和掩码、下一步接口和ip、优先级和度量值、标记

路由条目当中的协议是什么意思?

代表着通过什么途径得到这个路由协议,比如静态or动态orospf

优先级是什么意思?越大越好还是越小越好?

优先级就是路由匹配时候用到的优先级,路由协议有很多,有的优秀,有的不那么优秀,就是通过优先级来区别,越是优秀的路由协议优先级越小,越小也就意味着越高,使用的几率就会越大。

优先级什么时候会起作用?

当通过不同的路由协议学到去往同一个目标网段的路由时,优先小的优先使用。

说一下直连、静态、rip、ospf、mpls、isis、bgp各自的优先级是多少

直连是0,静态是60,ospf内部路由是比较优秀的,仅次于直连是10,isis又次于ospf是15.

rip是100,ospf_ase和nssa都是150,bgp的ibgp和ebgp都是255.

直连路由被加载到路由表的前提是什么?

物理接口状态和协议状态都必须是up的才可以。

cost、度量值是什么意思?

就是开销的意思,就是从源到目标要用多少开销。

cost开销的意义

优先级是规定死的,不能更改的,但是开销是可以更改的,对于从同一种路由协议学到的路由条目,这时候无法通过比较优先级了,因为优先级是一样的,这时候就得开销出马了。

像是rip、ospf的开销都得是根据实际情况来的,静态和直连的的开销默认都是0.

第二层:静态路由

静态路由其实很简单,只要配置的时候稍微注意一点,还要掌握与其关联的三个东西:浮动路由、bfd、nqa

在配置静态路由时,什么时候必须指定下一跳ip?

广播多路访问(bma)环境当中,比如以太网环境当中,有很多主机,如果仅指定下一跳接口,设备不知道将数据包交给谁。

在配置静态路由时,什么时候不需要指定下一跳ip?

在点到点的环境当中,这个时候只需要指定出接口也可以,因为这个接口只对应一台主机,不会出错。

如果一个路由条目的优先级一样、开销也一样,比如两条静态路由优先级都是60,开销也一样,怎么选择呢?

面对这种一模一样的环境,路由器也会傻眼了,会形成负载分担的结果;

如果想破坏这种负载分担的场景,变成一主一备怎么搞呢?

其实很简单了,将其中的一条路由的优先级更大一点,让其中一条胜出就可以了,当主的挂了,备的会自动顶上。

什么时候会用到上述这种机制?

比如说有两个公网出口的时候,这样的备份就会好很多;

静态路由与浮动路由之间有什么关系?

当有两种等价的静态路由条目,优先级和开销都一样时,会用到修改开销的方式隐藏一条路由,等到正在用的那一条消失后,自动浮出来,这就是两者之间关系

直连和静态路由什么时候会消失?

当所指向的接口断电之后,路由就会消失。

这种断电消失的机制有什么问题?

如果我在两个路由器之间加一个交换机,断交换机一个接口,另一个接口所接入的路由器因为感知到路由器的接口还有电,所以路由并不会消失,可是路明明已经断了。

怎样避免这种问题?

bfd和nqa

bfd与nqa与调用它们的路由条目是什么关系?

是串连关系,我行你才行,我不行你也不行,bfd和nqa行,调用它们的路由条目才生效,如果bfd和nqa不行,静态路由条目也会立马失效;

bfd里面最重要的关键词是什么?解释一个这个关键词的意思?

bfd(bidirectional forwarding detection双向转发检测),最重要的关键词是“双向”,bfd其实有点意思,两端都需要配置,两端相互做为客户端和服务端,平时有规律交互心跳报文,任何一端只要发现对端不通了,就会通知bfd关联的的静态路由消失。

nqa是什么?

nqa(network quality analysis网络质量分析),这个naq有点zabbix的意思,能做的事情很多,可以调用很多的探测工具,调用icmp、dns、http都是很正常的,我们可以让其调用icmp,做一个单向的探测,模拟zabbix的简单探测,不需要被监控端做什么。

同样的,需要关联静态路由,与静态路由关系依然是串行的关系,一旦naq探测失败了,就会让静态路由也失效。

bfd与nqa有什么区别?

bfd是双向的,而nqa可以是单向

路由下一跳仅指下一跳接口

我们我们故意在一个广播多路访问环境当中指路由时不指下一跳ip,就要指一个接口,这意味着什么?为什么要指下一跳时尽量不要指接口?

因为一旦指了接口,就会让路由器偷懒不再计算,认为目标网段就是自己的直连接口,去往目标网段的时候就直接发arp广播!

还有一种情况,下一跳ip和接口都指了,接口指对了,但下一跳ip指错了,这时候数据是怎样转发的?

在这种情况下,下一跳接口和下一跳ip就是关联关系,路由器在收到目标网段的数据时,会通过下一跳接口arp广播询问下一跳ip的mac,如果询问不到,那就完蛋了。

以后两种情况下,怎样通呢?

在对端接口上开启了arp代理,这样如果对端设备拥有目标网段的路由时,就会用自己的mac地址进行回应。

存在仅指ip

把ip指对了,就特别正常,下一跳掊会自动被上,如果把ip指错了,这时候就又分为两种情况。

如果下一跳ip是可以根据已知路由推算出来的,那这时候路由器会纠正下一跳,纠正之后会有fib表当中体现,如果是静态这么写的:”告诉a设备去往d需要通过c的转发“,经过查询路由表发现去往c需要经过b,这时候a设备会自动将纠正将去往d的流量交由b来转发,下一跳是b的ip,通过b的ip再来计算下一跳接口。

如果从已知的路由条目当中无法找到去往目标路由的下一跳时,将不会在路由表当中体现出来

如果我们即指了下一跳接口,又指了下一跳ip,对路由来着意味着什么?

如果两者都皆有,路由器会直接加载,路由器会认为去往目标网段交给此下一跳ip,会在发送者arp广播下一跳的mac,如果下一跳能收到就还正常,如果因为写错了,就不可到达了,如果通过一些小手段,比如arp代理之类的也能解决。

第三层:动态路由

距离矢量和链路状态路由最关键的区别

一个通告的是链路状态,另一个通告的是路由信息,这就导致一个现象,那就是距离矢量路由协议不知道整个网络的拓扑,它只知道去哪里该怎么走、有多远(跳数)

距离矢量路由协议是以什么做为度量值?距离矢量将直连网段的度量值做为多少?通告时怎么做?

跳数,距离矢量路由协议将直接路由的度量值做为0,但通告给其它路由器的时候要加1。

最长掩码匹配

路由条目的最长匹配是怎么匹配的?

所谓的路由匹配最长原则就是拿目标ip与路由条目的掩码做与运算得出目标地址的网络位,与路由条目的网络位做对比,拿哪一个路由条目能匹配的上,如果网络位一样,就按照路由条目的指向进行转发。

什么情况下会匹配到两条路由呢?

比如目标ip是172.16.2.1,但路由器却有两条这样的路由:

按照最长匹配原则,这两条都能匹配的上,但用的时候会用条目2,因为条目1前16位和目标ip是网络位是一样的,而条目2,前24位和目标ip的网络位是一样的,24比16要长,所以要用条目2,这就是最长匹配原则。

还可以利用最长匹配原则来做什么?

利用最长匹配原则其实是可以影响对端路由器的,比如两个路由器都运行rip,那宣告的时候可以通过改变宣告掩码的长度影响对端路由器的转发。

如果两条带宽用的不是动态的rip,而是静态的话,那用什么办法呢?

用优先级做浮动路由就可以

路由汇总

路由汇总的子网掩码是向哪个方向移动的?

是向左边移动的

什么情况下会引发路由环路的情况发生?

比如r1连接三个网段192.168.1.0、192.168.2.0、192.168.3.0,默认网关指向了172.16.0.1这个r2路由器,而r2路由做了错误的汇总,将192.168.0.0/16的下一跳全都回指向了r1路由器,这种情况下,如果有黑客登录到了r1路由器发送目标是192.168.3.x的垃圾报文,这时候r1指向r2,r2又指向了r1,会不断的循环。

如果真的发生上述情况,应该怎么避免呢?

通过路由黑洞,在r1上配置ip route-s 192.168.0.0/22 null0,这样r1再遇到发往192.168.3.x的报文时会直接丢弃

上述黑洞会不会误伤?为什么?

还是因为最长匹配的原则

在配置nat的什么情况下,会用到路由黑洞?

fib

路由表和fib表的区别?

路由表和fib的信息是同步的,但是fib表人更难以理解,fib的转发速度更快,用的是特殊的存储方式,猜是一种键值存储,读取速度非常快,fib更真。

路由表当中的rd和d是什么意思?

d是已经下载到fib表的意思,r是递归的意思。

什么时候会出现r?

出现r意味着路由表和fib可能下一跳ip会不一致。

在这里可以与配置静态路由时的注意事项关联一下

配置了静态路由但是却没有生效,三种原因

接口down

去往同样目标网段的另一条路由优先级更高

下一跳ip没有递归查询成功

说出两种路由负载分担的方法

通过优先级做浮动路由

通过最长掩码的规则影响对端路由