Windows Server 2008

Wdrażanie Quality of Service z wykorzystaniem GPO w Windows Server 2008 Udostępnij na: Facebook

Autor: Kamil Skalski

Opublikowano: 1 lutego 2008

Zawartość strony
Wprowadzenie  Wprowadzenie
Quality of Service  Quality of Service
Policy-based QoS w Windows Server 2008  Policy-based QoS w Windows Server 2008
Konfiguracja Policy-based QoS  Konfiguracja Policy-based QoS
Zaawansowane ustawienia QoS  Zaawansowane ustawienia QoS
Podsumowanie  Podsumowanie

Wprowadzenie

Zapewnienie odpowiedniej jakości usług sieciowych jest istotnym problemem w środowiskach biznesowych. Można go rozwiązać przy użyciu odpowiednich urządzeń sieciowych lub z wykorzystaniem dedykowanego oprogramowania. Rozwiązania sprzętowe są zapewne dobrze znane każdemu administratorowi sieci – większość routerów lub firewalli obsługuje dodatkowo Quality of Service (Qos), czyli usługę ustalania priorytetów dostarczania pakietów. Programowe rozwiązania można znaleźć już w starszych systemach: Windows Server 2003 i Windows XP, które udostępniały aplikacjom interfejsy API Generic QoS (GQoS).

Obecnie, w systemach Windows Server 2008 i Windows Vista, udostępniono możliwość wdrażania zasad Quality of Service w środowiskach domenowych lub lokalnych z wykorzystaniem polityk GPO (Policy-based QoS). Zarządzanie ruchem w tym przypadku odbywa się w warstwie trzeciej modelu OSI/ISO (sieciowej), czyli poniżej warstwy aplikacji. Dzięki temu aplikacje nie wymagają modyfikacji, by móc wykorzystywać ten mechanizm . Wdrażanie polityk odbywa się identycznie, jak w przypadku innych polityk GPO z wykorzystaniem Group Policy Object Editor (GPOE) lub Group Policy Management Console (GPMC).

Rys. 1. Policy-based QoS.

Rys. 1. Policy-based QoS.

 Do początku strony Do początku strony

Quality of Service

Zanim zostaną omówione możliwości Policy-based QoS w Windows Server 2008, warto przyjrzeć się ogólnej idei Quality of Service i przykładom jej zastosowania.

Standardowo, kolejność przesyłu pakietów odbywa się zgodnie z zasadą pierwszy wszedł – pierwszy wychodzi (First In – First Out). Takie rozwiązanie jest wystarczające dla większości podstawowych usług. Oczywiście koncepcja użyta przy tworzeniu zasad Quality of Service zależy od środowiska, w jakim mają być one zastosowane i określenia, które usługi są krytyczne w procesie biznesowym. Przykładowo, gdy istnieje potrzeba zapewnienia dobrej jakości połączeń multimedialnych. W usłudze VoIP można spotkać się ze znacznymi utrudnieniami w korzystaniu z tej usługi, gdy wykorzystywane jest łącze o małej przepustowości oraz gdy działają inne usługi wykorzystujące pasmo łącza. Dodatkowych problemów może przysporzyć także transfer dużej ilości danych, podczas którego może wystąpić efekt „zawłaszczenia łącza” i znaczne zaniżenie jakości działania pozostałych usług.

Rys. 2. Przykład kolejkowania pakietów z zastosowaniem Quality of Service.

Rys. 2. Przykład kolejkowania pakietów z zastosowaniem Quality of Service.

Na rysunku 2. przedstawione zostały przykładowe priorytety dla połączeń. Usługa VoIP posiada wysoki priorytet, zapewniający jej pierwszeństwo w kolejce oraz pozostałe usługi, którym przypisany jest niższy priorytet. Jest to przykład zastosowania QoS dla zapewnienia dobrej jakości komunikacji VoiP. Dzięki temu, nawet jeśli w trakcie transmisji VoIP pozostałe usługi będą generować duży ruch na routerze, to ich pakiety będą opóźniane by w pierwszej kolejności obsłużyć żądania VoIP. Takie rozwiązanie będzie skutkowało obniżeniem szybkości przesyłu pozostałych danych, ale nie będzie powodować (co stałoby się przy braku priorytetów QoS) zrywania połączenia lub znacznych opóźnień.

