Setting Up Virtual Links

Create and apply the aggregate bandwidth cap.

Virtual link (Vlink) is a feature that allows "virtual" bandwidth caps. Transfer sessions assigned to the same "virtual" link conform to the aggregate bandwidth cap and attain an equal share of it. This section first shows you how to set up Vlinks, then explains how to apply it to computers or users.

Follow these steps to configure Vlinks:

  1. Create Vlinks (GUI)
    Note:

    Skip this step if you are setting it up in a Terminal.

    To configure Vlinks, execute asperascp in a Terminal (as a root user) to launch the application, and click Configuration. Select Vlinks tab in the left panel.

    Click Add Vlink to add a new Vlink entry; enter a number between 1 and 255 and click OK.

    Add a Vlink

    Here is a list of all Vlink configuration options:

    # Field Description Values Default
    1 Vlink Name The Vlink name. This value has no impact on actual bandwidth capping. text string blank
    2 On Select true to activate this Vlink; select false to deactivate it.
    • true
    • false
    false
    3 Capacity (kbps) This value reflects the virtual bandwidth cap in Kbps. When applying this Vlink to a transfer (e.g. Default outgoing), the transfer's bandwidth will be restricted by this value. positive integer in Kbps 50000
  2. Apply a Vlink to a transfer (GUI)
    Note:

    Skip this step if you are setting it up in a Terminal

    You can assign a Vlink to global or user settings. This example assigns a Vlink to a user's incoming transfer session.

    Bring up the Configuration window and select the Users tab, select the user to apply Vlink. In the right panel, select the Bandwidth tab, check the option Incoming Vlink ID and select the Vlink to apply (choose ID from drop-down list):

    Assign a Vlink to a user
  3. Create Vlinks in aspera.conf (Terminal)

    To create Vlinks in a Terminal, open aspera.conf with a text editor:

    /opt/aspera/etc/aspera.conf

    You can refer to the configuration example:

    /opt/aspera/etc/samples/aspera-everything.conf

    Locate or create the section <trunks>...</trunks>. For each vlink, add a <trunk>...</trunk>:

    <CONF version="2">
      ...
      <trunks>
        <trunk>
          <id>108</id>                   <!-- Vlink ID -->
          <name>50Mbps cap</name>        <!-- Vlink Name -->
          <capacity>
             <value>50000</value>        <!-- Capacity -->
          </capacity>
          <on>true</on>                  <!-- On -->
          <mcast_port>55001</mcast_port> <!-- Multicast Port -->
          <mcast_ttl></mcast_ttl>        <!-- Multicast TTL -->   
        </trunk>
      </trunks>
    </CONF>

    Here is a description of the Vlink tags:

    # Tag Description Values Default
    1 Vlink ID The Vlink ID. Sessions assigned with the same trunk ID share the same bandwidth cap. positive integer between 1 and 255. N/A
    2 Vlink Name The Vlink name. This value has no impact on actual bandwidth capping. text string blank
    3 Capacity This value reflects the virtual bandwidth cap in Kbps. When applying this Vlink to a transfer (e.g. Default outgoing), the transfer's bandwidth will be restricted by this value. positive integer in Kbps 50000
    4 On Select true to activate this Vlink; select false to deactivate it. true/false false
    5 Multicast Port This sets the UDP port through which virtual link sends and receives multicast communication messages. Sessions sharing the same virtual bandwidth cap needs to have the same port number. To avoid port conflicts, it is recommended to use the default UDP port 55001. Do NOT set the port number to the same one used by FASP data transfer (33001). positive integer between 1 and 65535 55001
    6 Multicast TTL This sets the Time-to-Live (TTL) field in the IP headerfor Vlink multicast packets. positive integer between 1 and 255 blank
  4. Apply a Vlink to a transfer (Terminal)

    You can assign a Vlink to a global or a user settings in aspera.conf.

    In this example, assuming we have created three vlinks: 108, 109, and 110, apply these vlinks to the outgoing bandwidth globally or to specific users:

    <CONF version="2">
      ...
      <default>
        <transfer>
          <out>
            <bandwidth><aggregate>
              <trunk_id>108</trunk_id> <!-- Vlink #108 for the default outgoing sessions. -->
            </aggregate></bandwidth>
          </out>
          <in>
           ...
          </in>
        </transfer>
      </default>
      <aaa><realms><realm>
        <users>
          <user>
            <name>aspera_user_1</name>
            <transfer>
              <out>
                <bandwidth><aggregate>
                  <trunk_id>109</trunk_id> <!-- Vlink #109 to the user aspera_user_1's outgoing sessions. -->
                </aggregate></bandwidth>
              </out>
              <in>
               ...
              </in>
            </transfer>
          </user>
        </users>
      </realm></realms></aaa>
    </CONF>
Important: If you have a local firewall on your server (for example, Windows firewall, Linux iptables, or Mac ipfw), you will need to allow the Vlink UDP port (55001, by default) for multicast traffic.

Linux iptables Example:

$ iptables -A INPUT -p udp --dport 55001 -j ACCEPT