Systemverwaltungshandbuch: IP Services

Erstellen von IPQoS-Konfigurationsdateien für Webserver

In diesem Abschnitt wird eine IPQoS-Konfigurationsdatei vorgestellt, mir deren Hilfe Ihnen gezeigt wird, wie eine Konfiguration für einen Premium-Webserver erstellt wird. Dann wird gezeigt, wie eine vollständig andere Serviceebene in einer Konfigurationsdatei für einen Server erstellt wird, der als Host für persönliche Websites dient. Beide Server sind Teil des Netzwerkbeispiels, das in Abbildung 33–4 vorgestellt wurde.

Die folgende Konfigurationsdatei definiert IPQoS-Aktivitäten für den Server Goldweb. Dieser Server dient als Host für die Website von Goldco, einem Unternehmen, das eine Premium-SLA erworben hat.


Beispiel 34–1 IPQoS-Beispielkonfigurationsdatei für einen Premium-Webserver

fmt_version 1.0

action {
    module ipgpc
    name ipgpc.classify
    params {
        global_stats TRUE
    }
    class {
        name goldweb
        next_action markAF11
        enable_stats FALSE
    }
    class {
        name video
        next_action markEF
        enable_stats FALSE
    }
    filter {
        name webout
        sport 80
        direction LOCAL_OUT
        class goldweb
    }
    filter {
        name videoout
        sport videosrv
        direction LOCAL_OUT
        class video
    }
}
action {
    module dscpmk
    name markAF11
    params {
        global_stats FALSE
        dscp_map{0-63:10}
        next_action continue
    }
}
action {
    module dscpmk
    name markEF
    params {
        global_stats TRUE
        dscp_map{0-63:46}
        next_action acct
    }
}
action {
    module flowacct
    name acct
    params {
        enable_stats TRUE
        timer 10000
        timeout 10000
        max_limit 2048
    }
}

Die folgende Konfigurationsdatei definiert IPQoS-Aktivitäten für den Server Userweb. Dieser Server dient als Host für Privatkunden mit kostengünstigen oder Beste Leistung-SLAs. Diese Serviceebene garantiert den besten Service, der einem Beste Leistung-Kunden bereitgestellt werden kann, nachdem das IPQoS-System den Datenverkehr von Kunden mit teureren SLAs verarbeitet hat.


Beispiel 34–2 IPQoS-Beispielkonfigurationsdatei für einen Beste Leistung-Webserver

fmt_version 1.0

action {
    module ipgpc
    name ipgpc.classify
    params {
        global_stats TRUE
    }
    class {
        name Userweb
        next_action markAF12
        enable_stats FALSE
    }
    filter {
        name webout
        sport 80
        direction LOCAL_OUT
        class Userweb
   }
}
action {
    module dscpmk
    name markAF12
    params {
        global_stats FALSE
        dscp_map{0-63:12}
        next_action continue
    }
}

ProcedureSo erstellen Sie eine IPQoS-Konfigurationsdatei und definieren Datenverkehrsklassen

Sie können Ihre erste IPQoS-Konfigurationsdatei in einem beliebigen Verzeichnis erstellen. Wählen Sie das Verzeichnis, das Sie am einfachsten verwalten können. Die Aufgaben in diesem Kapitel verwenden das /var/ipqos als Speicherort für die IPQoS-Konfigurationsdateien. Im folgenden Verfahren wird das interne Segment der IPQoS-Konfigurationsdatei erstellt, die in Beispiel 34–1 eingeführt wurde.


Hinweis –

