QoS łącze asymetryczne

Problemy z pozostałymi technologiami (SDH, IronPort, WAAS itp.)
Wiadomość
Autor
TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

QoS łącze asymetryczne

#1

#1 Post autor: TomekMr »

Witam,
Posiadam łącza asymetryczne 2M na 512k.
Przy przesyłaniu w dwie strony większej ilości danych zatyka mi łącze(oczywiste).
Chciałbym jednak priorytezować pakiety ACK i pchać je na początek kolejki.

Próbował już ktoś takie rozwiązanie?

lbromirs
CCIE
CCIE
Posty: 4101
Rejestracja: 30 lis 2006, 08:44

Re: QoS łącze asymetryczne

#2

#2 Post autor: lbromirs »

Jasne:

Kod: Zaznacz cały

! na interfejsie od strony użytkowników odpowiednio oznaczamy ruch
interface ge0/1
 ip policy route-map rm-pbr-synack 
! ma ona następującą konstrukcję:
route-map rm-pbr-synack permit 10
 match ip address acl_pbr_synack
 match length 0 100
 set ip precedence network ! lub cokolwiek wg. Twojej polityki QoS
 set ipv6 precedence 7 ! j.w.
! ACLka jest prosta:
ip access-list extended acl_pbr_synack
 permit tcp any any match-any +ack 
! teraz polityka na wyjściu:
policy-map pm-qos-egress
 class cm-qos-synack ! class-mapa oczywiście pasuje do wyżej wybranych wartości precedence lub DSCP
  priority 8

TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

#3

#3 Post autor: TomekMr »

Dzięki!
Wyławianie ack działa ale nadal nie do końca wiem jak wypchnąć te ack w pierwszej kolejności.

Mam coś takiego:
#ACLka:
ip access-list extended synack
permit tcp any any match-any +ack

#class-map:
class-map match-all wyjscie
match access-group name synack

#na wyjściu:
policy-map wyjsciowa
class wyjscie
priority 128

#interface wewnetrzny
ip policy route-map synack

#interface zewnetrzny
service-policy output wyjsciowa
przesyłam w dwie strony pliki i zamiast otrzymać otrzymać wysycenie łącza mam jakieś 60k

Jakieś pomysły?

lbromirs
CCIE
CCIE
Posty: 4101
Rejestracja: 30 lis 2006, 08:44

#4

#4 Post autor: lbromirs »

TomekMr pisze:Dzięki!
Wyławianie ack działa ale nadal nie do końca wiem jak wypchnąć te ack w pierwszej kolejności.

Mam coś takiego:
#ACLka:
ip access-list extended synack
permit tcp any any match-any +ack

#class-map:
class-map match-all wyjscie
match access-group name synack

#na wyjściu:
policy-map wyjsciowa
class wyjscie
priority 128

#interface wewnetrzny
ip policy route-map synack

#interface zewnetrzny
service-policy output wyjsciowa
przesyłam w dwie strony pliki i zamiast otrzymać otrzymać wysycenie łącza mam jakieś 60k

Jakieś pomysły?
A przepraszam. Źle zrobiłeś.

Po to jest route-mapa, żeby łapać pakiety o odpowiedniej długości. Na razie sprawdzasz tylko obecność ustawionej flagi, a flagę ACK będzie miało ustawione większość segmentów TCP.

TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

#5

#5 Post autor: TomekMr »

Zmieniłem w między czasie
class-map match-all wyjscie
match ip precedence 5
a na wyjściowym int mam
Service-policy output: wyjsciowa

Class-map: wyjscie (match-all)
14550 packets, 1308729 bytes
1 minute offered rate 3000 bps
Match: ip precedence 5

Class-map: class-default (match-any)
72612 packets, 39317939 bytes
1 minute offered rate 81000 bps, drop rate 0 bps
Match: any

lbromirs
CCIE
CCIE
Posty: 4101
Rejestracja: 30 lis 2006, 08:44

#6

#6 Post autor: lbromirs »

TomekMr pisze:Zmieniłem w między czasie
class-map match-all wyjscie
match ip precedence 5
a na wyjściowym int mam
Service-policy output: wyjsciowa

