如果您在機器上兩塊網卡的話,應該不會有問題。正常的IP行爲應該確保您的'私人'網絡(在這種情況下是嵌入式系統)的流量與公共網絡分開,而無需在代碼中執行任何操作。所需要的只是兩個網絡位於不同的IP子網上,並且您的「公共」NIC是默認網絡。
假設你的兩個網卡的配置如下:
NIC A (Public): 192.168.1.10 mask 255.255.255.0
NIC B (Private): 192.168.5.10 mask 255.255.255.0
需要驗證的唯一配置是網卡A是默認的。當您嘗試將數據包發送到您的專用網絡(192.168.50.0 - 192.168.50.255)中的任何地址時,您的IP堆棧將查找路由表並查看直接連接的網絡,並通過專用NIC轉發流量。到(直接連接的)公共網絡的任何流量都將被髮送到NIC A,同時將流向您的路由表中沒有更具體路由的任何地址。
你的路由表(netstat的-rn)應該是這個樣子:
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.10 266 <<--
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
169.254.0.0 255.255.0.0 On-link 192.168.1.10 286
169.254.255.255 255.255.255.255 On-link 192.168.1.10 266
192.168.1.0 255.255.255.0 On-link 192.168.1.10 266
192.168.1.10 255.255.255.255 On-link 192.168.1.10 266
192.168.1.255 255.255.255.255 On-link 192.168.1.10 266
192.168.5.0 255.255.255.0 On-link 192.168.5.10 266
192.168.5.10 255.255.255.255 On-link 192.168.5.10 266
192.168.5.255 255.255.255.255 On-link 192.168.5.10 266
255.255.255.255 255.255.255.255 On-link 192.168.1.10 276
255.255.255.255 255.255.255.255 On-link 192.168.5.10 276
===========================================================================
也將有一定的組播路由(從224)已爲簡潔起見省略。 '< < - '表示默認路由,它應該使用公共接口。
這不取決於你想要訪問的IP地址嗎?還是它們在同一個子網? – sven 2008-09-08 11:38:04
@sven:外部網絡(不是嵌入式網絡)的IP地址完全不受我控制。該網絡上的策略取決於將使用該機器的站點的系統管理員(它可以是靜態地址,dhcp,相同的子網,不同的子網,運營商pidgeon等)。 – Skizz 2008-09-08 12:54:50