Routery mogą rozpoznawać ważność pakietu, sprawdzając wartość DSCP (Differentiated Services Code Point) przypisaną dla każdego z pakietów. Domyślna wartość DSCP jest równa zeru. Taka sytuacja występuje w starszych systemach Windows, w których administratorzy nie mają możliwości określenia wartości DSCP i wszystkie pakiety są przesyłane z wartością domyślną. Stosując Quality of Service wdrażane poprzez polityki Group Policy Object w Windows Server 2008, istnieje możliwość wpływania na wartość DSCP dla poszczególnych pakietów.

Przykładem zastosowania priorytetów DSCP są multimedia bezprzewodowe (WMM), dla których zdefiniować można cztery kategorie dostępu (WMM_AC) dla stworzenia priorytetów dla ruchu sieciowego transmitowanego przez Wi-Fi. Reguły QoS można zastosować w tym przypadku dla zapewnienia komputerom przenośnym priorytetów dla takiego ruchu.

Tabela 1. Kategorie dostępu WMM i odpowiadające im wartości DSCP.
Wartość DSCP Kategoria dostępu WMM
48-63 Voice (VO)
32-47 Video (VI)
24-31, 0-7 Best effort (BE)
8-23 Background (BK)

W tym miejscu należy przyjrzeć się budowie pakietu IP, który zawiera pole ToS (Type of Service) zdefiniowane początkowo w RFC791, a następnie zamienione w RFC2474 w pole DSCP. Pole to ulegało kolejnym zmianom w dalszych specyfikacjach RFC.

Rysunek 3. przedstawia pola datagramu IP, w tym umiejscowienie pola ToS/DSCP w nagłówku tego datagramu.

Rys. 3. Pola datagramu IP.

Rys. 3. Pola datagramu IP.

Przykładem użycia określenia ważności pakietu z wykorzystaniem pola DSCP będzie przypisanie pakietom aplikacji VoIP wartości DSCP równej 46, co pozwoli routerowi na umiejscowienie tych pakietów w kolejce z krótkim czasem oczekiwania.

 Do początku strony Do początku strony

Policy-based QoS w Windows Server 2008

Polityki Quality of Service są wdrażane jako zasady przypisane do użytkownika lub komputera, poprzez powiązanie GPO z odpowiednim kontenerem Active Directory. Policy-based QoS pozwala na definiowanie priorytetów ruchu sieciowego (określanie wartości DSCP) oraz na zarządzanie użyciem łącza (określenie limitów szybkości przesyłu danych). Obydwa rodzaje zapewnienia jakości usług mogą być stosowane jednocześnie.

Przykładowo, by zabezpieczyć się przed monopolizacją łącza przez serwery Web wykorzystujące połączenie HTTP poprzez SSL, można powiązać kontener (OU) zawierający serwery Web i określić maksymalną przepustowość dla portu 443 TCP na 512KBps

Określenie pakietów, dla których można modyfikować wartość DSCP w Policy-based QoS odbywa się poprzez określenie:

  • Nazwy aplikacji;
  • Źródłowego adresu IPv4/IPv6 lub prefiksów ;
  • Docelowego adresu IPv4/Ipv6 lub prefiksów;
  • Portu TCP (Transmission Control Protocol), UDP (User Datagram Protocol) lub obu;
  • Portu źródłowego;
  • Portu docelowego.

Rys. 4. Możliwości konfiguracji zasad QoS oparte o polityki GPO.

Rys. 4. Możliwości konfiguracji zasad QoS oparte o polityki GPO.

Dla zasad QoS można znaleźć wiele zastosowań, jako najczęściej stosowane uznaje się:

  • Ruch krytyczny

    Zapewnienie ruchowi o krytycznym znaczeniu dla prawidłowego działania najważniejszych usług, najwyższego priorytetu nad innymi usługami, a zarazem dobrej jakości działania tej usługi – nie będzie zaniżana, gdy zostanie wygenerowane duże obciążenie przez inne mniej istotne usługi.

  • Transfer dużych ilości danych

    Wykorzystując ograniczenie maksymalnej szybkości transmisji danych, nie trzeba już martwić się negatywnymi skutkami („zawłaszczenie łącza”), które podczas takiego transferu mogą wystąpić.

  • Połączenia WAN

    Różne rodzaje ruchu poprzez WAN mogą otrzymać wyższy priorytet, przykładowo aplikacja biznesowa wykorzystywana w oddziałach zdalnych.

  • Wymagające usługi

    Coraz częściej wykorzystywane usługi strumieniowe VoIP lub Video wymagające krótkiego czasu odpowiedzi i szerokiego pasma dla przesyłu generowanych danych.

