返回列表 發帖

Load Balancing(負載平衡)

本帖最後由 gfx86674 於 2016-4-25 22:54 編輯

到中國routeros論壇瀏覽,最常看到的討論是網路加疊.
但加疊的您要多線加疊才有意義,
卻更多人將一條線重複多撥,再用Load Balancing進行合併...

這天生邏輯就有問題:當1除n後,您再用n乘回...這還是1不變啊!!

而且從討論又看到中國人常見的缺點:結果論
Load Balancing的目的從不是多線網路加疊,而是如何透過機率讓多線平均分擔.
只要多線滿載,自然會有加疊的錯覺.
但分流上的比例是確實的嗎? 不一定...

以下我們討論nth與pcc兩種機率記算,
若您還是問加疊那一種有效果,那請您按上一頁離開吧.
----------------------------------------
NTH:
  1. /ip firewall mangle
  2. add action=mark-packet chain=prerouting new-packet-mark=Gateway_1 nth=3,1 passthrough=yes
  3. add action=mark-packet chain=prerouting new-packet-mark=Gateway_2 nth=3,2 passthrough=yes
  4. add action=mark-packet chain=prerouting new-packet-mark=Gateway_3 nth=3,3 passthrough=yes
複製代碼
⑴ NTH=3,1即代表每3個發出的new封包,第1個標為Gateway_1
⑵ NTH=3,2即代表每3個發出的new封包,第2個標為Gateway_2
⑶ NTH=3,3即代表每3個發出的new封包,第3個標為Gateway_3

但nth只有這種分配計算嗎? 不...您還有其他方式.
  1. /ip firewall mangle
  2. add action=mark-packet chain=prerouting new-packet-mark=Gateway_1 nth=3,1 passthrough=no
  3. add action=mark-packet chain=prerouting new-packet-mark=Gateway_2 nth=2,1 passthrough=no
  4. add action=mark-packet chain=prerouting new-packet-mark=Gateway_3
複製代碼
⑴ NTH=3,1即代表每3個發出的new封包,第1個標為Gateway_1
⑵ 扣掉給Gateway_1的new封包後,3個new封包還剩2個..
所以將2個剩餘的new封包,留第1 new封包給Gateway_2 (所以用nth=2,1標示)
⑶ 因3個new封包,第1與第2都已經有路由,所以也不用透過nth計算,直接丟給Gateway_3算了
(您當然可以標nth=1,1 ,但沒太大實質意義)
----------------------------------------
PCC:
  1. /ip firewall mangle
  2. add action=mark-connection chain=prerouting new-connection-mark=Gateway_1 \
  3. per-connection-classifier=src-address-and-port:3/0

  4. add action=mark-connection chain=prerouting new-connection-mark=Gateway_2 \
  5. per-connection-classifier=src-address-and-port:3/1

  6. add action=mark-connection chain=prerouting new-connection-mark=Gateway_3 \
  7. per-connection-classifier=src-address-and-port:3/2
複製代碼
PCC是進行除法運算,用餘數來決定路由方向.

如:
src:192.168.88.100:44117 dst:64.233.189.188:80
範例指定pcc用src-address和src-port計算 ,
所以(192+168+88+100+44117)/3=14888.333333

.3333代表沒整除,餘數為1 ,所以此connection的最後mark是Gateway_2

因是餘數計算,所以只有3/0(代表整除) ,不可能有3/3 (餘數和除數等同,這是什鬼東西)

因是餘算運算,所以連線數量太少有時會固定落在幾條Gatway
如:
src:192.168.88.100:44117 與src:192.168.88.104:1003 因餘數皆為1,
所以會固定落在Gateway_2

所以要不讓連線固定落在幾條Gateway ,
可在pcc加入更多變數,如:dst-address 或dst-port ,甚至both全混入計算,
讓餘數有更多的變化~
----------------------------------------
以上得知...
nth傾向指定比例方式分配,pcc則傾向亂數.

