IPv4路由信息查看fib_trie
创建路由表10,并在其中添加三条路由项:
# sudo ip route add 1.1.1.0/24 via 192.168.2.2 table 10
# sudo ip route add 1.1.0.0/16 via 192.168.2.3 table 10
# sudo ip route add 1.0.0.0/8 via 192.168.2.4 table 10
#
# ip -d route show table 10
unicast 1.0.0.0/8 via 192.168.2.4 dev ens33 proto boot scope global
unicast 1.1.0.0/16 via 192.168.2.3 dev ens33 proto boot scope global
unicast 1.1.1.0/24 via 192.168.2.2 dev ens33 proto boot scope global
查看fib_trie文件。每个+号代表trie树的一个中间节点,其后的三个数字分别代表节点处理的比特位数量,节点full_children的数量,节点empty_children的数量。对于叶子节点,显示路由的scope和type。
对于节点1.0.0.0/15,其full_children节点为0,full_children节点定义为其处理比特位与父节点没有间隔的中间节点。其empty_children节点为2,由于此节点处理2个比特位,理论上是4个子节点,当前已经有一个叶子节点和一个中间节点。
# cat /proc/net/fib_trie
Id 10:+-- 1.0.0.0/15 2 0 2|-- 1.0.0.0/8 universe UNICAST+-- 1.1.0.0/23 2 0 2|-- 1.1.0.0/16 universe UNICAST|-- 1.1.1.0/24 universe UNICAST
路由查询由第一个节点1.0.0.0/15开始,查询前缀的前15位[0 14]需要等于[00000000 0000000],否则查询失败。此节点处理随后的2个bits,即15,16位,当查询的前缀比特位[15 16]=00b时,匹配叶子节点:1.0.0.0/8,叶子节点代表配置的路由表项。而当[15 16]=10b时,匹配另一个中间节点1.1.0.0/23。
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7|-------------| |-------------| |-------------| |-------------|0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |15 162-bits
同理,此中间节点也处理前缀的2个比特位,即23,24位,当查询的前缀比特位[23 24]=00b时,匹配叶子节点:1.1.0.0/16。而当[23 24]=10b时,匹配叶子节点1.1.1.0/24。
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7|-------------| |-------------| |-------------| |-------------|0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| |23 242-bits
如下trie树结构,节点192.168.0.0/20有一个full_children节点,为192.168.0.0/22,其处理[22 23]两个bit位,父节点处理[20 21]两个比特位。另外一个子节点192.168.9.0/26,处理的是[26 27]比特位,与父节点不连续,不是full_children节点。
$ cat /proc/net/fib_trie
Id 20:+-- 192.168.0.0/20 2 1 2+-- 192.168.0.0/22 2 0 2|-- 192.168.0.0/16 universe UNICAST+-- 192.168.2.0/26 2 0 2|-- 192.168.2.0/24 universe UNICAST|-- 192.168.2.50/32 universe UNICAST+-- 192.168.9.0/26 2 0 2|-- 192.168.9.0/24 universe UNICAST|-- 192.168.9.50/32 universe UNICAST
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