Architekturę Quality of Service wdrażaną poprzez GPO w Windows Server 2008 można podzielić na dwie zasadnicze części: użytkownika i jądra systemu. Po stronie użytkownika – usługa Group Policy Client, po stronie jądra systemu – Stos TCP/IP Next Generation.

Część kliencką można podzielić na: Silnik Group Policy odpowiedzialny za zarządzanie politykami ustawień GPO i detekcję zmian oraz Rozszerzenie QoS po stronie klienckiej odpowiedzialne za komunikację z Modułem Kontroli.

Strona jądra systemu jest bardziej rozbudowana, zawiera Stos TCP/IP Next Generation odpowiedzialny za obsługę warstwy transportowej, sieciowej i łącza danych, co można przypisać do NDIS 6.0 będącego interfejsem pomiędzy sterownikami sieci zawartymi w jądrze, a systemem.

Dodatkowo, mówiąc o Quality of Service, wyróżnić należy Moduł Kontroli QoS oraz Interfejs Kontroli. Moduł Kontroli QoS po otrzymaniu informacji od Rozszerzenia QoS po stronie klienta o zmianach w ustawieniach polityki QoS wchodzi w interakcję z warstwą transportową i sterownikiem pacer.sys by oznaczyć ruch sieciowy spełniający warunki określone przez zasady QoS. Istotnym elementem tej komunikacji są: QoS NPI (QoS Network Provider Interface), czyli interfejs dla komunikacji sterowników trybu jądra z Pacer.sys oraz Pacer.sys będącego nowym sterownikiem (zastąpił Psched.sys) NDIS 6.0 kontrolującym kolejkowanie pakietów dla zasad QoS wdrażanych przez polityki GPO oraz ruchu z aplikacji wykorzystujących Generic QoS oraz Traffic Control API.

Rys. 5. Architektura Policy-based QoS.

Rys. 5. Architektura Policy-based QoS.

Przyglądając się procesowi aplikowania zasad Quality of Service wdrażanych przez Group Policy, można określić etapy tego procesu. Silnik Group Policy otrzymuje z Active Directory konfigurację ustawień Group Policy przypisane dla użytkownika lub komputera, następnie informuje Rozszerzenie QoS po stronie klienta o wystąpieniu zmian w zasadach Quality of Service. Rozszerzenie QoS po stronie klienta wysyła informacje o wystąpieniu tego zdarzenia do Modułu Kontrolnego QoS, który pobiera ustawienia zasad QoS i przechowuje je.

Po zastosowaniu zasad QoS, podczas ustanowienia nowego połączenia TCP lub ruchu UDP komponent warstwy transportowej Stosu TCP/IP Next Generation informuje o tym Moduł Kontrolny QoS, który porównuje jego parametry z zasadami QoS, i które przechowuje. Jeśli ruch jest zgodny, z którąś z zasad Moduł Kontroli QoS kontaktuje się z Pacer.sys by utworzył strumień, strukturę danych zawierającą wartość DSCP oraz ustawienie przepustowości zgodne z zastosowaną zasadą QoS. W przypadku, gdy ruch jest zgodny z wieloma zasadami QoS użyta zostanie polityka QoS najbardziej zgodna z danym ruchem.

Przykładowo, jeśli utworzone są dwie zasady QoS dla ruchu przychodzącego dla portu 21 karty sieciowej o adresie 192.168.1.2 ale jedna z nich określa „ze wszystkich adresów IP”, a druga „z adresu 192.168.1.5” to ruch z adresu 192.168.1.5 do portu 21 pasuje od obu zasad, ale ponieważ ta druga jest zgodna z dwoma parametrami tego połączenia to ona będzie zastosowana. Pacer.sys przechowa strumień i zwróci numer strumienia zgodny ze strumieniem w Module Kontroli QoS, który z kolei przekaże go do warstwy transportowej. Warstwa transportowa przechowuje numer strumienia wraz ze strumieniem.

