在 Win7 設定網路負載平衡 (Network Load Balance in Win7)

在 Win7 設定網路負載平衡 (Network Load Balance in Win7)


在有線跟無線網路越來越普及的今天,可能你的筆電可以連接的網路不只一個,可能有ADSL、Wifi、手機的3.5G 等等。

如果要合併兩條有線網路的頻寬,普通的做法是買個 Load Balancer 平衡負載器(兼路由器),將兩條 ADSL (WAN)都接到同一台,透過網頁介面可以去設定頻寬的分配以達到最有效的利用。好比60%流量或連線(sessions)走 A,40%走 B, 對內的話也可以設定哪個 IP (所連結的電腦)有網路頻寬最優先權等等。

但若是 ADSL/Wifi 跟 3.5G 之間,就沒辦法使用這個方法,而有有軟體的網路負載平衡(要錢),跟用 VMWare+軟體網卡(太複雜),所以都不是我們的選擇。

我們今天也不是勸敗,而是要零花費來合併頻寬!(所以先把你的錢包收起來吧)


你要準備的是:

1. 一台可以上網的電腦
2. 兩個以上的網路連結

這樣就可以進行下一步了(我個人會使用 Cports, Current Ports 來觀察兩條網路的連線使用狀況,頁末有附連結。也可以使用工作管理員來觀察)


首先你可以先抓個 bt 檔(找種子 seeds 多一點的,試驗用)可以到下面那個網址抓
http://kat.ph/movies/?field=seeders&sorder=desc

然後在你連結兩條(或以上)的電腦上下載測試看看,如無意外,Win7 系統理論上只會使用你頻寬最大的那條線路,而其他網路的都是閒置。
(192.168.1.101 閒置)

當然,這不是我們想要的,在 Win7 要達成網路負載平衡並不難,只要做簡單幾個修改。


**建議:先全部看完,稍微有個概念再按照程序進行**

■打造克難式網路負載平衡

1. 修改登錄檔,執行 regedit

增加兩個值,都設為1
[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \NetBT \Parameters]
RandomAdapter = 1 (Disabled = 0, Enabled = 1, Default = 0)
SingleResponse = 1 (Send All = 0, Send One = 1, Default = 0)


a. 手動設定







b. 或透過檔案設定
Enable_Load_balancing.reg (用來啟動網路負載平衡,可複製下文存檔,點擊即可)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
"RandomAdapter"=dword:00000001
"SingleResponse"=dword:00000001




Disable_Load_balancing.reg (用來關閉網路負載平衡,可複製下文存檔,點擊即可)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
"RandomAdapter"=dword:00000000
"SingleResponse"=dword:00000000




2. 修改網路卡的使用先後次序,介面計量 (Metric)

將兩條網路卡的 介面計量 都改成同樣的數字,好比2、3、4 都可以,不能設為 1,1 已經被使用了。



OK, 現在你再下載 bt 看看,可以發現兩條網路都有使用到了。
(192.168.1.101 也有用到了)




■使用心得:
1. 如果你的一條網路線頻寬很大,一條很小,那並不建議你做這個網路負載平衡(NLB),因為這種克難式的 NLB 不夠聰明,無法做頻寬流量或連線的細部分配,而是平均分配連線,所以你上網瀏覽網頁時,有些網頁會很正常,但若剛好分配到小頻寬的連線,就會讀很久,如果你還是覺得要用 NLB,那可以將頻寬大的那條的 介面計量 (Metric) 設為 3,頻寬小的設為 4 ,我試驗的結果會分配比較多連線到 3 的那條。

2. 如果你想要將某條連線固定分配給某個程式使用,可以使用 ForceBindIP 這個小程式,在 DOS 下打

ForceBindIP [IP 位址] [程式與路徑]

例:
ForceBindIP 192.168.1.101 D:\Portable\Utorrent\utorrent.exe

3. 每個人的情況都不同,你可以針對自己的狀況去做一些調整。我是在 Win7 Ultimate 環境下使用,其餘的系統請自行摸索(或許無效)。

4. SingleResponse 好像不設也沒關係~


■附錄
文中提到的 cports,兩個 reg 跟 ForceBindIP 都已經打包壓縮好供下載
http://filedeck.net/zh-tw/files/GUJRBK9Q/NLB.ZIP

Current Ports 下載網頁
http://www.nirsoft.net/utils/cports.html (拉到最下面,在頁底)

ForceBindIP 下載網頁
http://www.r1ch.net/stuff/forcebindip/
喔喔,今天天氣不錯啊~
2012-08-04 1:20 發佈
這個文章蠻有趣的

NetBT其實是protocol , MBT transport driver,看來應該可行

不知實測上效果如何,最好是可以有task manager中的network utilization的結果

ForceBindIP,他是hook bind() , 然後指定adapter , 但是若是connect話 , 應該是沒有辦法的, 我相信這有相容性問題,比如, browser無法load balancing

socket API並不是所有API可assign adapter, 正規的方式是使用routing table

正規的load balancing 在linux有一套API , iprouting,是實作在L3 , 但這是偏gateway才需要 , 實務上 host 應使用routing table

或是買台ASUS router裝tomato dualwan ,

host 若要load balancing , add routing table , 比如 class B xxx 走adapter 1, class B yyy走adapter 2,大約要增加幾十組 routing rule 即可

Dual wan都有個缺點是session問題,有些server會記IP,所以網站會出問題



個人其實會用到的場合大都是 3G + ADSL , 但3g的bandwidth真的是雞肋,

大企業,網咖是dual wan用的大戶

hikaruu wrote:
這個文章蠻有趣的Ne...(恕刪)


謝了,你說得太專業了 XD

Browser 裡面也可以 NLB,我本來也想用 工作管理員 裡面的網路功能圖,但後來還是偷懶用 cports 比較快 :)

有些server會記IP <-- 所以有提供 ForceBindIP
喔喔,今天天氣不錯啊~
補充一點,如果有人喜歡複雜一點的玩法…

軟體的網路負載平衡
NICExpress, Sygate Office Network(好像可以,不確定)

VMWare+軟體網卡
VMWare+pfsense
喔喔,今天天氣不錯啊~
軟體的網路負載平衡
NICExpress, Sygate Office Network(好像可以,不確定)

>> 這兩個tool都年代久遠了,Windows vista/7後應該都不會太好用

VMWare+軟體網卡
VMWare+pfsense

>> VMWARE 可使用bridge mode,指定網卡到3g網卡
>> 現在VDSL bandwidth都10M起跳 , 3g真的太慢了
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?