BSD/MacOS X具有用於更改系統路由表的命令「route」。它支持的選項之一是-proto1(以及proto2/proto3),它們用於將路由設置爲協議特定的。我想用它來設置特定於UDP的路由。如何使用路由來制定協議特定路由
我已經單獨使用-proto1 UDP與add函數嘗試。唉,這不起作用。我一直在試圖找到使用-proto1的例子,但是我一直無法找到route命令的這個選項的例子。
任何人能解釋這是怎麼使用的,或指向一個例子嗎?謝謝。
BSD/MacOS X具有用於更改系統路由表的命令「route」。它支持的選項之一是-proto1(以及proto2/proto3),它們用於將路由設置爲協議特定的。我想用它來設置特定於UDP的路由。如何使用路由來制定協議特定路由
我已經單獨使用-proto1 UDP與add函數嘗試。唉,這不起作用。我一直在試圖找到使用-proto1的例子,但是我一直無法找到route命令的這個選項的例子。
任何人能解釋這是怎麼使用的,或指向一個例子嗎?謝謝。
的route
命令的-proto
*標誌設置在適當的路由表的rt_flags
字段匹配RTF_PROTO
*標誌位(即它們具有任何其他值參數 - 它們每一個代表各個位)。
他們不作路線「協議的具體」的,而是可以在協議具體辦法由任何低層協議的路由使用可以使用的通用標誌位。
在代碼的BSD網絡代碼協議特定部分往往會定義更多有意義的名稱映射到相同的標誌位。例如,在ARP層中,RTF_ANNOUNCE
標誌位與RTF_PROTO2
位的rt_flags
字段中的位相同。
在標誌在路由表由arp
命令設置(如果字pub
在命令行上手動創建表項時給出)的ARP的情況下,不是由route
命令。但netstat -r
命令可能會在生成的路由表條目上顯示爲2
,表示RTF_PROTO2
(與route -v show
一樣)。
如果要強制所有數據包特定的傳輸協議,例如UDP或TCP,那麼您將不得不研究與路由表不同的機制 - 例如,某些防火牆可以根據IP報頭中給定的協議值將數據包轉發到指定的接口。