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