在微軟的VPN連線軟體中,預設是有勾選“使用遠端網路的預設閘道”,
勾選此選項的用意,是讓VPN的User在連線後,所有的routing都透過遠端Gateway來進行。
↑XP的設定
↑Win7的設定
如果我們不想將預設Gateway指向遠端Gateway,那麼只要取消此選項的勾選即可。
這樣一來,只有連到遠端VPN網段時,才會透過VPN來進行,
其它網段,則會透過User本機的Default Gateway來routing。
(可參考順子另一篇文章 連入MS VPN後某些主機無法連結?)
但如果VPN連線時,VPN Server指派的是一個虛擬的網段,僅提供User連結,例如10.10.20.11/32,
沒有Default Gateway,也不是遠端環境中真正提供服務的網段,例如192.168.11.0/24。
那有什麼辦法可以增加192.168.11.0/24網段的路由,讓此網段也能經由VPN連結,
而其它網段則維持預設本機的Default Gateway?
首先,一樣要取消“使用遠端網路的預設閘道”的勾選,讓預設路由走本機的Default Gateway。
接下來就是要在routing table中,手動加入遠端網段192.168.11.0/24,並指定由VPN的通道來進行。
我們先輸入 route print 來取得VPN通道的網卡ID。
route print
以順子的電腦來說,PPTP的VPN網卡ID是24。
然後再輸入以下指令,手動新增一個靜態路由。
route add 遠端網段 mask 子網路遮罩 0.0.0.0 if 網卡ID
以順子的例子來說,需輸入如下的指令。
route add 192.168.11.0 mask 255.255.255.0 0.0.0.0 if 24
輸入完成後,再下達 route print 的指令來確認。
這時我們可以看到192.168.11.0/24網段的路由已經是透過10.10.20.11的介面來進行,
順子也可以成功透過VPN連到192.168.11.0/24網段了∼
其實整個邏輯並沒有特別的地方,
只是一開始在建立手動路由時,因為它的閘道是顯示為“連結上”,而不是一個閘道的IP,
所以順子搞不清楚這樣的路由,其Gateway要指向哪個IP?
也不知道該如何去設定這種閘道顯示為“連結上”的路由?
後來總算在網路上找到資料,原來Gateway要打 0.0.0.0,
這樣才會增加一筆閘道指向“在連結上”(on-link)的路由,突破了這個問題核心後,緦算得到了解答。
參考資料
Add an “on-link” routing entry
♥順子老婆的網拍,請多關照∼
If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!
|