无法使用0.0.0.0网关删除路由


8

我正在尝试以一种允许我连接到Solum demo的Vagrant box的方式来设置路线。

我的路由表包含但不限于以下路由:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.76.0    192.168.76.2    255.255.255.0   UG    0      0        0 vboxnet0
192.168.76.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0

我怀疑第三条路线(在Vagrant框启动时自动生成)干扰了第二条路线(手动创建),因此我尝试将其删除。

但是,使用以下任一命令

$ sudo route del 192.168.76.0 gw 0.0.0.0
$ sudo route del 192.168.76.0

返回:

SIOCDELRT: No such process

通常在route找不到路线时会弹出。

另一方面,使用

$ sudo route del 192.168.76.0/24 gw 0.0.0.0
$ sudo route del 192.168.76.0/24

产量:

route: netmask 000000ff doesn't make sense with host route
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
(rest of usage)

我究竟做错了什么?我无法删除该路线吗?我是否认为它会干扰我设置的设置,这是错误的吗?

(我正在使用Ubuntu 14.04+)。


2
离开我的头顶:尝试route del -net 192.168.76.0。否则,它认为您正在尝试删除到单个主机的路由。
2015年

您如何添加路线?看来您使用的是vbox,所以路由可能是vobx配置的一部分,我不能从您发布的内容中得知。

只是出于好奇,但是为什么要设置那条路线呢?在我看来,网络192.168.76.0/24处于链接状态-无需网关。但是,当您查看链接的设置说明时,您会发现route add -net 192.168.78.0/24 192.168.76.2更有意义的路线。
Nephente

2
顺便说一句。如果两条或多条路由与主机匹配,则优先级最高的路由,即前缀最长的路由。静态主机路由的前缀为/ 32,将是首选路由。下一个标准(通常)取决于如何学习路由,例如静态路由或通过路由协议,其中链接路由优先级最高,其次是静态路由,然后是通过OSPF学习的动态路由。
Nephente 2015年

@Jos答案几乎是正确的-如果我只添加/24命令的末尾,它将起作用。谢谢。如果您发布答案,也许是为了将来浏览此问题的人们的利益而精心设计的话,我会接受的。
Dragomok 2015年

Answers:


11

要从路由表中删除一条路由,您需要指定足够的参数,以便与其中一条路由进行唯一匹配。

如果要删除整个子网(而不是单个主机),则需要同时使用-net标志和网络地址范围的一些指示,即netmask参数(例如255.255.255.0)或数字,例如/ 24 (这意味着前24位是网络号,其余8位用于主机)。就您而言,两者

sudo route del -net 192.168.76.0/24

sudo route del -net 192.168.76.0 netmask 255.255.255.0

本来可以的。

(感谢@nephente的有用补充)


或随后指定接口,例如dev vboxnet0->sudo route del -net 192.168.76.0 netmask 255.255.255.0 dev vboxnet0
adadion

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.