Problem kolejkowania dostępu czyli zarządzanie przepustowością sieci



Podobne dokumenty
Kształtowanie ruch w sieciach Linux

eth /30 eth1 eth /30 eth /30 Serwer IPERF

QoS jakośćusługwsieciachip

Sterowanie przepływem danych w Linuxie 2.2

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Sterowanie przepływem danych w Linuxie

Instrukcje dotyczące funkcji zarządzania pasmem w urządzeniach serii ZyWALL.

Rozdział STEROWANIE PRZEPŁYWEM RUCHU SIECIOWEGO. 1. Wprowadzenie

Instrukcja dotycząca funkcji zarządzania pasmem w urządzeniach serii Prestige 660HW.

Kolejkowanie pasma w Linuxie. Autor: Piecuch Tomasz IVFDS

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

Firewalle do zastosowań domowych

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

Sieci Komputerowe 2 / Ćwiczenia 2

praktyczne zastosowania mechanizmów QoS, Linuxowe HTB paweł kudzia

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Ograniczanie pasma internetowego za pomocą IMQ i 7Layer

Zadania do wykonania Firewall skrypt iptables

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Ruter - Linux 2.4. wersja dokumentu 0.9. Dubas Bartłomiej (dubcio@hoga.pl) FIREWALL, KONTROLA PRZEPŁ YWU, ZLICZANIE RUCHU

Instrukcja programu Wireshark (wersja 1.8.3) w zakresie TCP/IP

FreeBSD/DUMMYNET. Jan Szumiec. 12 grudnia 2002

Wybrane mechanizmy gwarantowania jakości usług w sieciach IP. Dariusz Chaładyniak, Maciej Podsiadły * Warszawska Wyższa Szkoła Informatyki

Konfiguracja vsftpd ( Very Secure FTP Server )

Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv Konfiguracja routingu statycznego IPv6...

Przyjrzyjmy się z bliska możliwością konfiguracji ruchu sieciowego. 1. Na początek pole Bandwidth Management z trzema zakładkami:

hdd - dysk używany uzywany do równoległych stacji roboczych - parallel desktops

iptables/netfilter co to takiego?

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

WAŻNE: Słowo 'auto' oznacza, że konfigurujemy interfejs fizyczny. Wymienione po nim nazwy

Wykład 3 Filtracja i modyfikacja pakietów za pomocą iptables.

World Wide Web? rkijanka

IP: Maska podsieci: IP: Maska podsieci: Brama domyślna:

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny

Teletransmisja i sieci komputerowe 2

7. Konfiguracja zapory (firewall)

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek poniżej:

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek

Wymagania i zalecenia dla usługi głosowej w Sieci FreePhone. MASH.PL Wymagania i zalecenia dla usługi głosowej w Sieci FreePhone Strona 1

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Wprowadzenie 5 Rozdział 1. Lokalna sieć komputerowa 7

DOKUMENTACJA TECHNICZNA DO PROJEKTU:

Dlaczego? Mało adresów IPv4. Wprowadzenie ulepszeń względem IPv4 NAT CIDR

Pomoc: konfiguracja PPPoE

Instrukcja konfiguracji urządzenia Comarch TNA Gateway Plus

Firewall bez adresu IP

Wireshark analizator ruchu sieciowego

Akademia Górniczo-Hutnicza im. Stanisława Staszica

PLAN KONSPEKT. do przeprowadzenia zajęć z przedmiotu. Konfigurowanie systemu Linux do pracy w sieci IP

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Rozwiązanie Zadania egzaminacyjnego egzamin praktyczny z kwalifikacji e13 styczeń 2015

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik

Przekierowanie portów w routerze - podstawy

Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja

Laboratorium Ericsson HIS NAE SR-16

Monitor sieci wbudowany w Windows

Protokoły sieciowe - TCP/IP

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Moduł Ethernetowy. instrukcja obsługi. Spis treści

UNIFON podręcznik użytkownika

Zarządzanie pasmem (QoS)

Instrukcja konfiguracji programu Microsoft Outlook do współpracy z serwerami hostingowymi obsługiwanymi przez Ideo

