一般的路由設(shè)置方式為目的路由,即對目的IP做匹配,若滿足一定的規(guī)則,則把數(shù)據(jù)從某個網(wǎng)口發(fā)出去(同時也決定了目的MAC地址)。 源地址路由,顧名思義,對源地址IP做匹配,若滿足一定的規(guī)則,則把數(shù)據(jù)從某個網(wǎng)口發(fā)出去。
在linux上,可以做ip route2工具做源地址路由設(shè)置,而windows上是沒有類似的工具包的。有一些情況下,目的路由滿足不了我們的要求,而需要做源地址路由。
如我們的服務(wù)器有多個網(wǎng)關(guān)的情況(甚至同一個網(wǎng)卡下有多個網(wǎng)段地址,對應(yīng)了多個網(wǎng)關(guān)),而目的端的IP地址無法確定(比如設(shè)備上傳的IP不確定),做不了目的路由,數(shù)據(jù)就會從默認的路由出去,這樣就會導(dǎo)致數(shù)據(jù)從網(wǎng)關(guān)2進來,回復(fù)的數(shù)據(jù)從網(wǎng)關(guān)1出去,這樣數(shù)據(jù)肯定會有問題的。
解決此問題有多個方案:
1,在路由器上做源地址轉(zhuǎn)換,把外部IP轉(zhuǎn)換成內(nèi)部IP
1)目前在華為路由器上支持此功能,而在思科路由器上面沒有找到
2)此方案的效率不是最優(yōu)的,可能由路由器帶來比較重的負擔(dān)
3)內(nèi)部的服務(wù)看不到真實的外部IP
2,在服務(wù)器上新建虛擬機,化解多個網(wǎng)關(guān)的問題
1)虛擬機比較費資源,效率不是最優(yōu)的
2)虛擬機的穩(wěn)定性比較差
3,在服務(wù)器上做源地址路由
1)目前在linux上有現(xiàn)成的工具,而windows上沒有
2)windows上需要寫ndis驅(qū)動,需要開發(fā)
3)此方案在效率上是最優(yōu)的,對應(yīng)用也是不可見的。
這里采用了第3種:方案:在服務(wù)器上做源地址路由,在這里把源碼給大家分享出來。
代碼中的配置還不是很靈活,但已經(jīng)在實際環(huán)境中使用過了(windows2003sp1,windows2008r2)。
以上就是基于windows的源地址路由設(shè)置的三個方法,謝謝閱讀。