2013-10-29 55 views
7

我最近開始使用ip route命令進行高級路由的東西。現在我遇到了一些讓我感到困惑的事情。添加到表格的默認路線很容易被刪除,而另一條路線仍然存在。ip route del不刪除整個表

我添加這兩個規則:

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,其中還包括表。

回答

7

正如@ user3291010已指出,要刪除一個完整的表,請使用以下命令:

此命令刪除表21:

ip route flush table 21 

您嘗試的命令用於從表格中刪除特定的規則。它想要一個前綴匹配。當你沒有提供前綴時,它只是刪除了第一個條目,這恰好是默認路由。

刪除第二項,只有第二項,你可以運行這個命令:

ip route delete table 21 192.168.0.0/24 

據我所知,目前還沒有辦法刪除使用delete命令所有條目。

3

也許嘗試:

ip route flush table 21 
+0

這絕對有用,我知道。我只是很好奇,爲什麼在發出刪除命令後,這條單獨的規則應該留在那裏。 –

+0

如果我沒有弄錯(手冊頁有點不透明),ip route del ROUTE刪除一條路由。如果ROUTE匹配多條路線,我相信它會刪除第一條匹配路線。它不會刪除所有匹配的路由或表格。 –