modified on 30 paź 2009 at 11:43 ••• 3 708 views

NTH w RouterOS 3.x

Z MikroTik Wiki

W v3.0 jest trochę inna implementacja NTH. Ma tylko dwa parametry 'every' i 'packet'.

Jak to działa w v3.0

Każda reguła ma swój własny licznik. Gdy reguła otrzymuje pakiet, licznik tej reguły jest zwiększany o jeden. Gdy licznik osiągnie wartość 'every' pakiet zostanie dopasowany (matched) a licznik zostanie zresetowany do zera.

Jeśli nie ustawiono 'passthrough' pakiet będzie oznakowany według poniższego algorytmu:

  • pierwsza reguła nth=2, pierwsza reguła dopasowuje co drugi pakiet, ponieważ 50% całego ruchu jest dopasowywana do reguł
  • druga reguła jeśli passthrough=no będzie dopasowywać tylko 20%ruchu ponieważ w 3.0 potrzebujesz tylko jednej reguły do dopasowania ruchu, w przeciwieństwie do 2.9

Przykład

Możliwe jest dopasowywanie 50% całego ruchu tylko jedną regułą:

/ip firewall mangle
add action=mark-packet chain=prerouting new-packet-mark=AAA nth=2,1;

Jeśli potrzebna jest więcej niż jedna reguła, są dwa sposoby dopasowywania pakietów:

  • pierwsza reguła widzi wszystkie pakiety i dopasowuje 1/3 wszystkich, druga reguła widzi 2/3 pakietów i dopasowuje 1/2, trzecia reguła widzi i dopasowuje wszystkie pakiety, które przeszły przez pierwsze dwie reguły (1/3 wszystkich pakietów).
/ip firewall mangle 
add action=mark-packet chain=prerouting new-packet-mark=AAA nth=3,1 passthrough=no;
add action=mark-packet chain=prerouting new-packet-mark=BBB nth=2,1 passthrough=no;
add action=mark-packet chain=prerouting new-packet-mark=CCC ;
  • wszystkie reguły widzą wszystkie pakiety i każda reguła dopasowuje co trzeci pakiet.
/ip firewall mangle 
add action=mark-packet chain=prerouting new-packet-mark=AAA nth=3,1 passthrough=yes;
add action=mark-packet chain=prerouting new-packet-mark=BBB nth=3,2 passthrough=yes;
add action=mark-packet chain=prerouting new-packet-mark=CCC nth=3,3 passthrough=yes;