Achten Sie beim Erstellen der IPQoS-Konfigurationsdatei darauf, die action-Anweisung und -Klausel mit geschweiften Klammen zu beginnen und zu beenden ({ }). Ein Beispiel für die Verwendung der Klammern finden Sie in Beispiel 34–1.


  1. Melden Sie sich beim Premium-Webserver an und erstellen Sie eine neue IPQoS-Konfigurationsdatei mit der Erweitung .qos.

    Jede IPQoS-Konfigurationsdatei muss mit der Versionsnummer fmt_version 1.0 als erste unkommentierte Zeile beginnen.

  2. Nach dem Eröffnungsparameter muss die erste action-Anweisung folgen, die den generischen IP-Classifier ipgpc konfiguriert.

    Diese erste Aktion beginnt die Baumstruktur der action-Anweisungen, aus denen sich die IPQoS-Konfigurationsdatei zusammensetzt. Die Datei /var/ipqos/Goldweb.qos beginnt z. B. mit der ersten action-Anweisung, die den ipgpc-Classifier aufruft.


    fmt_version 1.0
    
    action {
        module ipgpc
        name ipgpc.classify
    
    fmt_version 1.0

    Beginnt die IPQoS-Konfigurationsdatei.

    action {

    Beginnt die action-Anweisung.

    module ipgpc

    Konfiguriert den ipgpc-Classifier als die erste Aktion in der Konfigurationsdatei.

    name ipgpc.classify

    Definiert den Namen der action-Anweisung des Classifiers, der stets ipgpc.classify lauten muss.

    Ausführliche syntaktische Informationen zu den action-Anweisungen finden Sie unter action-Anweisung und in der Manpage ipqosconf(1M).

  3. Fügen Sie eine params-Klausel mit dem Statistik-Parameter global_stats hinzu.


    params {
              global_stats TRUE
       }
    

    Mit dem Parameter global_stats TRUE in der ipgpc.classify-Anweisung können Sie das Erfassen von Statistiken für diese Aktion aktivieren. global_stats TRUE aktiviert darüber hinaus das Erfassen von Statistiken pro Klasse, wenn eine Klassenklauseldefinition enable_stats TRUE angibt.

    Das Aktivieren der Statistiken verbessert die Leistung. Vielleicht möchten Sie Statistiken zu der neuen IPQoS-Konfigurationsdatei erfassen, um zu prüfen, ob die IPQoS ordnungsgemäß arbeitet. Später können Sie das Erfassen von Statistiken deaktivieren, indem Sie das Argument von global_stats zu FALSE ändern.

    Globale Statistiken sind nur ein Parametertyp, den Sie in einer params-Klausel definieren können. Sytaktische and sonstige Details zu den params-Klauseln finden Sie unter params-Klausel und in der Manpage ipqosconf(1M).

  4. Definieren Sie eine Klasse, die den Datenverkehr identifiziert, der für den Premium-Server bestimmt ist.


    class { 
            name goldweb 
            next_action markAF11   
            enable_stats FALSE 
        }
    

    Diese Anweisung wird als class-Klausel bezeichnet. Eine class-Klausel hat den folgenden Inhalt.

    name goldweb

    Erstellt die Klasse goldweb, um den Datenverkehr zu identifizieren, der für den Server Goldweb bestimmt ist.

    next_action markAF11

    Weist das ipgpc-Modul an, Pakete der goldweb-Klasse an die action-Anweisung markAF11 zu übergeben. Die action-Anweisung markAF11 ruft den Marker dscpmk auf.

    enable_stats FALSE

    Aktiviert die Erfassung von Statistiken für die Klasse goldweb. Da der Wert für enable_stats FALSE lautet, werden keine Statistiken für diese Klasse erfasst.

    Ausführliche Informationen zur Syntax der class-Klausel finden Sie unter class-Klausel und in der Manpage ipqosconf(1M).

  5. Definieren Sie eine Klasse, die eine Anwendung kennzeichnet, die Weiterleitungen mit der höchsten Priorität aufweist.


    class {
            name video
            next_action markEF
            enable_stats FALSE
        }
    
    name video

    Erstellt die Klasse video, um Streaming Video-Datenverkehr zu identifizieren, der vom Server Goldweb ausgeht.

    next_action markEF

    Weist das ipgpc-Modul an, Pakete der video-Klasse an die markEF-Anweisung zu übergeben, nachdem ipgpc die Bearbeitung vollständig abgeschlossen hat. Die Anweisung markEF ruft den Marker dscpmk auf.

    enable_stats FALSE

    Aktiviert die Erfassung von Statistiken für die Klasse video. Da der Wert für enable_stats FALSE lautet, werden keine Statistiken für diese Klasse erfasst.

Siehe auch

ProcedureSo definieren Sie Filter in der IPQoS-Konfigurationsdatei

Im nächsten Verfahren wird gezeigt, wie Sie Filter in der IPQoS-Konfigurationsdatei definieren.

Bevor Sie beginnen

Bei diesem Verfahren wird davon ausgegangen, dass Sie die Datei bereits erstellt und mit der Definition der Klassen begonnen haben. Mit den folgenden Schritten wird die Datei /var/ipqos/Goldweb.qos erweitert, die Sie unter So erstellen Sie eine IPQoS-Konfigurationsdatei und definieren Datenverkehrsklassen erstellt haben.


Hinweis –

Achten Sie beim Erstellen der IPQoS-Konfigurationsdatei darauf, jede class- und filter-Klausel mit geschweiften Klammen zu beginnen und zu beenden ({ }). Ein Beispiel für die Verwendung der Klammern finden Sie in Beispiel 34–1.


  1. Öffnen Sie die IPQoS-Konfigurationsdatei und suchen Sie das Ende der letzten von Ihnen definierten Klasse.

    Bei dem IPQoS-konformen Server Goldweb beginnen Sie z. B. hinter der class-Klausel, die Sie in /var/ipqos/Goldweb.qos erstellt haben:


    class {
            name video
            next_action markEF
            enable_stats FALSE
        }
  2. Definieren Sie eine filter-Klausel, um den abgehenden Datenverkehr vom IPQoS-System auszuwählen.


        filter {
            name webout
            sport 80
            direction LOCAL_OUT
            class goldweb
        }
    
    name webout

    Benennt den Filter mit webout.

    sport 80

    Wählt Datenverkehr mit dem Ursprungs-Port 80 aus, dem bekannten Port für HTTP (Web)-Verkehr.

    direction LOCAL_OUT

    Wählt außerdem Verkehr aus, der vom lokalen System abgeht.

    class goldweb

    Identifiziert die Klasse, zu der der Filter gehört, in diesem Fall die Klasse goldweb.

    Syntaktische und ausführliche Informationen zur filter-Klausel in der IPQoS-Konfigurationsdatei finden Sie unter filter-Klausel.

  3. Definieren Sie eine filter-Klausel, um den Streaming Video-Datenverkehr vom IPQoS-System auszuwählen.


        filter {
            name videoout
            sport videosrv
            direction LOCAL_OUT
            class video
        }
    
    name videoout

    Benennt den Filter mit videoout.

    sport videosrv

    Wählt Datenverkehr mit einem Ursprungs-Port von videosrv aus, ein zuvor definierter Port für die Streaming Video-Anwendung auf diesem System.

    direction LOCAL_OUT

    Wählt außerdem Verkehr aus, der vom lokalen System abgeht.

    class video

    Identifiziert die Klasse, zu der der Filter gehört, in diesem Fall die Klasse video.

Siehe auch

ProcedureSo definieren Sie das Weiterleiten von Datenverkehr in der IPQoS-Konfigurationsdatei

Im nächsten Verfahren wird gezeigt, wie Sie das Weiterleiten von Datenverkehr definieren, indem Sie Per-Hop-Behaviors für eine Klasse in die IPQoS-Konfigurationsdatei einfügen.

Bevor Sie beginnen

Bei diesem Verfahren wird davon ausgegangen, dass Sie bereits eine IPQoS-Konfigurationsdatei erstellt und Klassen und Filter definiert haben. Mit den folgenden Schritten wird die Datei /var/ipqos/Goldweb.qos aus Beispiel 34–1 erweitert.


Hinweis –

In diesem Verfahren wird gezeigt, wie Sie Weiterleitung von Datenverkehr mithilfe des Markermoduls dscpmk konfigurieren. Informationen zum Weiterleiten von Datenverkehr in VLAN-Systemen mithilfe des Markers dlclosmk finden Sie unter Verwenden des Markers dlcosmk mit VLAN-Geräten.


  1. Öffnen Sie die IPQoS-Konfigurationsdatei und suchen Sie das Ende des letzten von Ihnen definierten Filters.

    Bei dem IPQoS-konformen Server Goldweb beginnen Sie z. B. hinter der filter-Klausel, die Sie in /var/ipqos/Goldweb.qos erstellt haben:


    filter {
            name videoout
            sport videosrv
            direction LOCAL_OUT
            class video
        }
    }

    Beachten Sie, dass sich diese filter-Klausel am Ende action-Anweisung des ipgpc-Classifiers befindet. Aus diesem Grund benötigen Sie eine schließende geschweifte Klammer, um den Filter zu beenden und eine zweite schließende geschweifte Klammer, um die action-Anweisung zu beenden.

  2. Rufen Sie den Marker mit der folgenden action-Anweisung auf.


    action {
        module dscpmk
        name markAF11
    
    module dscpmk

    Ruft das Markermodul dscpmk auf.

    name markAF11

    Benennt die action -Anweisung mit markAF11.

    Die zuvor definierte Klasse goldweb umfasst eine next_action markAF11-Anweisung. Diese Anweisung sendet Verkehrswerte an die action-Anweisung markAF11, nachdem der Classifier die Verarbeitung beendet hat.

  3. Definieren Sie Aktionen, die der Marker am Verkehrswert durchführen soll.


        params {
            global_stats FALSE
            dscp_map{0-63:10}
            next_action continue
        }
    }
    
    global_stats FALSE

    Aktiviert die Erfassung von Statistiken für die Marker action-Anweisung markAF11. Da der Wert für enable_stats FALSE lautet, werden keine Statistiken erfasst.

    dscp_map{0–63:10}

    Weist den Paket-Headern der Datenverkehrklasse goldweb, die momentan vom Marker verarbeitet werden, einen DSCP von 10 zu.

    next_action continue

    Gibt an, dass keine weitere Verarbeitung für die Pakete der Datenverkehrsklasse goldweb erforderlich sind, und dass diese Pakete in den Netzwerkdatenfluss zurückkehren können.

    Der DSCP 10 weist den Marker an, alle Einträge in der dscp-Map auf den Dezimalwert 10 (binär 001010) zu setzen. Dieser Codepoint kennzeichnet, dass Pakete der Verkehrsklasse goldweb dem Per-Hop-Behavior AF11 unterliegen. AF11 stellt sicher, dass alle Pakete mit dem DSCP 10 einen low-drop-Service mit hoher Priorität erhalten. Somit erhält abgehender Datenverkehr für Premium-Kunden auf Goldweb die höchste Priorität, die für das Assured Forwarding (AF) PHB verfügbar ist. Eine Liste der möglichen DSCPs für AF finden Sie in Tabelle 37–2.

  4. Starten Sie eine weitere Marker action-Anweisung.


    action {
        module dscpmk
        name markEF    
    
    module dscpmk

    Ruft das Markermodul dscpmk auf.

    name markEF

    Benennt die action-Anweisung mit markEF.

  5. Definieren Sie Aktionen, die der Marker am Verkehrswert durchführen soll.


        params {
            global_stats TRUE
            dscp_map{0-63:46}
            next_action acct
        }
    }
    
    global_stats TRUE

    Aktiviert die Erfassung von Statistiken für die video-Klasse, die Streaming Video-Pakete auswählt.

    dscp_map{0–63:46}

    Weist den Paket-Headern der Datenverkehrklasse video, die momentan vom Marker verarbeitet werden, einen DSCP von 46 zu.

    next_action acct

    Weist das dscpmk-Modul an, Pakete der video-Klasse an die action-Anweisung acct weiterzuleiten, nachdem dscpmk die Bearbeitung vollständig abgeschlossen hat. Die action-Anweisung acct ruft das flowacct-Modul auf.

    Der DSCP 46 weist das dscpmk-Modul an, alle Einträge in der dscp-Map im DS-Feld auf den Dezimalwert 46 (binär 101110) zu setzen. Dieser Codepoint kennzeichnet, dass Pakete der Verkehrsklasse video dem Per-Hop-Behavior Expedited Forwarding (EF) unterliegen.


    Hinweis –

    Der empfohlene Codepoint für EF ist 46 (binär 101110). Andere DSCPs weisen einem Paket AF PHBs zu.


    Das EF PHB garantiert, dass Pakete mit einem DSCP von 46 von IPQoS- und Diffserv-konformen Systemen die höchste Prioritätsstufe erhalten. Streaming-Anwendungen erfordern einen Service mit höchster Priorität. Dies ist der Grund, warum Streaming-Anwendungen die EF PHBs in der QoS-Richtlinie zugeordnet sind. Weitere Einzelheiten zum Expedited Forwarding PHB finden Sie unter Expedited Forwarding (EF) PHB.

  6. Fügen Sie die gerade erstellten DSCPs zu den entsprechenden Dateien auf dem Diffserv-Router hinzu.

    Weitere Informationen hierzu finden Sie unter So konfigurieren Sie einen Router in einem IPQoS-konformen Netzwerk.

Siehe auch

ProcedureSo aktivieren Sie das Accounting für eine Klasse in der IPQoS-Konfigurationsdatei

Hier wird gezeigt, wie Sie das Accounting für eine Datenverkehrsklasse in der IPQoS-Konfigurationsdatei aktivieren. In dem Verfahren wird gezeigt, wie Sie das Flow Accounting für die video-Klasse definieren, die unter So erstellen Sie eine IPQoS-Konfigurationsdatei und definieren Datenverkehrsklassen eingeführt wurde. Diese Klasse wählt Streaming Video-Datenverkehr aus, der im Rahmen einer Premium-SLA eines Kunden berechnet werden muss.

Bevor Sie beginnen

Bei diesem Verfahren wird davon ausgegangen, dass Sie bereits eine IPQoS-Konfigurationsdatei erstellt und Klassen, Filter, Meteraktionen (sofern anwendbar) und Markerungsoptionen (sofern anwendbar) erstellt haben. Mit den folgenden Schritten wird die Datei /var/ipqos/Goldweb.qos aus Beispiel 34–1 erweitert.

  1. Öffnen Sie die IPQoS-Konfigurationsdatei und suchen Sie das Ende der letzten von Ihnen definierten action-Anweisung.

    Bei dem IPQoS-konformen Server Goldweb beginnen Sie z. B. hinter der action-Anweisung markEF in der Datei /var/ipqos/Goldweb.qos.


    action {
        module dscpmk
        name markEF
        params {
            global_stats TRUE
            dscp_map{0-63:46}
            next_action acct
        }
    }
  2. Beginnen Sie eine action-Anweisung, mit der das Flow Accounting aufgerufen wird.


    action {
        module flowacct
        name acct
    
    module flowacct

    Ruft das Flow Accounting-Modul flowacct auf.

    name acct

    Benennt die action-Anweisung mit acct

  3. Definieren Sie eine params-Klausel, um das Accounting in der Datenverkehrsklasse zu steuern.


    params {
            global_stats TRUE
            timer 10000
            timeout 10000
            max_limit 2048
            next_action continue
        }
    }
    global_stats TRUE

    Aktiviert die Erfassung von Statistiken für die video-Klasse, die Streaming Video-Pakete auswählt.

    timer 10000

    Gibt die Dauer des Intervalls in Millisekunden an, in dem die Flow-Tabelle nach abgelaufenen Flows gescannt wird. Bei diesem Parameter lautet das Intervall 10.000 ms.

    timeout 10000

    Gibt das Mindestintervall für den Timeout-Wert an. Ein Flow „läuft ab“ (times out), wenn die Pakete für den Flow nicht innerhalb eines Timeout-Intervalls erfasst werden. Bei diesem Parameter laufen die Pakete nach 10.000 ms ab.

    max_limit 2048

    Richtet die Höchstzahl der aktiven Flow-Datensätze in der Flow-Tabelle für diese Aktionsinstanz ein.

    next_action continue

    Gibt an, dass keine weitere Verarbeitung für die Pakete der Datenverkehrsklasse video erforderlich sind, und dass diese Pakete in den Netzwerkdatenfluss zurückkehren können.

    Das flowacct-Modul erfasst Statistiken zu den Paket-Flows einer bestimmten Klasse, bis ein festgelegter timeout-Wert erreicht ist.

Siehe auch

ProcedureSo erstellen Sie eine IPQoS-Konfigurationsdatei für einen Beste Leistung-Webserver

Die IPQoS-Konfigurationsdatei für einen Beste Leistung-Webserver unterscheidet sich nur wenig von einer IPQoS-Konfigurationsdatei für einen Premium-Webserver. Als Beispiel wird im folgenden Verfahren die Konfigurationsdatei aus Beispiel 34–2 verwendet.

  1. Melden Sie sich beim Beste Leistung-Webserver an.

  2. Erstellen Sie eine neue IPQoS-Konfigurationsdatei mit der Erweiterung qos.


    fmt_vesion 1.0
    action {
        module ipgpc
        name ipgpc.classify
        params {
            global_stats TRUE
       }
    

    Die Datei /var/ipqos/userweb.qos muss mit dem Teil einer action-Anweisung beginnen, die den ipgpc-Classifier aufruft. Darüber hinaus umfasst die action-Anweisung eine params-Klausel, um die Erfassung von Statistiken zu aktivieren. Eine Beschreibung dieser action-Anweisung finden Sie unter So erstellen Sie eine IPQoS-Konfigurationsdatei und definieren Datenverkehrsklassen.

  3. Definieren Sie eine Klasse, die den Datenverkehr identifiziert, der für den Beste Leistung-Server bestimmt ist.


    class {
            name userweb
            next_action markAF12
            enable_stats FALSE
        }
    
    name userweb

    Erstellt eine Klasse mit der Bezeichnung userweb zum Weiterleiten von Webverkehr von Benutzern.

    next_action markAF12

    Weist das ipgpc-Modul an, Pakete der userweb-Klasse an die action-Anweisung markAF12 zu übergeben, nachdem ipgpc die Bearbeitung vollständig abgeschlossen hat. Die action-Anweisung markAF12 ruft den dscpmk-Marker auf.

    enable_stats FALSE

    Aktiviert die Erfassung von Statistiken für die userweb-Klasse. Da der Wert für enable_stats FALSE lautet, werden keine Statistiken für diese Klasse erfasst.

    Eine Beschreibung der class-Klausel finden Sie unter So erstellen Sie eine IPQoS-Konfigurationsdatei und definieren Datenverkehrsklassen.

  4. Definieren Sie eine filter-Klausel, um den Verkehrswert für die userweb-Klasse auszuwählen.


       filter {
           name webout
           sport 80
           direction LOCAL_OUT
           class userweb
       }
    }
    
    name webout

    Benennt den Filter mit webout.

    sport 80

    Wählt Datenverkehr mit dem Ursprungs-Port 80 aus, dem bekannten Port für HTTP (Web)-Verkehr.

    direction LOCAL_OUT

    Wählt außerdem Verkehr aus, der vom lokalen System abgeht.

    class userweb

    Identifiziert die Klasse, zu der der Filter gehört, in diesem Fall die Klasse userweb.

    Eine Beschreibung der filter-Klausel finden Sie unter So definieren Sie Filter in der IPQoS-Konfigurationsdatei.

  5. Beginnen Sie die action-Anweisung, um den dscpmk-Marker aufzurufen.


    action {
        module dscpmk
        name markAF12
    
    module dscpmk

    Ruft das Markermodul dscpmk auf.

    name markAF12

    Benennt die action -Anweisung mit markAF12.

    Die zuvor definierte Klasse userweb umfasst eine next_action markAF12-Anweisung. Diese Anweisung sendet Verkehrswerte an die action-Anweisung markAF12, nachdem der Classifier die Verarbeitung beendet hat.

  6. Definieren Sie die Parameter für den Marker, die bei der Verarbeitung des Verkehrswerts verwendet werden.


        params {
            global_stats FALSE
            dscp_map{0-63:12}
            next_action continue
        }
    }
    
    global_stats FALSE

    Aktiviert die Erfassung von Statistiken für die markAF12 Marker action-Anweisung. Da der Wert für enable_stats FALSE lautet, werden keine Statistiken erfasst.

    dscp_map{0–63:12}

    Weist den Paket-Headern der Datenverkehrklasse userweb, die momentan vom Marker verarbeitet werden, einen DSCP von 12 zu.

    next_action continue

    Gibt an, dass keine weitere Verarbeitung für die Pakete der Datenverkehrsklasse userweb erforderlich sind, und dass diese Pakete in den Netzwerkdatenfluss zurückkehren können.

    Der DSCP 12 weist den Marker an, alle Einträge in der dscp-Map auf den Dezimalwert 12 (binär 001100) zu setzen. Dieser Codepoint kennzeichnet, dass Pakete der Verkehrsklasse userweb dem Per-Hop-Behavior AF12 unterliegen. AF12 stellt sicher, dass alle Pakete mit dem DSCP 12 einen medium-drop-Service mit hoher Priorität erhalten.

  7. Nachdem Sie die IPQoS-Konfigurationsdatei vollständig erstellt haben, übernehmen Sie die Konfiguration.

Siehe auch