Skip to content

Commit a2c33d3

Browse files
committed
routing: Note that RPDB is a linear table
1 parent b196673 commit a2c33d3

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

docs/ops/network/routing.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,10 @@ broadcast 192.0.2.255 dev eth0 proto kernel scope link src 192.0.2.1
160160

161161
在 Linux 中,路由决策的过程分为两个阶段:
162162

163-
1. **路由规则匹配**:根据数据包的特征(如源地址、目的地址、TOS 等)在路由规则列表(Routing Policy DataBase,RPDB)中查找匹配的规则,确定使用哪个路由表;
163+
1. **路由规则匹配**:根据数据包的特征(如源地址、目的地址、TOS 等)在路由规则列表(Routing Policy DataBase,RPDB)中查找匹配的规则,确定使用哪个路由表。
164+
165+
注意路由规则是一个线性表,内核会按顺序逐条考察规则,因此过多的路由规则会影响路由决策的效率。相比之下,路由表的前缀树结构可以高效地进行前缀匹配。
166+
164167
2. **路由表查找**:在选定的路由表中查找匹配的路由规则,决定数据包的去向。
165168

166169
特别地,如果路由规则的类型为 `throw`,则跳出当前路由表,继续考察后续的路由规则。

0 commit comments

Comments
 (0)