Bezpieczeństwo w M875

Ping. ipconfig. getmac

Router programowy z firewallem oparty o iptables

Rozdział 5: URZĄDZENIA TYPU CHMURA

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

Transport. część 3: kontrola przeciążenia. Sieci komputerowe. Wykład 8. Marcin Bieńkowski

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Sieci komputerowe - administracja

Warstwa sieciowa rutowanie

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

1.1 Ustawienie adresów IP oraz masek portów routera za pomocą konsoli

Kancelaria Prawna.WEB - POMOC

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Protokół ARP Datagram IP

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

INSTALACJA LICENCJI SIECIOWEJ NET HASP Wersja 8.32

Konfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN.

Routing średniozaawansowany i podstawy przełączania

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Konfiguracja zapory Firewall w systemie Debian.

Laboratorium 6.7.1: Ping i Traceroute

pasja-informatyki.pl

Sprawozdanie z zajęć laboratoryjnych: Technologie sieciowe 1

MODUŁ NAUCZYCIEL - INSTRUKCJA OBSŁUGI

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

Optimus ABA IPSec + Windows 2000/XP + Terminal ABAX-2. Instrukcja tworzenia połącze ń szyfrowanych.

Konfiguracja połączenia internetowego serwera w pracowni Microsoft

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Po pobraniu plików instalacyjnych w pierwszej kolejności dokonujemy instalacji serwera ESET Remote Administrator Server

Transkrypt:

Problem kolejkowania dostępu czyli zarządzanie przepustowością sieci Piotr Misiuda 4FD L08

Wstęp Chciałbym aby mój projekt nie był czystym teoretycznym rozważaniem na temat jak to działa, a po co, a dlaczego. Postaram się zawrzeć w nim wiedze praktyczną oraz podstawowe wiadomości teoretyczne tak aby każdy debianowy średniak mógł dzięki niemu zastosować omówione rozwiązania na serverze. W tym sensie jest to bardziej instrukcja obsługi plus podstawowe wiadomości teoretyczne. Kolejkowanie dostępu ma sens gdy nasz server (system Debian oraz SDI) dierżawi dostęp do internetu innym komputerom. Jak wiadomo ludzie kożystają z sieci, jedni intensywniej inni mniej.prawdziwą zmorą administratorów są programy typu P2P ( z angielskiego peer to peer, punkt to punkt) czyli Kazaa, Direct Connect. Powodują one przeciążanie całego łącza i pogorszenie parametrów sieciowych całej sieci. Innymi słowy jedna osoba ściąga filmy kazaą a reszta cierpi z powodu złego działania sieci. W tym wypadku trzeba pomyśleć CBQ czyli pasowaniu łącza bądź inaczej kolejkowaniu dostępu. Poniżej przedstawiam łatwy sposób przydzielania użytkownikom pasm o równej przepustowości. Jeżeli jest wolne pasmo (ktoś nie korzysta z sieci) inny pobiera z jego przepustowości. Gdy użytkownik zacznie ponownie korzystać z sieci pasmo jest odbierane osobie która je "pożyczyła". Algorytm sotosowany był dla servera posiadającego SDI jako punkt dostępowy do sieci. Łatwo go jednak przerobić na inne typy łącz. W wypadku SDI wygląda to tak : mamy łącze 112,5Kbit. Czyli każdemu użytkownikowi (sześć osób) ma przypadać 18,75Kbit jeżeli w danej chwili wszyscy korzystają z internetu(112,5 / 6 = 18.75). To jest prędkość teoretyczna, bo wiadomo że taka raczej rzadko się zdarza. Jeżeli jeden z nich idzie wyłącza komputer, a drugi potrzebuje więcej, więc pobiera z tej niewykorzystanej kolejki. Praktyka Aby działało nasz server musi posiadać pakiet iproute, jeżeli go nie mamy wykonujemy polecenie apt-get install iproute. Po zainstalowaniu wykujemy komendę tc qdisc, jeżeli w odpowiedzi otrzymamy komunikaty błędów oznacza to, że musimy przekompilować jądro. Należ dodać do jądra w opcjach : Networking Options -> QoS and/or fair queuing -> wszystkie moduły.

