IPQoS Administration Guide

Creating an IPQoS Configuration File for an Application Server

This section explains how to create a configuration file for an applications server that provides a number of major applications to both internal and external customers. The procedure uses as its example the BigAPPs server from Figure 2–4.

The following configuration file defines IPQoS activities for the BigAPPs server, which hosts FTP, electronic mail (SMTP), and network news (NNTP) for customers.


Example 3–3 Sample Configuration for an Application Server

fmt_version 1.0

action {
    module ipgpc
    name ipgpc.classify
    params {
        global_stats TRUE
    }
    class {
        name smtp
        enable_stats FALSE
        next_action markAF13
    }
    class {
        name news
        next_action markAF21
    }
    class {
        name ftp
        next_action meterftp
    }
    filter {
        name smtpout
        sport smtp
        class smtp
    }
    filter {
        name newsout
        sport nntp
        class news
    }
    filter {
        name ftpout
        sport ftp
        class ftp
    
    filter {
        name ftpdata
        sport ftp-data
        class ftp
    }
}
action {
    module dscpmk
    name markAF13
    params {
        global_stats FALSE
        dscp_map{0-63:14}
        next_action continue
    }
}
action {
    module dscpmk
    name markAF21
    params {
        global_stats FALSE
        dscp_map{0-63:18}
        next_action continue
    }
}
action {
    module tokenmt
    name meterftp
    params {
        committed_rate 50000000
        committed_burst 50000000
        red_action markAF31
        green_action markAF22
        global_stats TRUE
    }
}
action {
    module dscpmk
    name markAF31
    params {
        global_stats TRUE
        dscp_map{0-63:26}
        next_action continue
    }
}
action {
    module dscpmk
    name markAF22
    params {
        global_stats TRUE
        dscp_map{0-63:20}
        next_action continue
    }
}

How to Configure the IPQoS Configuration File for an Applications Server

  1. Log in to the IPQoS-enabled application server, and create a new IPQoS configuration file with a .qos extension.

    For example, you would create the /var/ipqos/BigAPPS.qos file for the applications server. Begin with the following required phrases to start the action statement that invokes the ipgpc classifier.


    fmtversion 1.0
    
    action {
        module ipgpc
        name ipgpc.classify
        params {
            global_stats TRUE
        {     
    

    For an explanation of the opening action statement, refer to How to Begin the IPQoS Configuration File and Define Traffic Classes.

  2. Create classes to select traffic from three applications on the BigAPPs server.

    Add the class definitions after the opening action statement.


        class {
            name smtp
            enable_stats FALSE
            next_action markAF13
        }
        class {
            name news
            next_action markAF21
        }
        class {
            name ftp
            enable_stats TRUE
            next_action meterftp
        }       
    

    Entry 

    Description 

    name smtp

    Creates a class that is called smtp, which includes email traffic flows to be handled by the SMTP application.

    enable_stats FALSE

    Enables statistics taking for the smtp class. However, because the value of enable_stats is FALSE, statistics for this class are not turned on.

    next_action markAF13

    Instructs the ipgpc module to pass packets of the smtp class to the markAF13 action statement after ipgpc completes processing.

    name news

    Creates a class that is called news, which includes network news traffic flows to be handled by the NNTP application.

    next_action markAF21

    Instructs the ipgpc module to pass packets of the news class to the markAF21 action statement after ipgpc completes processing.

    name ftp

    Creates a class that is called ftp, which handles outgoing traffic that is handled by the FTP application.

    enable_stats TRUE

    Enables statistics taking for the ftp class.

    next_action meterftp

    Instructs the ipgpc module to pass packets of the ftp class to the meterftp action statement after ipgpc completes processing.

    For more information about defining classes, refer to How to Begin the IPQoS Configuration File and Define Traffic Classes.

  3. Define filter clauses to select traffic of the previously defined classes.


        filter {
            name smtpout
            sport smtp
            class smtp
        }
        filter {
            name newsout
            sport nntp
            class news
        }
            filter {
            name ftpout
            sport ftp
            class ftp
        }
            filter {
            name ftpdata
            sport ftp-data
            class ftp
        }
    }
    

    Entry 

    Description 

    name smtpout

    Gives the name smtpout to the filter

    sport smtp

    Selects traffic with a source port of 25, the well-known port for the sendmail (SMTP) application

    class smtp

    Identifies the class to which the filter belongs, in this instance, class smtp

    name newsout

    Gives the name newsout to the filter

    sport nntp

    Selects traffic with a source port name of nntp, the well-known port name for the network news application

    class news

    Identifies the class to which the filter belongs, in this instance, class news

    name ftpout

    Gives the name ftpout to the filter

    sport ftp

    Selects control data with a source port of 21, the well-known port number for FTP traffic 

    name ftpdata

    Gives the name ftpdata to the filter

    sport ftp-data

    Selects traffic with a source port of 20, the well-known port number for FTP data traffic 

    class ftp

    Identifies the class to which the ftpout and ftpdata filters belong, in this instance ftp

For more information about defining filters, refer to How to Define Filters in the IPQoS Configuration File.

Where to Go From Here

Task 

For Information 

Define filters 

How to Define Filters in the IPQoS Configuration File

Define forwarding behaviors for application traffic 

How to Configure Forwarding for Application Traffic in the IPQoS Configuration File

Configure flow control by using the metering modules 

How to Configure Flow Control in the IPQoS Configuration File

Configure flow accounting 

How to Enable Accounting for a Class in the IPQoS Configuration File

How to Configure Forwarding for Application Traffic in the IPQoS Configuration File

The next procedure shows how to configure forwarding for application traffic. In the procedure, you define per-hop behaviors for application traffic classes that might have lower precedence than other traffic on a network. The procedure assumes that you have an existing IPQoS configuration file with already-defined classes and filters for the applications to be marked. The steps continue building the /var/ipqos/BigAPPs.qos file in Example 3–3.

  1. Open the IPQoS configuration file you have created for the applications server.

    Locate the end of the last filter clause. In the /var/ipqos/BigAPPs.qos file, the last filter is the following:


     filter {
            name ftpdata
            sport ftp-data
            class ftp
        }
    }
  2. Invoke the marker as follows:


    action {
        module dscpmk
        name markAF13
        
    

    Entry 

    Description 

    module dscpmk

    Invokes the marker module dscpmk

    name markAF13

    Gives the name markAF13 to the action statement

  3. Define the per-hop behavior to be marked on electronic mail traffic flows.


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

    Entry 

    Description 

    global_stats FALSE

    Enables statistics taking for the markAF13 marker action statement. However, because the value of enable_stats is FALSE, statistics are not turned on.

    dscp_map{0–63:14}

    Assigns a DS codepoint of 14 to the packet headers of the traffic class smtp, which is currently being processed by the marker.

    next_action continue

    Indicates that no further processing is required on packets of the traffic class smtp. These packets can then return to the network stream.

    The DS codepoint 14 tells the marker to set all entries in the dscp map to the decimal value 14 (binary 001110). This value sets the AF13 per-hop behavior and marks packets of the smtp traffic class with the DS codepoint 14 in the DS field.

    AF13 assigns all packets with a DS codepoint of 14 to a high-drop precedence. However, because AF13 also assures a Class 1 priority, the router still guarantees outgoing email traffic a high priority in its queue. For a table of possible AF codepoints, refer to Table 6–2.

  4. Add a marker action statement to define a per-hop behavior for network news traffic:


    action {
        module dscpmk
        name markAF21
        params {
            global_stats FALSE
            dscp_map{0-63:18}
            next_action continue
        }
    }
    

    The next table explains parameters that have not yet been defined in this procedure.

    Entry 

    Description 

    name markAF21

    Gives the name markAF21 to the action statement

    dscp_map{0–63:18}

    Assigns a DS codepoint of 18 to the packet headers of the traffic class nntp, which is currently being processed by the marker

    The DS codepoint 18 tells the marker to set all entries in the dscp map to the decimal value 18 (binary 010010). This value sets the AF21 per-hop behavior and marks packets of the news traffic class with the DS codepoint 18 in the DS field.

    AF21 assures that all packets with a DS codepoint of 18 receive a low-drop precedence, but with only Class 2 priority. Thus, the possibility of network news traffic being dropped is low, but the router gives a higher forwarding probability to traffic classes with a Class 1 mark.

Where to Go From Here

Task 

For Information 

Add configuration information for web servers 

How to Begin the IPQoS Configuration File and Define Traffic Classes

Configure flow control by using the metering modules 

How to Configure Flow Control in the IPQoS Configuration File

Configure flow accounting 

How to Enable Accounting for a Class in the IPQoS Configuration File

Configure forwarding behaviors on a router 

How to Configure a Router on an IPQoS-Enabled Network

Activate the IPQoS configuration file 

How to Apply a New Configuration to the IPQoS Kernel Modules

How to Configure Flow Control in the IPQoS Configuration File

To control the rate at which a particular traffic flow is released onto the network, you must define parameters for the meter. You can use either of the two metering modules, tokenmt or tswtclmt, in the IPQoS configuration file.

The next procedure continues to build the IPQoS configuration file for the application server in Example 3–3. In the procedure, you configure not only the meter but also two marker actions that are called within the meter action statement.

  1. Open the IPQoS configuration file you have created for the applications server.

    The remaining steps assume that you have already defined a class and a filter for the application to be flow-controlled. In the /var/ipqos/BigAPPs.qos file, you begin after the following marker action:


    action {
        module dscpmk
        name markAF21
        params {
            global_stats FALSE
            dscp_map{0-63:18}
            next_action continue
        }
    }
  2. Create a meter action statement to flow-control traffic of the ftp class:


    action {
        module tokenmt
        name meterftp
                
    

    Entry 

    Definition 

    module tokenmt

    Invokes the tokenmt meter

    name meterftp

    Gives the name meterftp to the action statement

  3. Add parameters to configure the meter's rate:


    params {
           committed_rate 50000000
           committed_burst 50000000
      
    

    Entry 

    Description 

    committed_rate 50000000

    Assigns a transmission rate of 5,000,0000 bits-per-second to traffic of the ftp class

    committed_burst 50000000

    Commits a burst size of 50,000,000 bits to traffic of the ftp class

    For an explanation of tokenmt parameters, refer to Configuring tokenmt as a Two-Rate Meter.

  4. Add parameters to configure traffic conformance precedences:


        red_action markAF31
        green_action markAF22
        global_stats TRUE
        }
    }
    

    Entry 

    Description 

    red_action markAF31

    Indicates that when the traffic flow of the ftp class becomes nonconformant, that is, exceeds the committed rate, packets are sent to the markAF31 marker action statement

    green_action markAF22

    Indicates that when traffic flows of class ftp conform to the committed rate, packets are sent to the markAF22 action statement

    global_stats TRUE

    Enables metering statistics for the ftp class

    For more information about traffic conformance, see Meter Module.

  5. Add a marker action statement to assign a per-hop behavior to nonconformant traffic flows of class ftp.


    action {
        module dscpmk
        name markAF31
        params {
            global_stats TRUE
            dscp_map{0-63:26}
            next_action continue
        }
    }
    

    Entry 

    Description 

    module dscpmk

    Invokes the marker module dscpmk.

    name markAF31

    Gives the name markAF31 to the action statement.

    global_stats TRUE

    Enables statistics for the ftp class.

    dscp_map{0–63:26}

    Assigns a DS codepoint of 26 to the packet headers of the traffic class ftp whenever this traffic exceeds the committed rate.

    next_action continue

    Indicates that no further processing is required on packets of the traffic class ftp. Then these packets can return to the network stream.

    The DS codepoint 26 instructs the marker to set all entries in the dscp map to the decimal value 26 (binary 011010). This value sets the AF31 per-hop behavior and marks packets of the ftp traffic class with the DS codepoint 26 in the DS field.

    AF31 assures that all packets with a DS codepoint of 26 receive a low-drop precedence, but with only Class 3 priority. Therefore, the possibility of nonconformant FTP traffic being dropped is low. However, the router gives a higher forwarding probability to traffic classes with a Class 1 or Class 2 low-drop precedence mark or better. For a table of possible AF codepoints, refer to Table 6–2.

  6. Add a marker action statement to assign a per-hop behavior to traffic flows of class ftp that conform to the committed rate.


    action {
        module dscpmk
        name markAF22
        params {
            global_stats TRUE
            dscp_map{0-63:20}
            next_action continue
        }
    }
    

    The next table contains parameters that are not defined in the previous step.

    Entry 

    Description 

    name markAF22

    Gives the name markAF22 to the marker action

    dscp_map{0–63:20}

     

    Assigns a DS codepoint of 20 to the packet headers of the traffic class ftp whenever ftp traffic conforms to its configured rate

    The DS codepoint 20 tells the marker to set all entries in the dscp map to the decimal value 20 (binary 010100). This value sets the AF22 per-hop behavior and marks packets of the ftp traffic class with the DS codepoint 20 in the DS field.

    AF22 assures that all packets with a DS codepoint of 20 receive a medium-drop precedence with Class 2 priority. Therefore, conformant FTP traffic is assured a medium-drop precedence among flows that are simultaneously released by the IPQoS system. However, the router gives a higher forwarding priority to traffic classes with a Class 1 medium-drop precedence mark or higher. For a table of possible AF codepoints, refer to Table 6–2.

  7. Add the DS codepoints that you have created for the application server to the appropriate files on the diffserv router. For more information, refer to How to Configure a Router on an IPQoS-Enabled Network.

Where to Go From Here

Task 

For Information 

Activate the IPQoS configuration file 

How to Apply a New Configuration to the IPQoS Kernel Modules

Add configuration information for web servers 

How to Begin the IPQoS Configuration File and Define Traffic Classes

Configure flow accounting 

How to Enable Accounting for a Class in the IPQoS Configuration File

Configure forwarding behaviors on a router 

How to Configure a Router on an IPQoS-Enabled Network