Thank Zhihao Tao for your hard work. The document spent countless nights and weekends, using his hard work to make it convenient for everyone.
If you have any questions, please send a email to zhihao.tao@outlook.com
1. 网络名词
1.1 RIB-路由表
RIB存储所有路由协议学习到的路由信息。
1.1.1 RIB的特征
- 当目标地址不可达时,对应的路由条目先被标记为
Unreachable
,然后就删除。 - RIB不是用来进行IP包转发的(静态路由和BGP路由中某些条目的下一跳并不是一个直连的网络,必须进行递归查找,找到实际直连出口),也不会被宣告到网络中。其中包含:
- 通过动态路由协议学到的路由条目
- 直连网络路由
- 配置的路由条目,如静态路由
1.2 FIB-转发表
FIB转发表用于判断IP包的网络前缀,并进行转发。
1.2.1 FIB的特征
- 对于每一条可达的目标网络前缀,FIB包含接口标识符和下一跳信息。
- 维护一份RIB表中的转发信息镜像。
1.3 Flow-流
linux中,struct flowi4
表示流的基本组成。
组成 | 描述 |
---|---|
flowi4_oif | 输出网络设备索引 |
flowi4_iif | 输入网络设备索引 |
flowi4_proto | 四层协议号 |
fl4_sport | 源端口号 |
fl4_dport | 目的端口号 |
saddr | 源地址 |
daddr | 目的地址 |
flowi4_tos | TOS |