路由基础这一节的复习没有看任何老师的讲解视频,而是看了《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,但路由器却有两条这样的路由:
条目1:172.16.0.0/16 192.168.1.1
条目2:172.16.2.0/24 192.168.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没有递归查询成功
- 说出两种路由负载分担的方法
- 通过优先级做浮动路由
- 通过最长掩码的规则影响对端路由