| 本帖最後由 gfx86674 於 2016-4-25 22:54 編輯 
 到中國routeros論壇瀏覽,最常看到的討論是網路加疊.
 但加疊的您要多線加疊才有意義,
 卻更多人將一條線重複多撥,再用Load Balancing進行合併...
 
 這天生邏輯就有問題:當1除n後,您再用n乘回...這還是1不變啊!!
 
 而且從討論又看到中國人常見的缺點:結果論
   Load Balancing的目的從不是多線網路加疊,而是如何透過機率讓多線平均分擔.
 只要多線滿載,自然會有加疊的錯覺.
 但分流上的比例是確實的嗎? 不一定...
 
 以下我們討論nth與pcc兩種機率記算,
 若您還是問加疊那一種有效果,那請您按上一頁離開吧.
 ----------------------------------------
 NTH:
 ⑴ NTH=3,1即代表每3個發出的new封包,第1個標為Gateway_1複製代碼/ip firewall mangle
add action=mark-packet chain=prerouting new-packet-mark=Gateway_1 nth=3,1 passthrough=yes
add action=mark-packet chain=prerouting new-packet-mark=Gateway_2 nth=3,2 passthrough=yes
add action=mark-packet chain=prerouting new-packet-mark=Gateway_3 nth=3,3 passthrough=yes
⑵ NTH=3,2即代表每3個發出的new封包,第2個標為Gateway_2
 ⑶ NTH=3,3即代表每3個發出的new封包,第3個標為Gateway_3
 
 但nth只有這種分配計算嗎? 不...您還有其他方式.
 ⑴ NTH=3,1即代表每3個發出的new封包,第1個標為Gateway_1複製代碼/ip firewall mangle
add action=mark-packet chain=prerouting new-packet-mark=Gateway_1 nth=3,1 passthrough=no
add action=mark-packet chain=prerouting new-packet-mark=Gateway_2 nth=2,1 passthrough=no
add action=mark-packet chain=prerouting new-packet-mark=Gateway_3
⑵ 扣掉給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:
 PCC是進行除法運算,用餘數來決定路由方向.複製代碼/ip firewall mangle
add action=mark-connection chain=prerouting new-connection-mark=Gateway_1 \
per-connection-classifier=src-address-and-port:3/0
add action=mark-connection chain=prerouting new-connection-mark=Gateway_2 \
per-connection-classifier=src-address-and-port:3/1
add action=mark-connection chain=prerouting new-connection-mark=Gateway_3 \
per-connection-classifier=src-address-and-port:3/2
  如:
 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時 該往那個路由.
 |