type
status
date
slug
summary
tags
category
icon
password
IP路由概述

当路由器收到一个IP报文时,路由器根据该IP报文的目的地址匹配路由条目(路由表项)
- 若有匹配的路由条目,则依据该条目中的出接口或下一跳等信息进行报文转发。
- 若无匹配的路由条目,则路由器没有相关路由信息用于指导报文转发,此时会丢弃该报文。
RIB与FIB

具有路由功能的网络设备都维护两种重要的数据表:
- 路由表(RIB):
- 可以将路由表视为位于路由器的控制平面,实际上路由表并不直接指导数据转发。路由器在执行路由查询时,并不是在路由表中进行报文目的地址的查询,真正指导数据转发的是FIB表,路由器将路由表中的最优路由下载到FIB表,此后如果路由表中的相关表项发生变化,FIB表也将立即同步。
- 由于两张表的一致性,且路由表阅读起来更直观,因此在绝大多数场合,在阐述路由器数据转发过程时,会用“路由表”,实际上,路由器查询的是FIB表,位于控制层面的路由表只是提供路由信息。
- 转发表(FIB表)
- FIB表位于路由器的数据平面,亦或称为转发表项,每条转发表项都指定要到达某个目的地所需通过的出接口及下一跳IP地址等信息。
- OSPF(Open Shortest Path First,开放式最短路径优先)和IS-IS(Intermediate System to Intermediate System,中间系统到中间系统),均基于链路状态信息,使用最短路径优先算法进行路由计算。
- 路由进程:路由器支持OSPF和IS-IS多进程,可以根据业务类型划分不同的进程,不同的进程之间相互独立。进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
每个路由器都有路由表,而路由表又分为本地核心路由表和协议路由表

Destination | 表示此路由的目的地址,用来标识IP包的目的地址或目的网络 |
Mask | 表示此目的地址的子网掩码长度,与目的地址一起来标识目的主机或路由器所在的网段的地址。 |
Proto(Protocol) | 表示学习此路由的路由协议 |
Pre(Preference) | 表示此路由的路由协议优先级。 路由器分别定义了外部优先级和内部优先级。外部优先级是指用户可以手工为各路由协议配置的优先级,内部优先级则不能被用户手工修改。 选择路由时先比较路由的外部优先级,当不同的路由协议配置了相同的优先级后,系统会通过内部优先级决定那个路由协议发现的路由将成为最优路由。 |
Cost | 路由开销 |
NextHop | 表示转发到此目的的网络的下一跳。指明数据转发的下一个设备。 |
Interface | 表示转发到此目的网络的出接口。指明数据将从本地路由器那个接口转发出去。 |
- Preference用于不同路由协议间路由优先级的比较。
- Cost用于同一种路由协议内部不同路由的优先级的比较。
IP路由查找的最长匹配原则
- 路由器查找FIB表时,将报文的目的IP地址和FIB表中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表中的网络地址则匹配。
- 最终选择一个掩码最长的FIB表项转发报文。

- FIB表中每条转发项都指明到达某网段或某主机的报文应通过路由器的哪个物理接口或逻辑接口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。
- FIB表信息查看命令:display fib [ slot-id ]
- slot-id:显示指定槽位号的FIB表信息。整数形式,取值范围请根据设备实际配置选取。
- FIB表中的字段说明:
- Total number of Routes:路由表总数。
- Destination/Mask:目的地址/掩码长度。
- Nexthop:下一跳。
- Flag:当前标志,G、H、U、S、D、B的组合。
- G(Gateway):网关路由,表示下一跳是网关。
- H(Host):主机路由,表示该路由为主机路由。
- U(Up):可用路由,表示该路由状态是Up。
- S(Static):静态路由。
- D(Dynamic):动态路由。
- B(Black Hole):黑洞路由,表示下一跳是空接口。
- TimeStamp:时间戳,表示该表项存在的时间,单位是秒。
- Interface:到目的地址的出接口。
- TunnelID:表示转发表项索引。该值不为0时,表示匹配该项的报文通过隧道转发(如:MPLS隧道转发)。该值为0时,表示报文不通过隧道转发。
路由的来源

- 直连路由:直连接口所在的网段的路由,由设备自动生成。
- 静态路由:由网络管理员手工配置的路由条目。
- 动态路由:路由器通过动态路由协议(OSPF、IS-IS、BGP等)学习到的路由。
- BGP(Border Gateway Protocol,边界网关协议)是一种实现AS(Autonomous System,自治系统)之间的路由可达,并选择最佳路由的距离矢量路由协议。
- AS是指在一个实体管辖下的拥有相同选路策略的IP网络。
动态路由协议

- 内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部运行。常见的IGP协议包括OSPF和IS-IS。
- 外部网关协议EGP(Exteriof Gateway Protocol):运行于不同自治系统之间。BGP是目前最常用的EGP。
路由迭代
- 路由必须有直连的下一跳才能够指导转发,静态路由或BGP路由的下一跳可能不是直连的邻居,因此需要计算出一个直连的下一跳,这个过程就叫做路由迭代。

数据转发流程

- PC1发送数据包到PC2的流程
- PC1将报文发往网关设备R1。
- R1查找路由表项,确定转发的下一跳、出接口,之后将报文转发给R2。
- R2通过查找路由表项转发给R3。
- R3收到后查找路由表项,发现IP报文的目的IP地址属于本地接口所在网段,则直接本地转发,最终该报文被发往目的主机PC2。
- Author:KingCode
- URL:https://kingcode.dpdns.org/article/5f8c3cda-ef79-47f3-9b4c-83c8e68a39f7
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!







