目录
第零层:前言
第一层:路由基础
第二层:静态路由
第三层:动态路由
第零层:前言
路由基础这一节的复习没有看任何老师的讲解视频,而是看了《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没有递归查询成功
说出两种路由负载分担的方法
通过优先级做浮动路由
通过最长掩码的规则影响对端路由