時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
在建設(shè)VPN網(wǎng)絡(luò)時(shí),當(dāng)你的VPN連接成功后,雖然能訪問總部公司的內(nèi)部網(wǎng),這時(shí)卻不能訪問外網(wǎng)了,這是怎么一回事呢? VPN虛擬專用網(wǎng)技術(shù),對(duì)于實(shí)現(xiàn)遠(yuǎn)程訪問公司的信息資源而言,相比撥號(hào)連接服務(wù)具有被廣大用戶認(rèn)可的優(yōu)勢(shì),目前在實(shí)際運(yùn)用中正在逐漸取代撥號(hào)連接服務(wù)。VPN能夠提供高級(jí)別的遠(yuǎn)程訪問服務(wù),為用戶和基礎(chǔ)設(shè)施提供一個(gè)安全的通信機(jī)制。?這篇文章我主要對(duì)在使用VPN過程中經(jīng)常出現(xiàn)的一類問題進(jìn)行詳盡的分析。
相信通過VPN?客戶機(jī)遠(yuǎn)程訪問公司內(nèi)部網(wǎng)的網(wǎng)友都曾經(jīng)碰到過這種問題,即當(dāng)你的VPN連接成功后,雖然能訪問總部公司的內(nèi)部網(wǎng)這時(shí)卻不能訪問外網(wǎng)了,看了下面我的詳細(xì)介紹之后,大家就可以了解到這是由于路由上的設(shè)置引起的。
我們知道,VPN?客戶機(jī)是通過Internet連接到VPN服務(wù)器的,就是說通過VPN對(duì)Internet的訪問物理意義上說是可以實(shí)現(xiàn)的。那么為什么會(huì)出現(xiàn)VPN連接建立后就不能訪問外網(wǎng)的現(xiàn)象呢?出現(xiàn)了這種問題,很多用戶都知道是路由表發(fā)生了變化,因此大家都通過在VPN連接的"高級(jí)TCP/IP設(shè)置"中取消"在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)"選項(xiàng)來(lái)達(dá)到訪問外網(wǎng)的目的。這種方法雖然表面上看來(lái)可行,覺得解決了一個(gè)路由問題,但有所不知可能會(huì)帶來(lái)新的路由問題,甚至給公司內(nèi)網(wǎng)帶來(lái)嚴(yán)重的安全隱患。大家想一下,我們采用VPN的最初目標(biāo)是為了保證安全,結(jié)果卻可能因?yàn)槭褂肰PN而讓整個(gè)公司網(wǎng)絡(luò)面臨外界攻擊的境地,那么這樣就背離了我們的初衷。
那么怎樣才能更好并且安全的解決這個(gè)問題?以下我就先對(duì) VPN?客戶端的路由做一個(gè)初探,使大家對(duì)這一個(gè)知識(shí)點(diǎn)有一個(gè)較為全面地了解。我們已經(jīng)通過分析認(rèn)為是路由問題,現(xiàn)在我們從VPN連接前后的路由表變化情況來(lái)找出問題的癥結(jié)所在。大家可以邊根據(jù)我的說明邊進(jìn)行實(shí)際操作(見圖1),這樣在需要使用VPN遠(yuǎn)程訪問的時(shí)候會(huì)留下更深刻的印象。在VPN沒有連接之前,輸入route?print命令,出現(xiàn)當(dāng)前的路由表項(xiàng),然后連接上VPN,再次運(yùn)行route?print命令,比較前后兩次命令的區(qū)別。可以看到,在命令行窗口中連接后多出了幾條路由,比較重要的有兩條路由——在出現(xiàn)的結(jié)果Active Routes下的第三行和第十行分別有一條(我稱為route1)0.0.0.0???0.0.0.0???150.0.1.226??150.0.1.226????1;另一條(我稱為route2)218.70.201.62?? 255.255.255.255?? 150.0.1.43?? 150.0.1.41?? 20,注意,各位網(wǎng)友的路由中部分IP也可能會(huì)略有不同。?
?圖1:連接VPN的前后路由變化情況
(二) 如何實(shí)現(xiàn)對(duì)VPN數(shù)據(jù)包的封裝加密并安全傳輸?shù)倪^程
現(xiàn)在我們來(lái)看一下VPN客戶端的路由決策及數(shù)據(jù)包封裝的過程。眾所周知,VPN虛擬接口就是一個(gè)虛擬的點(diǎn)對(duì)點(diǎn)鏈路接口,當(dāng)VPN虛擬接口收到數(shù)據(jù)包時(shí),它把從網(wǎng)絡(luò)層得到的數(shù)據(jù)包封裝成PPP點(diǎn)對(duì)點(diǎn)數(shù)據(jù)幀并進(jìn)行加密等操作,然后把它送到網(wǎng)關(guān),這里的網(wǎng)關(guān)正是VPN客戶端自己,所以這個(gè)被封裝的PPP點(diǎn)對(duì)點(diǎn)數(shù)據(jù)幀又被返回給本機(jī)再次處理,這次處理其實(shí)就是再次封裝的過程。
那為什么要再次封裝?由于第一次封裝的幀只能通過虛擬的VPN接口,如果要把數(shù)據(jù)通過實(shí)際的接口進(jìn)行傳輸,還必須在實(shí)際的鏈路層上進(jìn)行再次封裝才行。而在最終封裝成鏈路層數(shù)據(jù)幀之前,需要對(duì)第一次封裝成的PPP數(shù)據(jù)幀進(jìn)行其他的多級(jí)封裝。因?yàn)橐?guī)范中是不能直接把PPP幀封裝在另一個(gè)鏈路層幀中的,需要在它們之間添加一些報(bào)頭,最簡(jiǎn)單的PPTP封裝就是在PPP 幀前添加了一個(gè)GRE頭和IP頭。
在封裝到網(wǎng)絡(luò)層比如IP報(bào)頭的時(shí)候,這里需要進(jìn)行一次路由決策,這是由于數(shù)據(jù)包要明確地發(fā)送到遠(yuǎn)方的VPN服務(wù)器,它將尋找一條到達(dá)遠(yuǎn)方VPN服務(wù)器的路由。在VPN連接建立時(shí)就同時(shí)創(chuàng)建一條到達(dá)VPN服務(wù)器的路由(route2),再次封裝成PPTP格式或L2TP格式的IP數(shù)據(jù)包交給這條路由指定的接口進(jìn)行處理。如果是以太網(wǎng)接口,這個(gè)數(shù)據(jù)包就加上以太網(wǎng)報(bào)頭;如果是點(diǎn)對(duì)點(diǎn),就加上點(diǎn)對(duì)點(diǎn)鏈路報(bào)頭,發(fā)送到物理網(wǎng)絡(luò)上。在此處,route2 指定的接口是150.0.1.41,即是網(wǎng)卡接口,所以它將加上以太網(wǎng)幀頭,然后發(fā)送到物理網(wǎng)絡(luò)上去。
(三)對(duì)于使用VPN不能訪問外網(wǎng)的解決方案
上面的三段我只想說明一點(diǎn):使用VPN連接,必須讓通過VPN連接傳輸?shù)臄?shù)據(jù)包先到達(dá)VPN虛擬接口進(jìn)行處理,如果繞過了VPN虛擬接口不處理的話,由于這個(gè)VPN連接的數(shù)據(jù)包沒有經(jīng)過加密措施就直接發(fā)送到了Internet上,那么你的VPN安全就根本沒有保證。
現(xiàn)在我們來(lái)看一下,在VPN連接后此時(shí)VPN客戶端的路由表。默認(rèn)路由沒有變,添加了一條VPN端口IP對(duì)應(yīng)的分類網(wǎng)絡(luò)路由條目:150.0.0.0?????255.255.0.0????150.0.1.226????150.0.1.226????1,(見圖2 Active Routes下第四行)。假設(shè)現(xiàn)在通過VPN連接訪問遠(yuǎn)程公司內(nèi)網(wǎng)的192.168.0.0/24子網(wǎng),根據(jù)上面的路由表,匹配的路由只有第一條默認(rèn)路由。默認(rèn)路由是通過本地網(wǎng)卡到達(dá)網(wǎng)關(guān)后直接發(fā)送到192.168.0.0/24去的,因?yàn)镮nternet上的路由器不會(huì)轉(zhuǎn)發(fā)到達(dá)私有網(wǎng)絡(luò)的數(shù)據(jù)包,這樣就可以達(dá)到外界不能訪問公司內(nèi)網(wǎng)、保證內(nèi)網(wǎng)安全的目的。因此選中了"在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)"選項(xiàng),采用了默認(rèn)路由,就不會(huì)出現(xiàn)前面所說的路由問題和安全問題。
??? ?圖2:不取消"在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)"才能安全使用VPN
看了這么多,文章開頭我說了如果取消了"在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)"選項(xiàng),就會(huì)帶來(lái)新的路由問題甚至安全隱患。那么怎樣來(lái)解決這個(gè)問題呢?不取消這個(gè)選項(xiàng)就不能同時(shí)訪問內(nèi)網(wǎng)和外網(wǎng)。這確實(shí)是一個(gè)兩難,針對(duì)這個(gè)問題沒有一個(gè)統(tǒng)一的設(shè)置,不同的網(wǎng)絡(luò)環(huán)境只能用不同的解決方法。目前來(lái)說,取消"在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)"的選項(xiàng)肯定會(huì)導(dǎo)致安全問題。我們只能盡量不要取消它,對(duì)于那些既想通過VPN連接訪問公司內(nèi)網(wǎng)而且還需要訪問外網(wǎng)的用戶,我建議可以采用這樣一種方法——配置它們使用代理訪問Internet,比如設(shè)置它們使用HTTP代理,這個(gè)功能是大多數(shù)代理服務(wù)器都提供的。另外,如果 VPN客戶端的IP與VPN服務(wù)器的網(wǎng)卡位于同一個(gè)邏輯子網(wǎng),并且只訪問這個(gè)邏輯子網(wǎng),對(duì)于這種情況可以取消"在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)"選項(xiàng)。
以上說了這么多,我都寫累了,大家對(duì)其中的實(shí)現(xiàn)步驟肯定也會(huì)有些不是很清楚。這并沒有關(guān)系,只要大概了解VPN數(shù)據(jù)包需要經(jīng)過封裝加密,才能進(jìn)行傳輸并安全訪問外網(wǎng)這些基本原理,我寫這篇文章的目的就達(dá)到了。
綜上所述,只有使用代理服務(wù)器、VPN客戶端IP與VPN服務(wù)器網(wǎng)卡位于同一個(gè)邏輯子網(wǎng)這兩種情況例外,可以取消"在遠(yuǎn)程網(wǎng)絡(luò)上使用默認(rèn)網(wǎng)關(guān)"的選項(xiàng)。至于一般情況,還是謹(jǐn)慎使用VPN為好,我想我們?cè)L問網(wǎng)絡(luò)的目的都是一樣的——保證公司網(wǎng)絡(luò)的安全放在第一位。希望廣大網(wǎng)友在使用VPN虛擬專用網(wǎng)的過程中一切順利。
關(guān)鍵詞標(biāo)簽:路由,VPN
相關(guān)閱讀
熱門文章 提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問題多種解決方法 “無(wú)法瀏覽網(wǎng)頁(yè)” 十招解決疑難雜癥 路由器無(wú)線不能上網(wǎng)等故障排除 解決VPN路由設(shè)置不能訪問外網(wǎng)的問題
人氣排行 解決VPN路由設(shè)置不能訪問外網(wǎng)的問題 登錄SSH服務(wù)器失敗問題的分析及解決 光纖上網(wǎng) 路由器設(shè)置頁(yè)面進(jìn)不去怎么辦 核心交換機(jī)故障現(xiàn)象及解決辦法 無(wú)線網(wǎng)卡連接不上怎么辦_無(wú)線網(wǎng)卡連接不上解決方法 路由設(shè)置不當(dāng) 導(dǎo)致VPN無(wú)法訪問外網(wǎng) 提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問題多種解決方法 徹底避免環(huán)路問題 正確配置交換機(jī)步驟