【问题标题】:ip route del does not delete entire tableip route del 不会删除整个表
【发布时间】:2014-08-24 08:19:42
【问题描述】:

我最近开始使用ip route 命令进行高级路由。现在我遇到了一些让我很困惑的事情。添加到表中的默认路由很容易被删除,而另一条路由仍然存在。

我添加了这两条规则:

ip route add dev wlan0 default via 192.168.0.1 table 21
ip route add dev wlan0 192.168.0.0/24 table 21

现在如果我这样做:

ip route show table 21

我看到这两条规则都存在。

default via 192.168.0.1 dev wlan0 
192.168.0.0/24 dev wlan0  scope link  

如果我然后尝试删除表 21,并再次显示它:

ip route del table 21
ip route show table 21

这条规则仍然存在。

192.168.0.0/24 dev wlan0  scope link

谁能解释一下?手册页说 del 旨在删除还包括表的 ROUTE。

【问题讨论】:

    标签: linux routing


    【解决方案1】:

    正如@user3291010 已经指出的那样,要删除一个完整的表,请使用以下命令:

    此命令删除表 21:

    ip route flush table 21
    

    您尝试的命令用于从表中删除特定规则。它需要一个前缀来匹配。当你没有提供前缀时,它只是删除了第一个条目,这恰好是默认路由。

    要删除第二个条目,并且只删除第二个条目,您可以运行以下命令:

    ip route delete table 21 192.168.0.0/24
    

    据我所知,没有办法使用delete 命令删除所有条目。

    【讨论】:

      【解决方案2】:

      不妨试试:

      ip route flush table 21
      

      【讨论】:

      • 这绝对有效,我知道。我只是好奇为什么在发出删除命令后这条规则应该保留在那里。
      • 如果我没记错的话(手册页有点不透明),ip route del ROUTE 删除一个路由。如果 ROUTE 匹配多个路由,我相信它会删除第一个匹配的路由。它不会删除所有匹配的路由或表。
      猜你喜欢
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 2013-10-28
      • 1970-01-01
      相关资源
      最近更新 更多