Gdy pakiet oznaczony numerem strumienia zostaje wysłany, warstwa transportowa wewnątrz oznacza pakiet numerem strumienia, a warstwa sieciowa odpytuje Pacer.sys o wartość DSCP powiązaną z numerem strumienia pakietu. Pacer.sys zwraca wartość DSCP do warstwy sieciowej, która następnie zmienia pole TOS dla pakietu IPv4 lub Traffic Class dla IPv6 na wartość określoną w DSCP. W przypadku pakietów IPv4 dodatkowo zlicza końcową wartość sumy kontrolnej nagłówka.

Warstwa sieciowa przekazuje pakiet do warstwy łącza danych. Pakiet został oznaczony numerem strumienia, zatem warstwa łącza danych przekazuje pakiet do Pacer.sys poprzez NDIS 6.0, po czym pacer.sys używa numeru strumienia do określenia czy pakiet musi zostać zakolejkowany, jeśli tak ustawia go w harmonogramie przesyłu, w innym przypadku od razu przekazuje go do wysłania.

 Do początku strony Do początku strony

Konfiguracja Policy-based QoS

Chcąc utworzyć zasadę QoS należy użyć narzędzia GPMC, w którym dokonuje się wyboru właściwego kontenera, dla którego przypisana będzie zasada QoS. Kolejnym krokiem jest stworzenie nowej lub zmiana istniejącej polityki GPO w Group Policy Management Editor.

Rys. 6. Umiejscowienie Policy-based QoS.

Rys. 6. Umiejscowienie Policy-based QoS.

Tak, jak w przypadku innych polityk, można utworzyć zasadę QoS dla użytkownika lub dla komputera. W tym przykładzie stworzona zostanie polityka QoS dla komputera. Tworzenie zasady QoS rozpoczyna się od wybrania węzła Computer Configuration\Windows Settings\Policy-based QoS . W przykładzie 2 widać opcje, jakie można wybrać podczas tworzenia nowej reguły: Create New Policy... odpowiada za tworzenie specyficznych reguł, Advanced QoS Settings... pozwala na zaawansowaną konfigurację działania QoS obejmującą wszystkie stworzone reguły.

Rys. 7. Tworzenie zasady QoS.

Rys. 7. Tworzenie zasady QoS.

Po wybraniu akcji Create New Policy... otwiera się kreator reguły Policy-based QoS. Cały proces tworzenia reguły QoS przebiega w czterech krokach .

Krok pierwszy przedstawiony na rys. 8. wymaga zdefiniowania nazwy polityki QoS (Policy name), która musi być unikalna dla każdej tworzonej reguły. Dodatkowo można określić czy reguła ma działać na zasadzie priorytetów (Specify DSCP Value), w tym przypadku można określać priorytet – wartość DSCP – w zakresie 0-63, przy czym 0 to wartość domyślna dla każdego nie zdefiniowanego pakietu. Także w tym kroku można określić maksymalną szerokość pasma (Specify Throttle Rate) w KBps lub MBps lub mówiąc inaczej maksymalną szybkość transferu danych.

Rys. 8. Kreator Policy-based QoS – konfiguracja podstawowa.

Rys. 8. Kreator Policy-based QoS – konfiguracja podstawowa.

Krok drugi jest etapem, w którym należy określić czy reguła ma dotyczyć wszystkich aplikacji, czy też jednej wybranej. W przypadku, gdy reguła ma mieć zastosowanie tylko dla jednej aplikacji należy podać nazwę jej pliku wykonywalnego, pod jaką będzie widoczna po uruchomieniu w aplikacji Task Manager lub pełną ścieżkę do pliku wykonywalnego. Należy pamiętać, że jeśli ulegnie zmianie nazwa pliku wykonywalnego przykładowo z ftp.exe na ftp2.exe to reguła nie będzie miała już zastosowania. Podobna sytuacja będzie miała miejsce, gdy zmieni się ścieżka do aplikacji.

Rys. 9. Kreator Policy-based QoS - konfiguracja aplikacji.

Rys. 9. Kreator Policy-based QoS - konfiguracja aplikacji.

