Vyatta i limity przepustowości na interfejsie

vyatta_logoNadszedł ten moment, kiedy jestem zmuszony w końcu zabrać się za konfigurację mojej ulubionej Vyatty. Sprawa jest tradycyjnie prosta 🙂 Wyszło mi na to, że będę udostępniął internet po sąsiedzku co za tym idzie wyszło na to, że najlepiej będzie jeżeli całość zestawie na osobnym interfejsie.

Osobną sieć udostępniam przez eth3, do dyspozycji mamy umowne łącze symetryczne 1mbit

configure
set qos-policy traffic-shaper slimak
set qos-policy traffic-shaper slimak bandwidth 512kbit
set qos-policy traffic-shaper slimak default bandwidth 100%
commit

teraz nakładamy regułkę na interfejs eth3

set interfaces ethernet eth3 qos-policy out slimak

Teraz już na naszym interfejsie nie da się pociągnąć więcej niż 512kbit.
Jako, że klient zamówił sobie łącze niesymetryczne musimy mu jeszcze przyciąć upload:

set qos-policy traffic-limiter siecin
set qos-policy traffic-limiter siecin class 1
set qos-policy traffic-limiter siecin class 1 bandwidth 128kbit
commit

teraz regułkę nakładamy na iterfejs

set interfaces ethernet eth3 qos-policy in siecin
commit

Warto pamiętać o zapisaniu zmian
save

Ważna informacja: regułka na ograniczenia INa działa tak, że jeżeli nie ma obciążenia łącza to idzie z maksymalną prędkością, jeżeli pojawia się ruch na regułkach / interfejsach które nie są objęte reguła wtedy prędkość spada do zadanej wielkości.

Oczywiście podałem tutaj maksymalnie prosty schemat działania tego mechanizmu, ponieważ wykorzystałem dodatkowy interface i odpadło mi praktycznie całe rozpoznawanie ruchu. Gdybyśmy chcieli limitować poszczególne komputery / usługi trzeba poczytać o „matchach” czyli o sposobie klasyfikowania ruchu do danej klasy.

Przykład może nie jest optymalny, ale „u mnie działa”