路由器数据转发原理,路由表、FIB、快速转发表的关系
-
路由的控制平面与转发平面
-
控制平面:负责路由计算,维护;路由协议运行在控制平面
-
转发平面:进行数据包的封装,报文转发,路由表,FIB表,快速转发表等
-
控制平面与转发平面相互独立又协同工作
-
-
路由器检查数据包的目的 IP 地址,用数据包的目的 IP 地址查询路由表,在路由表中对所有路由条目遍历,最终按照能匹配的掩码最长的路由进行转发
-
基于最长匹配机制,路由表规模太大后,将会大幅降低查表速度,从而影响转发效率。同时为了做到控制平面与转发平面完全隔离,构建了FIB表,所以设计了 FIB 表,FIB 表来自于路由表中 Active 状态的路由和 ARP表,FIB 表规模大幅小于路由表,所以数据转发查询 FIB 表,速度会更快
-
FIB 表和路由表一样都属于最长匹配的表项,所以能够提升的查询速度也较有限。所以引入了快速转发表
-
快速转发表是针对数据五元组信息的精确匹配表项。当一组五元组相同的数据流的首包进入路由器,路由器会通过查 FIB 表来完成转发,并根据转发结果来产生该五元组的快速转发表项。后续五元组相同的数据包再进入路由器,就查询到快速转发表,按照快速转发表来完成转发;由于快速转发表项是精确匹配,无需遍历整个表项,所以查表速度可以大幅提升;(源IP地址,源端口号,目的IP地址,目的端口号,协议号)
路由备份与路由负载
-
路由备份指的当一台路由器上有多条路径到达目的网段,配置不同来源的路由走不同路径,按照路由写表规则,会选择优先级数字最小的路由成为 Active 路由,其他路由成为 Inactive 路由。当 Active 路由故障后,路由器会在 Inactive 路由中选择优先级数字最小的成为新的 Active 路由
-
路由负载则是在路由器上配置同一来源的路由,如果 Cost.相等,就会在多条路径上产生等价路由,从而实现到达目的网段流量的负载分担
-
实际使用中,如果不同路径的带宽相差太大,建议使用路由备份,如果不同路径的带宽接近,则建议使用等价路由来负载
什么是浮动静态路由
-
场景:当网络中存在两个出口,一个出口是高速链路,一个是低速。一般会在高速出口上运行路由协议来传递路由,而低速链路为了节省带宽,都会配置静态路由如果高速链路上运行的是 RIP 协议的话,根据路由写表规则,路由器会选择静态路由作为最优路由,而不会选择 RIP。这样就会导致低速链路成为了主链路而高速链路成为了备份链路,不符合真实需求
-
浮动静态路由就是指把静态路由的优先级数字改大,使路由协议的路由能够成为 Active 路由、而静态路由成为 |nactive 的备份路由。这样高速链路就会成为主链路、当主链路故障、静态路由就会被立即切换为 Active 路由,形成路由备份的效果
路由聚合的意义以及路由聚合的注意事项
-
路由聚合是指把多条明细路由合并为一条,来缩小路由表规模,加快路由查表速度,以及提高路由表稳定性的技术,通常也将路由聚合称为路由汇总
-
要把多条路由聚合为一条,需要满足如下条件:
-
被聚合的路由必须是连续的子网
-
对 IGP路由进行聚合时,聚合路由中所包含的所有子网必须是同一下一跳或出接口,对手BGP路由进行聚合时,只要在 BGP表中存在的明细路由都可以进行聚合
-
-
路由聚合在某些情况下会产生环路
-
当两台路由器互相对路由进行聚合,聚合的范围过大,聚合路由中包含了网络中不存在的子网时,一旦有数据包访问不存在的子网,就会导致该数据包在两台路由器之间形成路由环路。解决方法是配置精准的聚合,尽量不要使聚合的路由中包含不存在的子网
-
-
如图,当 RTA 对本机上的子网路由在 RIP 中进行聚合后传递给 RTB,同时RTA 配置了缺省路由指向RTB。网络正常时没有环路。但当 RTA 的某个子网故障后,该子网的明细路由在路由表中消失。如果有数据包访问该故障就会导致RTA 按照缺省路由把数据包发往 RTB,RTB 收到后会按照合路由发送给RTA,形成环路。解决方法是在 RTA上配置黑洞路由(即出接口指向 null0 的路由),目的网段与聚合路由一致。当子网故障后,再有访问故障子网的数据包,基于最长掩码匹配规则,RIA 会按照黑洞路由丢弃数据包,而不是匹配缺省路由发往RTB
-
-
路由表的来源,以及路由表路由优选规则
-
路由表的来源可分为直连路由、静态路由、路由协议
-
直连路由:根据路由器的直连接口所在网段自动产生的路由。只要接口 UP并配置了 IP地址,就会产生直连路由
-
静态路由:手动配置的到达每个目的网段的路由,大规模网络中配置维护复杂,但没有协议开销
-
路由协议:配置维护简单,路由器会自动传递并学习路由,但是会消耗系统资源
-
-
路由优选规则:
-
不同来源的路由优先级数字小的优先。如果手动把不同协议的优先级改成一致,按照默认优先级进行优选
-
同一来源的路由,对比度量值,小的优先
-
同一来源,度量值相同,会自动形成等价路由
-
-
常见协议的优先级/管理距离
路由协议的优先级
-
路由器分别定义了外部优先级和内部优先级。外部优先级是指用户可以手工为各路由协议配置的优先级,路由协议的内部优先级则不能被用户手工修改。
-
同一个设备对于自身不同路由协议都设置相同的路由优先级时,则根据不同协议的内部优先级比较,所以内部优先级不能被修改;
-
~设备通过OSPF5类和7类学到路由,优先选谁?内部优先级一样,不具备可比性;①类型1>类型2;②比开销③负载
-
默认的外部优先级和默认的内部优先级
什么是最长掩码匹配规则
-
当数据包在路由器中同时匹配多条掩码长度不同的路由时,会按照掩码最长的路由进行转发。因为掩码越长,意味着网络越精确。所以当同时存在明细路由聚合路由,缺省路由时,优选顺序是明细路由>聚合路由>缺省路由
什么是路由选代规则
-
当路由表查询到下一跳地址是非直连地址后,路由器会将下一跳的地址再次询路由表,直到查询到下一跳地址是直连地址为止
-
路由迭代也称为路由的递归查询,可能需要查找多次
路由协议有哪些?分别工作在第几层?各有什么特点
-
RIP>UDP(基于 UDP 端口 520)>应用层>距离矢量路由协议(跳数、水平分割、路由毒化、毒性反转、触发更新、定时器)
-
OSPF>IP(基于IP 排议号 89)>网络层>链路状态路由协议(分区域、SPF 算法、多种 LSA)
-
ISIS>Ethernet Pame>802.3>链路状态路由协议(分区域、SPF 算法)
-
BGP>TCP(基于 TCR 端口 179)>多应用层>承载大量的路由(丰富的路由策略工具)
路由协议的分类
-
根据作用的范围,路由协议可分为:
-
内部网关协议(简称IGP):在一个自治系统内部运行,常见的IGP 协议包括 RIP、OSPF 和IS-IS。
-
外部网关协议(简称EGP)运行于不同自治系统之间,BGP 是目前最常用的 EGP 协议。
-
-
根据使用的算法,路由协议可分为
-
距离矢量协议:包括 RIP和 BGP。其中,BGP 也被称为路径矢量协议。
-
链路状态协议:包括 OSPF 和 IS-IS。
-
-
根据目的地址的类型,路由协议可分成:
-
单播路由协议:包括 RIP、OSPF、BGP 和 IS-IS 等。
-
组播路由协议:包括PIM-SM、PIM-DM、PIM-SSM 等。
-
距离矢量协议的特征
-
周期性、广播发送路由更新
-
路由更新中携带全部路由表,接收方据此更新自己的路由
-
超过一定时间接收不到路由更新报文,则认为此路由失效
-
以到目的网段的距离(跳数)作为度量值
-
拓扑变化以逐跳的方式扩散
-
路由收敛速度慢
-
采用距离矢量算法,可能导致路由环路
链路状态协议的特征
-
通过 Hello 报文来发现邻居
-
建立邻接关系后,只发送链路状态公告(LSA)
-
根据自己的链路状态数据库(LSDB)来计算路由
-
链路状态变化时,马上发送LSA 到区域内所有路由器
-
路由收敛速度快
-
采用 SPF算法无路由自环
路径矢量协议的特征
-
仅在邻居刚建立时发送全部路由表、邻居建立后只发送增量路由更新
-
如果邻居失效,则认为路由失效
-
丰富的路由属性作为度量值
-
拓扑变化以逐跳方式扩散
-
采用机制防止路由环路
-
(BGP)
实现 VLAN 间路由的方式以及各自的优缺点
-
路由器使用不同接口连接不同 VLAN,VLAN 内的 PC 把网关指向为路由器在本VLAN 的接口地址,VLAN 之间通过路由器进行三层通讯。该方式对路由器接口数量要求很高,路由器一般没有这么多接口
-
单臂路由技术:路由器单线连接到交换机的Trunk口,路由器在接口上划分子接口,不同子接口绑定不同 VLAN,并作为不同 VLAN 的网关地址。该方式不再受路由器接口数量限制,但是单线连接所有 VLAN,会导致性能负担太重,也容易造成单点故障,同时可能存在次优路径
-
使用三层交换技术:在三层交换机上配置 IP地址,对不同VLAN 的 PC 进行三层转发。该方式不受接口数量限制,也不用通过其他设备来完成三层转发。并且在三层交换机中,三层转发和二层转发时一次完成转发效率高
-
如何使用纯二层交换机实现不同 VLAN 的通信??
-
使用 hybrid 接口来实现
-
-
怎么实现两个 vlan 之间无法通信??
-
可以使用 ACL 进行流量过滤
-
配置黑洞路由的作用
-
黑洞路由是指出接口指向 Null0 接口的路由,NULL0 接口从不转发任何报文对于所有发到该接口的报文都直接丢弃,由于它的这个特征,NULL0 接口主要被用在以下两方面:
-
防止路由环路,在聚合一组路由时,总是创建一条到 NULL0 接口的路由
-
用于过滤流量,可以通过将不想要的报文发送到 NULL0 接口,避免使用访问控制列表。
-
-
黑洞路由是如何产生的
-
路由协议进行路由聚合时会针对聚合路由自动产生一条指向null0接口的黑洞路由
-
可以手工添加
-
-
黑洞路由vs路由黑洞(是一种现象,查表没有然后丢失)