Shunze 學園 (http://www.shunze.info/forum/index.php)
|- 吃軟不吃硬 (http://www.shunze.info/forum/board.php?boardid=3)
|-- 《分享》增加VPN連線後的遠端網段路由 (http://www.shunze.info/forum/threadid.php?boardid=3&threadid=1888)


作者: shunze 發表時間: 2015-05-06, 16:18:

《分享》增加VPN連線後的遠端網段路由

在微軟的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

Powered by: Burning Board 1.1.1 2001 by WoltLab
Taiwan Translation by Achi