Strona trzecia kreatora pozwala na zdefiniowanie adresów źródłowych i docelowych dla ruchu kierowanego przez QoS, można zdefiniować następujące warianty:

  • Wszystkie adresy
  • Adresy IPv4/IPv6
  • Adresy IPV4/IPv6 z wykorzystaniem prefiksów

Rys. 10. Kreator Policy-based QoS – konfiguracja adresów sieciowych.

Rys. 10. Kreator Policy-based QoS – konfiguracja adresów sieciowych.

Ostatnim etapem tworzenia polityki QoS jest określenie portów, dla których będzie miała zastosowanie tworzona reguła. Podobnie jak przy określaniu adresów, istnieje wybór między wszystkimi portami lub wyborem jednego lub kilku portów z zakresu 0-65535. Przykładowo, wpisując 20:21 reguła będzie miała zastosowanie dla portu 20 i 21. Poza wyborem portu należy wybrać rodzaje protokołów: TCP, UDP lub obydwa protokoły

Rys. 11. Kreator Policy-based QoS – konfiguracja portów.

Rys. 11. Kreator Policy-based QoS – konfiguracja portów.

Po zakończeniu tworzenia reguły QoS jest ona widoczna w Group Policy Management Editor (rys. 12.). Stworzone reguły można usunąć lub edytować poprzez kliknięcie prawym przyciskiem myszy i wybranie właściwej opcji.

Rys. 12. Lista stworzony reguł QoS w GPME.

Rys. 12. Lista stworzony reguł QoS w GPME.

 Do początku strony Do początku strony

Zaawansowane ustawienia QoS

Wybierając zaawansowane ustawenia QoS istnieje możliwość określenia poziomu przepustowości (a w zasadzie wielkości okna, które ma wpływ na przepustowość) dla ruchu przychodzącego TCP (Inbound TCP Traffic) oraz określenie jak mogą być zmieniane priorytety DSCP dla pakietów (DSCP Marking Override).

W przykładzie 8 pokazana została pierwsza zakładka pozwalająca na wybór przepustowości dla przychodzącego ruchu TCP, to ustawienie będzie obowiązywać globalnie na danym komputerze. Domyślnie dla Windows Server 2008 obowiązuje poziom 3 (w skali od 0 do 3), czyli maksymalna przepustowość, która świadczy o tym jaką ilość danych można przesłać za jednym razem w oknie TCP.

W tabeli 2 przedstawione są poziomy i odpowiadające im wielkości okna TCP.

Tabela. 2. Poziomy ruchu TCP.
Poziom ruchu przychodzącego TCP Maksymalna wielkość okna
0 64KB
1 256KB
2 1MB
3 16MB

Rys. 13.– Zaawansowana konfiguracja QoS.

Rys. 13.– Zaawansowana konfiguracja QoS.

Zakładka DSCP Marking Override jest miejscem, w którym można zdefiniować reakcję na próbę zdefiniowania wartości DSCP pakietów przez aplikację posiadającą własny mechanizm QoS. W przypadku, gdy zezwoli się na nadawanie priorytetów pakietom przez aplikację będzie to ustawienie działające globalnie na danym komputerze. W przypadku wybrania opcji Ignoruj, jedynym sposobem zmiany priorytetu pakietu będzie stworzenie właściwej polityki QoS.

Rys. 14. Zaawansowana konfiguracja QoS – DSCP określane przez aplikacje.

Rys. 14. Zaawansowana konfiguracja QoS – DSCP określane przez aplikacje.

 Do początku strony Do początku strony

Podsumowanie

Quality of Service jest doskonałym narzędziem w nierównej walce administratora z ciągle zbyt małą przepustowością łącza i niewydajnym jego wykorzystaniem. W środowiskach sieciowych, w których muszą koegzystować różne aplikacje i usługi komunikujące się za pośrednictwem sieci, bardzo istotne jest zapewnienie dobrej jakości ich działania.

Windows Server 2008 pozwala na sterowanie przepustowością łącza i wykorzystaniem pasma przez usługi (aplikacje), dzięki nowym politykom Policy-based QoS. Dodatkowym atutem jest możliwość wykorzystania polityk QoS w ramach całej sieci lokalnej, a nie tylko w miejscach występowania urządzeń sieciowych wspierających Quality of Service.

 Do początku strony Do początku strony

Windows Server 2008