天天看點

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

    • 利用VMWare和軟路由多點傳播實作校園網帶寬疊加
      • 聲明
      • 文章概述
      • 帶寬限制原理
      • 在此特定條件下的思路
      • 可行性
      • 具體操作和原理
        • 愛快軟路由的安裝
        • 登入并配置
        • 實作每個網卡的認證
        • 負載均衡
        • 結果展示
      • 軟路由工作原理與疑問
      • 不足與展望

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

tags:有趣小實驗

聲明

  1. 文章可以随意轉載,但請注明出處。
  2. 文中有一些地方引用了其他文章,但都已标明出處。如有侵犯,可立即删除。
  3. 文中肯定會有不足和錯誤,歡迎指出讨論。

文章概述

實驗室裡限制了網速,一般情況下網速最快能達到1 MB/s 。平日裡用的話還湊合,但是如果想下載下傳點資料什麼的網速是大大的不夠。是以萌生了一個“突破網速限制的想法”。我們實驗室裡電腦的上網方式是這樣的:

電腦可以設定動态擷取IP位址或者自己設定一個靜态的和網關在同一個網段中的IP位址,然後打開浏覽器随便上一個網頁,就會跳轉到一個認證的頁面,填寫好自己的學号、密碼之後就可以随意上網了。

而且,更為重要的是我們校園網一個賬号可以多終端登入。也就是說,一個賬号在電腦 A 上登入之後在電腦B上還可以登入。

是以這篇文章針對如上所述的情況,利用工具愛快軟路由和我們校園網賬号可以多終端登入的特性,實作了一号多點傳播和帶寬疊加。

由于是讀研狗,下面寫的東西設計的理論和思考過程可能比較多,如果隻是對具體的操作過程感興趣,請借助目錄直接跳轉到具體操作。

帶寬限制原理

剛開始解決這個問題的時候,最先進入腦海的問題就是學校是如何進行限速的,知道了限速的原理才能更好的解決這個問題,所謂知己知彼。在知乎上面看到了一個比較靠譜的說法:

  1. 基于以太網(鍊路層)的限速,因為802.3規範裡有PAUSE幀,還有各種各樣的QoS,隻要用這些就可以達到限速的目的,同時對于低速裝置和不支援PAUSE幀的裝置,可以采用發沖突包的方法(以太網封包遇到沖突包會自動重發)。
  2. 基于IP層的限速,因為IP標頭有源位址,而轉發(過路由)的時候源位址都要重寫的,那麼如果發現某個源位址流量過大,直接把IP包丢了就行了。
  3. 基于TCP的限速,同樣的,因為轉發要過路由,是以不停的發retransmission就可以了。
  4. 基于協定的、UDP的限速,限速時,解析其端口号等内容,判斷包的性質,超過流量了就丢了。

由于不大好确定學校具體使用的那種方式,是以找到一個普适的方法還是很關鍵的。

在此特定條件下的思路

雖然不能夠确定學校裡使用的具體的方法,但是通過分析了上述的校園網認證網頁的源碼,發現其(中的邏輯或者說浏覽器)不僅上傳了登陸用的學号和密碼,還收集了本機的IP位址、Mac位址上傳到了伺服器。這樣也就是說,學生 S 點選了登入之後,校園網中有這樣一個裝置,能夠以某種方式記錄下來IP位址為IPA,mac位址為 MacA 的主機A擁有了上網的權限(此處具體的是接入的電信還是教育網我也不大明白,因為我從教育直通車看到的自己的IP位址是不一樣的,但是不影響我們的進一步工作),換言之校園網中的路由裝置隻把認證過的主機發送的資料包轉發到校園外的網絡中去。通過如上的讨論,

如果能有這樣一套工具、方法使我自己的電腦能有多個網卡連接配接到校園網上面,或者能連接配接到一個有多個網卡的路由器上,此路由器連接配接到校園網上。然後為每個網卡都完成上述的驗證登入,再通過一種方式實作流量的均衡。

那麼就能夠實作設想的帶寬的疊加了。

可行性

