Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我可以在Linux上拥有多少个自定义路由表?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我一直在 Linux上使用自定义路由表,我对“ip route”命令的一些文档和行为感到困惑.似乎唯一有效的值应该是0-255加上/ etc / iproute2 / rt_tables中定义的名称: 255 local 254 main 253 default 0 unspec 这将为自定义表留下1-252.尝试使用未定义的表名会出错: $ip route show table kermit
我一直在 Linux上使用自定义路由表,我对“ip route”命令的一些文档和行为感到困惑.似乎唯一有效的值应该是0-255加上/ etc / iproute2 / rt_tables中定义的名称
255 local
254 main
253 default
0   unspec

这将为自定义表留下1-252.尝试使用未定义的表名会出错:

$ip route show table kermit
Error: argument "kermit" is wrong: table id value is invalid

但是,似乎我可以使用远高于255的数字而不会出现错误

$ip route show table 1000
[no output]
$ip route add 10.10.10.0/24 dev eth0 table 1000
[no output]
$ip route show table 1000
10.10.10.0/24 dev eth0  scope link

在某些时候,事情变得更加怪异.在maxint(2 ^ 31)处,它“溢出”到本地表(255):

$ip route show table 2147483647
[no output]
$ip route show table 2147483648
[exact output of table 255 (local)]

任何人都可以解释发生了什么?实际上是否可以使用maxint自定义路由表?

解决方法

就2.6内核而言,max表是0xFFFFFFFF(来自rtnetlink.h).但是,iproute2在其过滤器中使用有符号整数进行查找,因此在2 ^ 31时它认为您指定了一个无效表,并显示表255.

大佬总结

以上是大佬教程为你收集整理的我可以在Linux上拥有多少个自定义路由表?全部内容,希望文章能够帮你解决我可以在Linux上拥有多少个自定义路由表?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。