思考方向:
3線時,nth 就只能用每3個封包去記算,pcc就只能用3去當除數嗎...

那可不...
nth您用每5個封包去決定,沒人說不可以.
pcc您用7去當除數,也沒人說不可以.

只是要注意的是:
nth 3線用每5個封包決定,您要標記好 封包4/封包5 該往那個路由.
pcc 3線用7去除時,您要標計好餘數是3/4/5/6時 該往那個路由.

回復 1# gfx86674
这是我以前在中国的经验,现在不知道对不对了。
在中国的的拨号上网的控制有两个,1)网线(电话线)2)账号定的网速。
很多时,我们买低速的便宜的宽带。也可能是突破Upload的限制,所以用拨号叠加办法来解决。
想现在我们用光纤,买了20M,有什么办法能提供40M的下载.
不管你给多少钱移动光纤Upload 只有10M,我们要做网站,能变成20M吗?

TOP

本帖最後由 gfx86674 於 2016-4-25 15:46 編輯
回復  gfx86674
这是我以前在中国的经验,现在不知道对不对了。
在中国的的拨号上网的控制有两个,1)网线 ...
yiucsw 發表於 2016-4-25 14:11

您也陷入了"累加"的迷思...

連線要求從gateway1進入網站,網站回覆只能從gateway1回去.
連線要求從gateway2進入網站,網站回覆只能從gateway2回去.

所以gateway1進入,與gateway2是沒任何關係的;
gateway2進入,也是與gateway1無關係的.
既然2線是彼此沒任何關係,那來的累加?
只能形容說您的網站有兩個路口,但兩個入口並不會累加變成1個大的,就這樣.

Load Balancing(負載平衡)是指本地發出"請求"時,
不要固定從1個gateway,而是亂數讓多個gateway同時送出請求.

因是多個gateway發出,所以回覆時會從不同gateway一起送回.
這才是目的~

TOP

本帖最後由 gfx86674 於 2016-4-25 16:45 編輯

當您有兩線,一條是100/40M ,另一是20/5M.
Load Balancing並無法得知大封包回應該走100/40M會比較好,
它只知道依nth或pcc計劃去發出"請求"...

所以有可能請求是從20/5這條發出去的,
所以回覆也只會從20/5這條回來,與100/40無關...

只有當請求從100/40發出,封包才回從100/40這條回來.

能不能規定"回覆"是大封包時,"要求"走大水管(這樣"回覆"才會走大水管)呢?
一句話:不可能!! 除非遠端伺服器也是您架的,您知道回覆的封包是大是小才有機會.

TOP

这文章说明我们碰对的问题。1) 移动宽带不靠谱。2)单线叠加。当网速只有1M/2M时,想法有点不一样。

http://www.icpcw.com/Parts/Peripheral/Skill/3270/327061_all.htm

在香港,我也是多线上网,没有叠加, ISP(Switch)->Port2(Router(厅)->Router(房)) +Port3(NowTV) 结果连苏宁网站都上不去,原因是我猜是 Latency.
最后是ISP(switch) -> Port 2(Router(厅)->NowTV) + Port3(Router(房)).
我还没有完全解决 IPTV的问题。

TOP

本帖最後由 gfx86674 於 2016-4-26 12:36 編輯
这文章说明我们碰对的问题。1) 移动宽带不靠谱。2)单线叠加。当网速只有1M/2M时,想法有点不一样。
在 ...
yiucsw 發表於 2016-4-26 11:33
您主訴與本主題無關吧,您的問題在IPTV ,您應該往VLAN方向解決.
RB750/750G - Vlans Trunking
用vlan 橋接IPTV
實做用vlan 橋接IPTV
使用VLAN連接MOD Part 1
使用VLAN連接MOD Part 2
使用VLAN連接MOD Part 3
使用VLAN連接MOD Part 4

TOP

返回列表