幸好有前人的努力,借助VMWare和軟路由,上面這樣一個想法可以很友善地實作。實際測試了幾個軟路由,分别是

海蜘蛛、mikrotik、愛快

。海蜘蛛和愛快基本功能相似屬于“傻白甜”式的路由器,但是愛快比海蜘蛛友善在可以動态的檢測整個路由器系統的狀态,而且界面也好看。至于mikrotik,專業級路由器,絕對可以實作設想的功能,但是配置實在是太複雜了,折騰了好幾天也沒搞定,最終還是選用了愛快軟路由,以下簡稱愛快。

愛快提供了友善配置的負載均衡的方法,至于如何為每一個網卡實作校園網認證,就需要手動的配置了。

具體操作和原理

1.愛快軟路由的安裝

軟路由的安裝比較簡單,愛快官網上面下載下傳好鏡像之後,參照這個安裝教程完成安裝。安裝過程中需要注意的是,硬碟選擇IDE類型,所有加入的網卡都是橋接模式。我為路由器虛拟了五個網卡,都是橋接模式。最終虛拟的配置如下圖

利用VMWare和軟路由多點傳播實作校園網帶寬疊加
五個網卡中的一個端口作為lan口,連接配接連接配接我的電腦。其餘的四個作為wan口連接配接到校園網中。如果能夠為每個wan口都認證,可以獲得四倍的帶寬加成。

安裝完成,然後重新開機後可以看到如下界面。

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

此時容易了解的拓撲如下圖所示:

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

愛快預設的web管理位址如上圖示:

192.169.1.1:80

,也就是說其lan口的預設位址為:

192.168.1.1

,我将自己的電腦的IP位址改為

192.168.1.0/2

4網段中的一個,譬如

192.168.1.2

,然後将預設網關改為愛快的lan口

192.168.1.1

,DNS改為之前動态獲得IP位址時的DNS位址,最終改完之後的主機的IP位址如下圖所示:

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

這個時候在浏覽器中輸入:

192.168.1.1

,回車。然後就可以看到愛快路由器的登陸界面了。

2.登入并配置

愛快預設的登入密碼是使用者名

admin

,密碼

admin

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

下一步要做的事情是,為每個wan口綁定網卡并設定為DHCP模式。首先選擇網卡

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

然後,配置網卡為DHCP模式,并且按照要求設定次wan口對應的帶寬。

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

點選儲存之後,稍等片刻重新整理一下就可以看到網卡自己獲得了IP位址。

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

下面的操作比較機械了,點選圖示“加号”,多添加幾個網卡,然後按照上面的步驟配置好

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

3.實作每個網卡的認證

按照上面的步驟配置好之後,愛快預設所有的流量都走wan1口,此時用浏覽器随便打開一個網頁,應該就會跳轉到校園網的認證界面,填寫好賬号密碼後登陸,此時wan1口就經過了認證了。我們的目的是使每一個網卡都經過認證,做法是通過下圖示的愛快的“預設路由”的功能為每個wan口(的網卡)完成認證。

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

首先選擇選擇wan1作為預設路由,在浏覽器中其他頁面随便打開一個位址就會彈出“上網登入”的頁面,登陸之。

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

然後選擇wan2作為預設路由,在浏覽器中其他頁面随便打開一個位址彈出登陸界面,登陸之。以此類推,登入wan3,wan4。登陸的過程中可能出現登陸界面無法加載的情況,這個時候需要針對對應的wan口,先 “斷開” DHCP連接配接然後再重新連接配接即可。使最後的wan4登陸之後,取消wan4作為預設路由,即所有的wan口都沒有選擇作為預設路由。

現在在學校的校園網管理頁面中可以看到我有四個對應的登入。

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

此時四個網口都經過了認證,需要做的就是對所有(TCP)連接配接,使其在四個wan口負載均衡。具體的原理在下文中讨論,下面需要做的具體的事情是:

4.負載均衡

愛快中路由規則強弱為

負載均衡>預設路由

,也就是說設定負載均衡之後還有問題去測試修改預設路由的時候,需要先禁用負載均衡的規則。在愛快中添加負載均衡規則

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

