在 Solaris 10 上删除静态路由

在 Solaris 10 上删除静态路由

我有以下要删除的路线:

10.250.0.0           10.250.0.37          UG        1          0

我已运行以下命令来删除它,但失败。

bash-3.2# route delete 10.250.0.0 -netmask 255.255.255.0 10.250.0.37
delete net 10.250.0.0: gateway 10.250.0.37: not in table

失败的原因是什么?

答案1

对于 Solarisroute命令,删除和添加子命令具有以下语法:

  route [ -fnvq ] cmd destination gateway [metric/netmask]

所以你可能会在以下方面取得更大的成功:

route delete 10.250.0.0 10.250.0.37 -netmask 255.255.255.0

或者永久删除它(如@Alexandre Alves 评论;假设这是一条永久路线):

route -p delete 10.250.0.0 10.250.0.37 -netmask 255.255.255.0

(您确定您的网络掩码对于该 A 类 IP 地址是正确的吗?)

答案2

不要忘记-p路线命令上的标志。这就是它持久的原因。

所以而不是这样做:

route delete 10.250.0.0 10.250.0.37 -netmask 255.255.255.0

你应该这样做:

route -p delete 10.250.0.0 10.250.0.37 -netmask 255.255.255.0

如果您在删除时不使用该-p标志,那么您只会在重新启动后体验到该路由仍然存在(前提是该路由首先是持久的)。

您可以随时使用该netstat -r命令查看所有路由,并且可以使用该route -p命令查看持久路由。

答案3

这是非常棘手的,我今天注意到要专门删除 Solaris 10 中的路由。

您需要先运行命令

route -p show

这将列出系统中添加的所有持久路由,以及用于为主机路由或网段路由创建它们的命令。否则,在运行删除命令后,您可能会收到“不在文件中”的消息。

让我在下面的例子中解释一下:

~# route -p show

 - persistent: route add host 10.47.118.111 10.47.89.1
 - persistent: route add 10.48.145.0/24 10.47.89.18
 - persistent: route add 10.50.21.0 10.47.89.32 -netmask 255.255.255.0

在这里您可以看到使用了 3 种不同的添加路线的方法。

要删除您需要使用的第一条路线:

~# route -p delete host 10.47.118.111 10.47.89.1

相反,如果您运行命令:

# route -p delete 10.47.118.111/24 10.47.89.1

假设您使用了正确的网络掩码,您仍然无法删除此命令中的持久路由,即使它看起来是正确的命令并最终收到消息“不在文件中”。这在 Red Hat 风格中通常很灵活,因此您可以使用任何方法来添加/删除路由,但 Solaris 10 则不然,不确定其他版本或是否有任何修复。

类似地,要删除第二条和第三条持久路由,您需要准确使用:

~# route -p delete 10.48.145.0/24 10.47.89.18
~# route -p delete 10.50.21.0 10.47.89.32 -netmask 255.255.255.0

希望当您对发生的事情一无所知时这会有所帮助:)

相关内容