摘要:我試圖創建套接字以在同一臺機器上存在的兩個物理接口之間傳遞數據,並且Win32套接字始終直接轉發通信在內核中而不是通過物理接口。有什麼辦法可以通過設備設置,註冊表調整,路由表shenanigans或套接字選項來禁用此行爲?我們正在使用Windows XP SP3。Win32套接字 - 強制ip包在發送到其他本地接口時離開物理接口
一些背景。我正在嘗試構建一些完全自動化的IP測試來鍛鍊我們的定製IPv4設備。我們有一個Windows XP機器的大型實驗室,以及我們連接到的每個設備的單獨物理以太網接口。我們的設備是有效的以太網路由器,每個路由器都有自己的IP。
我們需要通過我們的設備將數據發送出我們的實驗室機器,然後返回到同一臺計算機。我們將通過設備發送單播和多播UDP,TCP和廣播IP流量。
我們想要(也可能需要)流量來自它所註定的同一臺機器。 爲此,我們配置了兩個單獨的NIC,每個NIC在其自己的子網上都有自己的IP,例如,具有10.0.0.1/24的NIC#1和具有10.0.1.1/24的NIC#2。我們的設備就像簡單的直通路由器一樣工作,並且有兩個接口,10.0.0.0/24子網上有一個接口,10.0.1.0/24子網上有一個接口,它們只是來回轉發數據包。爲了生成我們的數據,我們希望能夠使用Win32套接字,因爲它很好理解,支持良好,我們的客戶正在使用,並且可能是最快速的方法。數據包注入對於UDP和廣播IP來說可能是可行的,但很可能不適用於TCP。我喜歡使用數據包注入的想法,但強烈推薦使用標準的Win32套接字。
如摘要所述,數據包永遠不會離開機器。我像瘋子一樣搜索,但我沒有找到太多東西。有任何想法嗎?
這個功能在人們建議的所有選項中發揮最大作用,而且我在搜索時發現了這些選項。我仍然無法爲「廣播」流量製作這部作品;我需要花更多的時間來處理它,但我有一種感覺,我需要需要Win7附帶的IP_UNICAST_IF套接字選項(具有諷刺意味的是,使用「單播」選項進行廣播。) – antiduh 2011-02-07 08:43:35