Class-map: wyjscie (match-all)
14550 packets, 1308729 bytes
1 minute offered rate 3000 bps
Match: ip precedence 5

Class-map: class-default (match-any)
72612 packets, 39317939 bytes
1 minute offered rate 81000 bps, drop rate 0 bps
Match: any
Skąd wiesz, że pakiety ACK mają ustawione IP Precedence 5? Pokaż proszę całą, aktualną konfigurację routera.

TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

#7

#7 Post autor: TomekMr »

IP Precedence 5 są ustawiane przez
route-map synack permit 10
match ip address synack
match length 0 100
set ip precedence critical


ip access-list extended synack
permit tcp any any match-any +ack

lbromirs
CCIE
CCIE
Posty: 4101
Rejestracja: 30 lis 2006, 08:44

#8

#8 Post autor: lbromirs »

TomekMr pisze:IP Precedence 5 są ustawiane przez
route-map synack permit 10
match ip address synack
match length 0 100
set ip precedence critical


ip access-list extended synack
permit tcp any any match-any +ack
No dobrze, to teraz puść jakiś transfer w obie strony i zrzuć parę razy 'sh policy-map int x/y'. Swoją drogą, zmniejszyłbym te 128 do 64...

TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

#9

#9 Post autor: TomekMr »

Przetestowałem kilka konfiguracji i ciągle nic...
Cały czas idzie równo w obie strony.

Aktualnie mam
class-map match-all wyjscie
match ip precedence 5


policy-map wyjsciowa
class wyjscie
priority 64


route-map synack permit 10
match ip address synack
match length 0 100
set ip precedence critical

a wyniki sh policy-map:
####################################


Service-policy output: wyjsciowa

Class-map: wyjscie (match-all)
1056 packets, 86799 bytes
1 minute offered rate 8000 bps, drop rate 0 bps
Match: ip precedence 5
Queueing
Strict Priority
Output Queue: Conversation 136
Bandwidth 64 (kbps) Burst 1600 (Bytes)
(pkts matched/bytes matched) 0/0
(total drops/bytes drops) 0/0

Class-map: class-default (match-any)
5950 packets, 7462612 bytes
1 minute offered rate 454000 bps, drop rate 0 bps
Match: any
######
30s później:

Service-policy output: wyjsciowa

Class-map: wyjscie (match-all)
2540 packets, 208434 bytes
1 minute offered rate 19000 bps, drop rate 0 bps
Match: ip precedence 5
Queueing
Strict Priority
Output Queue: Conversation 136
Bandwidth 64 (kbps) Burst 1600 (Bytes)
(pkts matched/bytes matched) 0/0
(total drops/bytes drops) 0/0

Class-map: class-default (match-any)
8613 packets, 11127980 bytes
1 minute offered rate 521000 bps, drop rate 0 bps
Match: any
######
30s później:

Service-policy output: wyjsciowa

Class-map: wyjscie (match-all)
3572 packets, 292602 bytes
1 minute offered rate 18000 bps, drop rate 0 bps
Match: ip precedence 5
Queueing
Strict Priority
Output Queue: Conversation 136
Bandwidth 64 (kbps) Burst 1600 (Bytes)
(pkts matched/bytes matched) 0/0
(total drops/bytes drops) 0/0

Class-map: class-default (match-any)
10448 packets, 13642642 bytes
1 minute offered rate 535000 bps, drop rate 0 bps
############################################################

lbromirs
CCIE
CCIE
Posty: 4101
Rejestracja: 30 lis 2006, 08:44

#10

#10 Post autor: lbromirs »

OK, wygląda na to, że wysycasz interfejs - w końcu jest 18kbps ruchu. Możesz sobie jeszcze przez 'load-interface 30' skrócić czas wyciągania średniej dla polityki (dołóż na interfejsach).

Dla pewności możesz sobie zrobić hierarchiczną politykę:

Kod: Zaznacz cały

policy-map Shaper0.5M
  class class-default
     shape average 512000
   service-policy wyjsciowa
I obserwować jak to wygląda.

TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

#11

#11 Post autor: TomekMr »

Nie do końca... na fa mam transfer w obie strony na poziomie 60k.
Jak mam tylko ruch wejsciowy na interface to jest na poziomie około 260k.

