vpn原理及實現–虛擬網卡構建vpn

來源:互聯網
上載者:User

虛擬網卡通過實現一個字元裝置來支援物理層,這樣應用程式層和物理層就通過這個字元裝置聯絡起來了,從這個字元裝置讀出來的就是虛擬網卡發往物理層的位元組流,寫入字元裝置的資料作為位元組流被虛擬網卡接收,虛擬網卡下面不再是網線或者無線電波,而是一個字元裝置,這樣從字元裝置讀出的還是寫入字元裝置的都是物理層位元組流了,用它來實現隧道再簡單不過了,vpn程式讀取字元裝置,得到封裝好的未經處理資料,然後用ssl再封裝後發往vpn的對端,和loopback的最初嘗試一樣,實現配置一條路由,使得要通過隧道的資料從虛擬網卡流出,最終通過虛擬網卡的字元裝置匯入應用程式層的vpn進程。
     有了虛擬網卡,vpn隧道可以如上述很簡單的實現,那麼還有什麼額外的工作要做呢?由於虛擬網卡的物理層可以通過字元裝置隨意讀寫,那麼一台機器也就被虛擬成了兩台機器,vpn進程可以被設想為運行在另一台機器上,而這台機器有一個網卡串連真實的機器,該網卡就是虛擬網卡,於是問題就轉化成了兩台機器通訊的問題,這個很好辦,完全通過路由就能搞定,因此額外的工作基本沒有,並且我們也避開了抓包,代理等降低效能又很難擴充的概念。虛擬網卡實現的隧道非常靈活,需要做的僅僅是安裝一個虛擬網卡驅動,然後配置一下路由即可,一切盡在我們所熟悉的route命令中搞定。資料流向見:
-----------------------------------------------------------------

-----------------------------------------------------------------
     曾經寫過一篇《關於IP網段間互訪的問題—路由是根本》,現在重新又看了一遍,其實ip網路本身就是一個虛擬網路,任何不通過導線直接相連通訊的網路都是虛擬網路,難道ip網不是構建在各種區域網路,廣域網路,電信網,電視網等物理網路之上的虛擬網路嗎?按照分層的觀點,pstn都可以看成是虛擬網路,vpn作為虛擬網路的意義更特殊罷了,而且實現的也各式各樣,甚為巧妙。
     ip over ssl沒有觸動協議棧,也沒有增加新的協議,利用ssl的靈活性將ip封裝的更加安全了,ssl比ipsec要靈活得多,應用程式層的ssl本身可配置性就比較好,不僅僅可以實現ipsec中dh密鑰協商,還可以使用很多pki的優秀特性。開源軟體一向不會放棄任何優秀的東西,openvpn就是用上述思想完成的,實際上openvpn幾乎沒有做什麼,就是一個整合,整合什麼呢?通讀代碼發現就是配置虛擬網卡,配置路由,讀寫字元裝置,用openssl的庫進行ssl協議封裝,幾乎全部都是現有的東西,然而經過openvpn的整合就成了一個穩定又高效的vpn軟體。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.