Tworzenie kolejki Root Kolejki są po to w nich oczekiwać na dostęp do internetu.czyli tworzymy je, aby obsługiwały nasz ruch wychodzący z sieci do internetu. Zasada jest taka że im wolniej pakiet wyślemy tym wolniej do nas pakiet przyjdzie. jak mawia PCkurier : "..Zastosowanie odpowiednich algorytmów pozwala buforować przechodzący przez router ruch. Nadchodząca z szybkiego łącza transmisja może być - przed "wtłoczeniem" jej w łącze o mniejszej przepustowości - spowalniana z pewnymi priorytetami, odrzucanie pakietów wykraczających poza limit docelowego łącza również może odbywać się w sposób zbytnio nie krzywdzący wybranych użytkowników. Możliwe jest zarządzanie tylko ruchem wychodzącym, choć niektóre operacje - np. odrzucanie pakietów w warunkach przeciążenia sieci - odbywają się po stronie wejścia..." Krótko mówiąc CBQ dba o to, by łącze było przez odpowiedni czas bezczynne i dzięki temu prawdziwa przepustowość spadała do skonfigurowanej wielkości. Żeby to robić kalkuluje głównie czas, który powinien upłynąć pomiędzy pakietami. Musimy stworzyć kolejkę główną naszego ruchu. Będzie to kolejka, do której będą dołączane inne, stworzone już dla konkretnego użytkownika Kolejkę te można nazwać kolejka root Wydajemy polecenie które tworzy nam główną kolejkę: tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit rate 112.5Kbit perturb 10 avpkt 1000 Gdzie: - "tc qdisc add dev eth0 root handle 1:0" tworzy kolejke główna - "cbq" - oznacza jaki algorytm kolejkowania będzie stosowany przez kernel - "bandwidth" - szybkość interfejsu czyli tutaj karta - 100Mbitowa - "rate" - wielkość do jakiej zmniejszamy szybkość interfejsu - "perturb" - okresowa rekonfiguracja funkcji mieszającej, zalecana wartość 10 sekund - "avpkt" - średnia wielkość pakietu (dla SDI przyjmujemy 1000) Sprawdzamy czy kolejka działa wywołując polecenie: tc -s qdisc ls W wyniku powinniśmy otrzymać: qdisc cbq 1: dev eth0 rate 14400bps (bounded,isolated) prio no-transmit Sent 60 bytes 4 pkts (dropped 0, overlimits 0) borrowed 0 overactions 0 avgidle 56888 undertime 0 Oznacza to że kolejka została założona. Kolejny etap to tworzenie filtrów.

