How to Manage Bandwidth Use in the Network

You can increase network efficiency by managing how different systems on the network use resources, such as bandwidth. By allocating resource use, you can prioritize systems that perform critical functions in the use of these resources over other systems.

You manage resources by configuring flows. A flow and its attributes identify the type of traffic that traverses a specific connection in the network. You create the flow to regulate its use of system resources. Resources are represented as properties of a flow. By specifying values for flow properties, you define how those resources are allocated and used.

Before You Begin

Obtain the following information about your network setup:

  • The systems that comprise your network and their respective functions
  • A ranking of these systems based on which systems will have priority use of resources over others
  • How much of the specific resource to allocate to the different systems in the network
Sample Network Configuration

The procedure that follows shows how to configure the efficient use of bandwidth in the network. The procedure is based on the network setup that is shown in the following figure.

From the figure, the following information is most relevant to the procedure:

  • The network has four servers, a proxy server that connects to three internal servers: an application server, a database server, and a backup server.
  • The proxy server has two NICs whose IP interfaces have customized names: DMZ0 and internal0.
  • DMZ0 is an "external-looking" interface that connects the network to the Internet.
  • internal0 is an "internal-looking" interface that channels traffic between the wider LAN, as well as between the Internet and the three internal servers in the 10.0.12.0 subnet.
Steps

Suppose that, after determining the resource needs of the internal servers, you set the following policy:

  • Both application and database servers require more bandwidth than the backup server.
  • Both application and database servers have higher priority in bandwidth use over the backup server.
    To implement this policy, you would perform the following steps:
  1. Start a privileged shell.

    user@opensolaris:-$ pfexec bash
    #
    

    In this example, the bash shell is selected. You can choose to use any shell with the pfexec command. If you support multiple versions of the SolarisTM OS, use the standard su – root command. The su command works on all Solaris versions.

  2. Check the system's link status.
    # dladm show-link
    LINK          CLASS     MTU      STATE     OVER
    DMZ0          phys      1500     up        nge0
    internal0     phys      1500     up        nge1
    

    DMZ0 and internal0 have been configured over their associated physical NICs nge0 and nge1. In turn, IP interfaces are plumbed over the links, as indicated by the links' "up" status.

  3. Verify that IP addresses have been assigned to the IP interfaces.
    ifconfig -a
    lo0: flags=201000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
         inet 127.0.0.1 netmask ff000000
    DMZ0: flags=201000843<UP,BROADCAST,RUNNING, MULTICAST,IPv4,CoS> mtu 1500 index 2
         inet 10.10.6.5 netmask ff000000 broadcast 10.255.255.255
         ether 0:14:4f:94:d0:60
    internal0: flags=201000849<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 2
         inet 10.10.12.42 netmask ffffff00 broadcast 10.10.10.255
         ether 0:10:20:30:40:aa
    
  4. On internal0, create flows to isolate traffic that is destined for each internal server.
    To create flows, use the following syntax:
    # flowadm add-flow -l <link> -a [<attribute>=<value>,...] <flow-name>
    

    where
    <link> refers to the link for which you are creating a flow.
    <attribute> refers to an attribute of the flow.
    <value> is the value of the attribute that you specified.
    <flow-name> refers to the name of the flow that you created.
    Thus, to create flows for the three internal servers, you would issue the following commands:

    # flowadm add-flow -l internal0 -a local_ip=10.10.12.45 app-flow
    # flowadm add-flow -l internal0 -a local_ip=10.10.12.46 db-flow
    # flowadm add-flow -l internal0 -a local_ip=10.10.12.47 backup-flow
    

    The flows are named app-flow, db-flow, and backup-flow and are defined by the attribute local_ip. The unique IP address of each flow separates the flows from each other.

  5. Display the flow configurations in the system.
    # flowadm show-flow
    FLOW            LINK          IPADDR                 PROTO     PORT     DSFLD
    backup-flow     internal0     LCL:10.10.12.47/32     --        --       --
    db-flow         internal0     LCL:10.10.12.46/32     --        --       --
    app-flow        internal0     LCL:10.10.12.45/32     --        --       --
    
  6. Assign values to specific flow properties.
    Flow properties represent resources, such as maxbw for bandwidth and priority for the order of precedence a flow has over other flows. To implement the policy that you defined at the beginning of the procedure, you configure these properties as follows:
    # flowadm setprop -p maxbw=100,priority=high app-flow
    # flowadm setprop -p maxbw=100,priority=high db-flow
    # flowadm setprop -p maxbw=10,priority=low backup-flow
    

    In this configuration, processes in the application and database servers have higher priority in bandwidth use because of their functions in the network.

Labels

admin admin Delete
configuring configuring Delete
singleadmin singleadmin Delete
network network Delete
smallsiteadmin smallsiteadmin Delete
task task Delete
bandwidth bandwidth Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact