Stránka 1 z 1

Queue Tree + bridge

Napsal: 09 Apr 2015 01:16
od ludvik
Nazdar ve spolek. Řešil jste někdo (a vyřešil ...) takovýto problém:

mějme mikrotik. Momentálně verze 6.27 na RB850Gx2
Na jednom z interfaců třikrát VLAN. A ty v jednom bridge.

Potřebuji vytvořit half-duplexní QOS. Mám řekněme 120Mbit a každému potřebuji dát nějaký rozumný podíl. Nezajímají mě žádné optimalizace, nic. Stačí mi PCQ na upload a download klienta.

Kód: Vybrat vše

/queue tree
add limit-at=120M max-limit=120M name=queue1 parent=global queue=default
add limit-at=40M max-limit=70M name=ap1 parent=queue1 queue=default
add name=ap1_in packet-mark=AIR1_IN parent=ap1 queue=w5ClientUp
add name=ap1_out packet-mark=AIR1_OUT parent=ap1 priority=3 queue=w5ClientDown


Stačí omarkovat pakety na základě toho, z jakého bridge interface přijdou a jakým odejdou ... jednoduché? Neee ...
Input jde. Jak v normálním Mangle, tak v bridge filters. Pakety se omarkují, countery nabíhají a QT na ně reaguje a funguje.

Output je oříšek. V normálním mangle to NEJDE. Pravidlo na out-interface=bridge funguje. Ale na out-bridge-port už ne. Ani samostatně, ani dohromady. Nereaguje. Takže to použitelné není.

Takže jsem to všechno přesunul do bridge filteru:

Kód: Vybrat vše

/interface bridge filter
add action=mark-packet chain=input in-bridge=bridge1 in-interface=vlan51 new-packet-mark=AIR1_IN
add action=mark-packet chain=forward in-bridge=bridge1 in-interface=vlan51 new-packet-mark=AIR1_IN
add action=mark-packet chain=output new-packet-mark=AIR1_OUT out-bridge=bridge1 out-interface=vlan51
add action=mark-packet chain=forward new-packet-mark=AIR1_OUT out-bridge=bridge1 out-interface=vlan51
add action=mark-packet chain=input in-interface=vlan52 new-packet-mark=AIR2_IN
add action=mark-packet chain=forward in-interface=vlan52 new-packet-mark=AIR2_IN
add action=mark-packet chain=output new-packet-mark=AIR2_OUT out-interface=vlan52
add action=mark-packet chain=forward new-packet-mark=AIR2_OUT out-interface=vlan52
add action=mark-packet chain=input in-interface=vlan53 new-packet-mark=AIR3_IN
add action=mark-packet chain=forward in-interface=vlan53 new-packet-mark=AIR3_IN
add action=mark-packet chain=output new-packet-mark=AIR3_OUT out-interface=vlan53
add action=mark-packet chain=forward new-packet-mark=AIR3_OUT out-interface=vlan53

Toto funguje, countery počítají, vypadá to OK.
Jenže QT na to opět naprosto vůbec nereaguje (SQ také ne). Jen na ty in-interface ano ...

Napadá vás někoho, co s tím? Vidíte chybu? Rozhození do třech IP segmentů nechci. Potřebuji to takto.

Re: Queue Tree + bridge

Napsal: 09 Apr 2015 03:35
od ludvik
Si asi stihnu odpovědět sám ... Prostě jim nechodí klasifikace podle out-bridge-port. A když už alespoň v tom bridge-filteru chodí, tak nelze packet-mark nikde použít. Mají v tom pěkný bordel ...

Musel jsem to obejít dynamickým address-listem. Pro každý in-bridge-port jeden (to funguje, ukládám tam src-address). A následně OUT provoz markovat podle něj a ne podle portu bridge. IN jsem si nechal v bridge filteru.

Re: Queue Tree + bridge

Napsal: 09 Apr 2015 08:00
od info@adambalko.cz
Nevím, jestli jsem to celé správně pochopil, ale v případě, že se na routeru používá NAT a maškaráda spolu s QT, tak v mangle v jednom směru používám prerouting a v druhém postrouting, aby manglování fungovalo ;)

Re: Queue Tree + bridge

Napsal: 09 Apr 2015 10:49
od ludvik
o NAT samozřejmě nemluvím, protože tam není :-)