Tworzenie filtra - root tc filter add dev eth0 parent 1:0 prio 10 protocol ip u32 divisor 16 Polecenie to zakłada główny filtr bez niego nie można zakładać filtrów do kolejek dzieci. Tworzenie klas - podział pasma Przykład pokazuje dwa komputery i przyznany im limit 18Kbit, oparty jest tylko na przydzieleniu użytkownikowi odpowiedniego pasma. klasa przykładowy na eth0 192.168.1.8 Poniższa regułka zakłada klasę, która ma ograniczenie pasma 18Kbit, posiada priorytet 5, udostępnia swoje niewykorzystane pasmo innym potrzebującym oraz sama nie pożycza swojego pasma. tc class add dev eth0 parent 1:0 classid 1:2 cbq bandwidth 100Mbit rate 18Kbit weight 1 prio 5 allot 1514 maxburst 20 avpkt 1000 bounded sharing To polecenie przydziela klasie algorytm SFQ, czyli "sprawiedliwy podział pasma" Dla ruchu HTTP i FTP (czyli masowego) zalecany jest algorytm RED tc qdisc add dev eth0 parent 1:2 sfq perturb 10 Poniżej troszkę materiału o SFQ zaczerpniętego z PCkurier'a Stochastic Fairness Queuing (SFQ) Protokół "sprawiedliwego" podziału pasma, który dzieli pakiety na kolejki obsługiwane algorytmem round-robin (tzn. w określonej kolejności, w tych samych porcjach, w koło), przy czym pakiety są rozdzielane do różnych kolejek według tzw. konwersacji, czyli związane z tą samą transmisją, o identycznym adresie źródłowym, docelowym i protokole w warstwie powyżej IP. Przepełnienie kolejek powoduje utratę pakietów nadchodzących do kolejek. Round-robin daje szanse mniejszym transmisjom. SFQ działa efektywnie tylko tam, gdzie istnieje przeciążenie transmisją - bez tego kolejki są opróżnione i nie jest możliwe obsługiwanie ich po kolei. Ponieważ kolejek jest mniej niż konwersacji, rozbicie konwersacji na kolejki odbywa się pseudolosowo na podstawie algorytmu mieszającego. SFQ wymaga interwencji administratora w zakresie dwóch parametrów pracy: - "perturb" - okresowa rekonfiguracja funkcji mieszającej dla zapewnienia losowego rozmieszczenia konwersacji w kolejkach; zalecana wartość 10 sekund, - "quantum" - minimalna porcja bajtów opuszczająca kolejkę przed obsługą następnej kolejki; nie może być mniejsza od MTU danego interfejsu. I część prawie najważniejsza, bez której nie będzie tego podziału. Bo to właśnie filtr decyduje co zrobić z pakietami, które w tym przypadku przychodzą do komputera, a wychodzą z serwera.

tc filter add dev eth0 parent 1:0 prio 10 u32 match ip dst 192.168.1.8 flowid 1:2 tc filter add dev eth0 parent 1:0 prio 10 u32 match ip src 192.168.1.1 flowid 1:2 przykładowa klasa na eth0 192.168.1.10 Druga klasa, która różni się tym od poprzedniej że, sama nie udostępnia swojego pasma(isolated), ale pożycza od innych(borrow). tc class add dev eth0 parent 1:0 classid 1:3 cbq bandwidth 100Mbit rate 18Kbit weight 1 prio 5 allot 1514 maxburst 20 avpkt 1000 borrow isolated tc qdisc add dev eth0 parent 1:3 sfq perturb 10 tc filter add dev eth0 parent 1:0 prio 10 u32 match ip dst 192.168.1.10 flowid 1:3 tc filter add dev eth0 parent 1:0 prio 10 u32 match ip src 192.168.1.1 flowid 1:3 Czy to działa? Sprawdzenie całości. Wpisujemy tc -s qdisc ls 1. qdisc sfq 80c8: dev eth0 quantum 1514b perturb 10sec Sent 818096 bytes 1172 pkts (dropped 0, overlimits 0) backlog 13p 2. qdisc sfq 80c4: dev eth0 quantum 1514b perturb 10sec Sent 908233 bytes 923 pkts (dropped 0, overlimits 0) backlog 4p 3. qdisc cbq 1: dev eth0 rate 14400bps (bounded,isolated) prio no-transmit Sent 1732622 bytes 2133 pkts (dropped 0, overlimits 2911) backlog 17p borrowed 0 overactions 0 avgidle 56888 undertime 0 Jak widać w każdej kolejce jest pokazana ilość danych przesłanych(czyli ruch jest kolejkowany wg. naszych ustawień), a w podsumowaniu również ilość pakietów przekraczających narzucony limit - overlimits. Na koniec CBQ jest narzędziem trudnym nieprzyjaznym i skomplikowanym, daje jednak możliwość przekształcenia zwykłego komputera klasy PC w router sieciowy za który musielibyśmy zapłacić dosyć drogo. Pozwala kierować i zarządzać ruchem w sieci dzięki czemu staje się narzędziem dla administratorów chcących stosować profesjonalne rozwiązania na nieprofesjonalnym sprzęcie.

Część materiałów (niewielka) została zaczerpnięta z PCkurier'a,reszta stanowi doświadczenia zdobyte przez autora oraz znajome osoby zajmujące się podobnymi zagadnieniami