lbromirs
CCIE
CCIE
Posty: 4101
Rejestracja: 30 lis 2006, 08:44

#12

#12 Post autor: lbromirs »

TomekMr pisze:Nie do końca... na fa mam transfer w obie strony na poziomie 60k.
Jak mam tylko ruch wejsciowy na interface to jest na poziomie około 260k.
60k... czego? Twoja policy-mapa mówi że 64kB/s:

Kod: Zaznacz cały

Service-policy output: wyjsciowa 
Class-map: wyjscie (match-all) 
3572 packets, 292602 bytes 
1 minute offered rate 18000 bps, drop rate 0 bps 
Class-map: class-default (match-any) 
10448 packets, 13642642 bytes 
1 minute offered rate 535000 bps, drop rate 0 bps
535kbit/s wysyłasz. Jeśli możesz ściągać tylko 64kB/s to warto zrobić capture całego ruchu na interfejsie wejściowym i wyjściowym i się mu przyjrzeć.

TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

#13

#13 Post autor: TomekMr »

Tak, 64kB/s ale tylko ruchu wyłapanego przez tą policy-map(pakiety ack).
Reszta powinna wysycać resztę łącza. Przynajmniej ja to tak rozumiem.

Dodatkowo chciałbym dodać (o czym zapomniałem na początku) pakowane wszystko jest w GRE.

TomekMr
rookie
rookie
Posty: 10
Rejestracja: 13 wrz 2013, 15:09

#14

#14 Post autor: TomekMr »

Aktualnie mam
class-map match-all wyjscie
match access-group name precedence


policy-map wyjsciowa
class wyjscie
priority 8



interface Tunnel0
qos pre-classify

ip access-list extended precedence
permit ip any any precedence critical
ip access-list extended synack
permit tcp any any match-any +ack


route-map synack permit 10
match ip address synack
match length 0 100
set ip precedence critical


interface wewnętrzny
ip policy route-map synack


interface zewnętrzny
service-policy output wyjsciowa
Trafienia w obie aclki są ale nie udaje mi się osiągnąć zamierzonego efektu.
Jakby policy-map była źle skonfigurowana i nie pchała ack na początek kolejki.

Jakieś jeszcze pomysły?

Wolf
wannabe
wannabe
Posty: 297
Rejestracja: 20 cze 2005, 09:44
Lokalizacja: Warszawa

#15

#15 Post autor: Wolf »

TomekMr pisze:Przetestowałem kilka konfiguracji i ciągle nic...
Cały czas idzie równo w obie strony.
Co znaczy stwierdzenie że idzie równo w obie strony?
TomekMr pisze:Aktualnie mam

Kod: Zaznacz cały

policy-map wyjsciowa
 class wyjscie
  priority 8
Cyt z cisco.com:

Kod: Zaznacz cały

You create a priority queue with these set of commands:

    Router(config)# policy-map policy-name
     
    Router(config-pmap)# class class-name
     
    Router(config-pmap-c)# priority kpbs [bytes]

During congestion conditions, the traffic class is guaranteed bandwidth equal to the specified rate. (Recall that bandwidth guarantees are only an issue when an interface is congested.) In other words, the priority command provides a minimum bandwidth guarantee.

In addition, the priority command implements a maximum bandwidth guarantee. Internally, the priority queue uses a token bucket that measures the offered load and ensures that the traffic stream conforms to the configured rate. Only traffic that conforms to the token bucket is guaranteed low latency. Any excess traffic is sent if the link is not congested or is dropped if the link is congested.
Więc ustawiając "priority 8" podczas zatoru nie tylko priorytetujesz, ale też limitujesz (w tym wypadku do 8 kbps) żeby kolejką priority nie zagłodzić pozostałych.
TomekMr pisze:Tak, 64kB/s ale tylko ruchu wyłapanego przez tą policy-map(pakiety ack).
Reszta powinna wysycać resztę łącza. Przynajmniej ja to tak rozumiem.
Tylko przez klasę łapiącą odpowiednie pakiety z flagą ACK masz wysycone znacząco mniej niż 64kB/s... ~64kB/s to Ty masz jak zsumujesz całość oferowango przez klasy pasma (oczywiście kbps i kB/s to nie to samo :idea: )

ODPOWIEDZ