我们都知道这些命令会生成相同的输出:
ip route list
ip route list table 254
ip route list table main
该命令还列出了一些与本地地址和广播地址相关的特殊规则:
ip route list table local
但是,替换local
为零(如 中所列/etc/iproute2/rt_tables
)会生成大量输出:
ip route list table 0
为什么最后一个命令如此不同?
答案1
这当地的表是默认表之一:255,可以在上游存储库的rt_tables
:
# # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep
表0,这里写的是未指定在内部也称为全部经过ip路由2工具。这实际上不是一张桌子。它代表全部表和方法不特别指定。因此,当您输入其中之一时:
ip route show table 0
ip route show table all
ip route show table unspec # only if present in /etc/iproute2/rt_tables
它将显示全部路由表,包括表 254主要的表(未指定表时使用的表),表 255当地的路由以及您可能创建的任何其他非空表。由于存在不同的表而不是只有一个,因此该命令还将在输出中添加额外的参数table X
(表 254/ 除外)主要的)对于每个显示的表 X,因此可以重用其输出以在正确的位置添加表条目。
由于输出将包括当地的和主要的表,它总是比其中一个表有更多的行:更长的输出。