一般的路由設定方式為目的路由,即對目的IP做比對,若滿足一定的規則,則把資料從某個網口發出去(同時也決定了目的MAC位址)。源位址路由,顧名思義,對源位址IP做比對,若滿足一定的規則,則把資料從某個網口發出去。
在linux上,可以做ip route2工具做源位址路由設定,而windows上是沒有類似的工具包的。有一些情況下,目的路由滿足不了我們的要求,而需要做源位址路由。
如我們的伺服器有多個網關的情況(甚至同一個網卡下有多個網段位址,對應了多個網關),而目的端的IP位址無法确定(比如裝置上傳的IP不确定),做不了目的路由,資料就會從預設的路由出去,這樣就會導緻資料從網關2進來,回複的資料從網關1出去,這樣資料肯定會有問題的。
解決此問題有多個方案:
1,在路由器上做源位址轉換,把外部IP轉換成内部IP
1)目前在華為路由器上支援此功能,而在思科路由器上面沒有找到
2)此方案的效率不是最優的,可能由路由器帶來比較重的負擔
3)内部的服務看不到真實的外部IP
2,在伺服器上建立虛拟機,化解多個網關的問題
1)虛拟機比較費資源,效率不是最優的
2)虛拟機的穩定性比較差
3,在伺服器上做源位址路由
1)目前在linux上有現成的工具,而windows上沒有2)windows上需要寫ndis驅動,需要開發
3)此方案在效率上是最優的,對應用也是不可見的。
我采用了第3種:方案:在伺服器上做源位址路由,在這裡我把源碼給大家分享出來。
代碼中的配置還不是很靈活,但已經在實際環境中使用過了(windows2003sp1,windows2008r2)。
以上就是基于windows的源位址路由設定的三個方法,謝謝閱讀,如果幫到了您,不妨分享給更多的朋友,讓他們受惠。請繼續關注華強電子網,我們會努力分享更多優秀的文章。