具體設定如下

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

點選完确定不管你信不信,這個時候已經實作帶寬的疊加了。此時我的dota2更新速度

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

5.結果展示

你可能在想,為毛折騰了半天網速并沒有快到超出想象。其實事實是這樣的,由于現在我的電腦在真正向外發資料包之前會把資料包發給虛拟機中的愛快,愛快要處理一遍每一個資料包然後重新封裝修改校驗和。這些操作的重擔最終還是落在了我自己的電腦上,是以開四個wan口的時候我的CPU已經是這樣的了

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

我試了一下我自己的電腦,五年前的五千塊的華碩普通筆記本,三個wan口已經是極限了,網速最快也就能達到3MB/s。不過現在限制我網速的已經不是校園網,而是我自己的CPU的計算能力了,開心。^_^

軟路由工作原理與疑問

上面稍微提到過配置好了軟路由之後的上的拓撲關系,但是邏輯上的拓撲是這樣的。參照一圖看懂host_only nat bridge拓撲結構和VMware Workstation下VMnet1等虛拟網卡與主機網卡之間的關系,此時的網絡實際拓撲如下圖所示:

利用VMWare和軟路由多點傳播實作校園網帶寬疊加

為了驗證上圖的拓撲結構(注意VMNet0是一個交換機,不是路由器,并不能在

控制台\網絡和 Internet\網絡連接配接

中看到它),可以在啟動了愛快并為每一個wan口動态申請到IP位址之後,進行測試。假設此時wan1口IP位址為

58.198.177.14

,主機中直接使用

tracert

測試該IP位址可得:

PS C:\Windows\system32> tracert 

通過最多  個躍點跟蹤到  的路由

        ms      ms      ms  

跟蹤完成。
           
下面的部分均為個人推測,如果有任何問題,歡迎指正。

可以看出資料包不需要經過路由器直接到達了wan1口。那麼在這樣的拓撲的情況下,愛快軟路由是如何工作的呢?由于主機中配置的預設路由為

192.168.1.1

,在最開始的情況下主機是不知道

192.168.1.1

這個網口對應的mac位址的。于是,在想要發送第一個資料包的時候主機使用arp協定通過VMNet0找到了lan1口的mac位址。從此之後,主機發送的資料包的

目的mac位址

都是lan1口的mac位址了。在VMNet0收到資料包之後,通過分析發現mac位址和愛快軟路由lan1的mac位址相等,于是将資料包給lan1口,這樣資料包就到了愛快軟路由裡面了。假設此時已經開啟了負載均衡,愛快會分析這是不是一個

SYN

資料包,就是說這是不是一個TCP三向交握的第一次的資料包。如果是的話,假設此資料包的目的IP位址為

10.10.10.10

,找到幾個wan口上面

實時(tcp)連接配接

最小的一個wan口wan1,使用NAT技術将此次的TCP連接配接映射wan1口上,也就是說主機發給

10.10.10.10

的資料包原IP位址 (原端口也改了,此處省略端口暫不讨論) 都被愛快軟路由改成了wan1的IP位址。

但是這裡不能确定的是愛快究竟是依照

(目的IP位址)

的一進制組還是

(目的IP位址,目的端口)

的二進制組來差別兩個連結的。

另外測試發現, 迅雷,BT下載下傳可以使用使用此方法加速, 百度網盤,一般的網盤工具是不可以加速的。

不足與展望

  1. 通過上面的讨論知道,即使多次打開

    CSDN首頁

    這同一個頁面,主機通過NAT僞裝的IP位址也可能是不一樣的,因為這是多個HTTP連接配接。是以可能會導緻CSDN老是提醒需要登陸。
  2. 雖然相對ros軟路由來說,愛快需要配置的東西已經很少了,但是如果wan口比較多的話配置起來還是挺麻煩的,下一步想看看如果能夠快速的配置和對每一個網卡登入校園網。
  3. 看到知乎上面的這個問答,其中還是有很多東西可以搞一搞的,有時間了弄一弄,有什麼進展會随時在部落格更新。

繼續閱讀