如何從更大的子網路路由中刪除子網路刪除PowerShell Windows?

如何從更大的子網路路由中刪除子網路刪除PowerShell Windows?

這是route print輸出:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.50     55
          0.0.0.0        128.0.0.0   192.168.10.252    192.168.10.96    257
        128.0.0.0        128.0.0.0   192.168.10.252    192.168.10.96    257
          1.1.1.1    255.255.255.0      192.168.1.1     192.168.1.50    56
      185.1.1.1.1  255.255.255.255      192.168.1.1     192.168.1.50    311
     192.168.10.0    255.255.255.0         On-link     192.168.10.96    257
    192.168.10.96  255.255.255.255         On-link     192.168.10.96    257
   192.168.10.255  255.255.255.255         On-link     192.168.10.96    257
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
     1.1.1.1         255.255.255.0      192.168.1.1       1
===========================================================================

如您所見,1.1.1.1/24已新增至路由表。

我想從中刪除一個子網路(如 /32 或更大),但出現錯誤:

route delete -p 1.1.1.10/32 192.168.1.1
route delete -p 1.1.1.0/25 192.168.1.1

錯誤:

The route deletion failed: Element not found.

我知道我可以刪除整個 /24 子網,然後使用 Python 腳本產生所需的子網,但我的問題是是否可以刪除路由表中的較小子網。

Windows 10,PowerShell 版本是 5.1 (18200)。

答案1

您可能希望為該子網路建立一個新路由,而不是從現有路由中刪除子網路(您不能這樣做;您只能刪除存在的路由)。路由基本上是分層的,這是有道理的,因為最低優先權路由通常針對 0.0.0.0/0(所有 IP 位址)並被描述為「預設」路由。

我相信更具體的(較少數量的 IP 位址)路由比更通用的路由更受青睞,因此您可能可以這樣做,從其他包含路由之一複製介面/網關作為新路由。無論如何,該範例使用比任何其他路由更小的度量(更高的優先順序),因此應該優先使用它。

範例:route add /p 1.1.1.0 mask 255.255.255.128 192.168.10.252 metric 54

未經請求的建議:不要建立小於 /30 的網路。

祝你好運。

相關內容