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