提示:本文是介绍linux如何实现ipv4路由! IPv4使用32bit地址,所以IPv4地址就有32个不同的网络掩码长度,再加上/0,就是33个不同的网络掩码长度,/0表示缺省路由。 路由子系统对每一个网络掩码长度维护一个不同的哈希表。 路由表项是由多个不同的数据结构来描述的,每个数据结构描述不同片段的路由信息。 每个网段(subnet)对应一个fib_node实例,用变量fn_key来表示,它的值为网段。例如对子网10.1.1.0/24而言,fn_key为10.1.1。注意:fib_node结构(即该结构中的fn_key变量)与一个网段相关,而不是与一条路由表项相关。多条路由表项可能都有相同的网段。 有相同网段的路由表项(即fn_key相同)共享同一个fib_node。每一条路由表项有各自的fib_alias结构。例如:可能有一些路由表项,它们的网段相同而只是TOS值不同:每一个fib_alias实例因而有不同的TOS值。每个fib_alias实例与一个存储真正路由信息(即如何到达目的地)的fib_info结构相关联。 对于一个fib_node实例,相关的fib_alias实例链表按照IP TOS(即fa_tos字段)的递增顺序排列。fa_tos值相同的fib_alias实例按照相关的fib_info中fib_protocol字段的递增顺序排列。 #####请转贴时保留以下内容###### |
不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流
GMT+8, 2025-11-2 20:24 , Processed in 0.029379 second(s), 15 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.