When a ThousandEyes Enterprise Agent has multiple network interfaces each with a unique IP address, or has a single interface with multiple IP addresses, the Interface Selection feature allows a test to use a specific interface or IP address. The test will use the assigned interface to perform all measurements, and set the source IP address of packets to the desired IP address. By providing test-level control of source IP addresses, Interface Selection allows customers to direct test traffic using policy-based routing or similar mechanisms, such as those found in SD-WAN environments.
Using Interface Selection and multiple tests, a customer can configure a single Enterprise Agent to monitor a given target via multiple paths. A common use case is monitoring a multi-homed site or enterprise. When an organization has more than one connection to the Internet, a single Enterprise Agent can run multiple tests, each assigned to a specific link. Links may be physical, or may be Virtual Private Network (VPN) links.
If SD-WAN technology is employed, a dedicated test and interface/address could be used to identify which path the SD-WAN currently uses. The Path Visualization will display hops specific to a path, whether overlay or underlay. Alerts may be constructed based on the IP addresses of hops in the the path.
Interface Selection is available for all test types except browser-based tests (Page Load and Transaction tests) and DNS layer tests. The Agents selectors for these test types will not display any additional interface information on an Enterprise Agent with multiple interfaces. This applies to all views of the test type, i.e. a Page Load test's HTTP Server view and Network layer views will not display the Interface Selection.
Depending on the current configuration of the system running your Enterprise Agent, configuring Interface Selection is done in up to three steps if adding additional physical or virtual network interfaces, or up to two steps if adding additional IP addresses to an existing interface:
Create the physical or virtual network interface adapter for the system (if using multiple interfaces; skipped if using one interface with multiple addresses)
Configure the interface with new IP information
Configure a test to use the network interface/IP address
To support Interface Selection with multiple interfaces, the system running an Enterprise Agent must either have multiple network interfaces already installed or the system must have one or more interfaces added. The process to add interfaces depends on the physical hardware, virtualization technology (if used), and operating system. Review the documentation for your hardware, virtualization technology and operating system to add new interfaces, if needed.
Skip this step if using Interface Selection with a single interface having multiple IP addresses.
Interface Selection supports multiple interfaces each with a single IP address, or a single interface with multiple IP addresses. ThousandEyes Appliances provide configuration of IP information (IP address, netmask, default gateway, etc...) through the web-based administration. Other Agent installation types (Linux package, Docker) are configured according to the operating system used. Review the documentation for your operating system, and review the instructions for your installation type in the Agent Configuration section below.
Once an Enterprise Agent has multiple interfaces or IP addresses configured, tests can be configured to use a specific interface/address of that Agent. A test's Agents selector will display the Enterprise Agent with a triangle expander icon beside the Agent's name. Clicking the checkbox beside the Agent's name will make the radio buttons clickable, allowing selection of an interface/IP address.
The selector below displays an Enterprise Agent with two network interfaces, eth0 (IP address 10.100.10.108) and eth1 (IP address 10.100.10.73).
The selector below displays an Enterprise Agent with one network interface, eth0, with two IP addresses 192.168.1.81 and 192.168.1.112.
The selector will also list a Default interface selection radio button, which will be selected by default. The default interface will be one of the interfaces listed below the Default interface selection radio button. If the system was originally configured with a single interface, then the default interface is usually the original interface. This option exists for users who may be unfamiliar with the Interface Selection feature, to allow them to select an interface that is likely to be sufficient for their needs.
The default interface is the interface associated with the system's default routing table:
$ ip route showdefault via 192.168.1.254 dev eth0 onlink169.254.1.0/24 dev eth0 proto kernel scope link src 169.254.1.21718.104.22.168/30 dev sb_parent proto kernel scope link src 172.21.86.173192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.83
ip route show displays the default interface of eth0/192.168.1.83, as shown in the previous image.
The sections below provide instructions to configure each type of Enterprise Agent installation: Appliances (Virtual or Physical), Linux package, and Docker. Each section contain instructions for both the multiple interfaces and single interface/multiple addresses scenarios. Follow the instructions in the section which applies to your type of Enterprise Agent installation and interface/address scenario.
NOTE: An Enterprise Agent can only be configured with multiple interfaces or with a single interface having multiple IP addresses. An Enterprise Agent cannot be configured with both methods.
NOTE: Interface Selection is not supported on Enterprise Agent clusters.
NOTE: The ThousandEyes Appliance is typically the easiest installation type to configure when using Interface Selection. Configuration of Linux package and Docker installation types has limitations, and all configuration of the interfaces and addresses is the responsibility of the customer. ThousandEyes recommends using an Appliance installation if Interface Selection is required.
The ThousandEyes Virtual Appliance and Physical Appliance are configured through the Appliance's web administration interface. Log into the web interface and select the Appliance's Network tab to configure any additional interfaces or IP addresses. See the following articles for more information on accessing and navigating the web administration interface:
To configure multiple interfaces, first add a virtual network interface in the hypervisor software used to run the Virtual Appliance, or add a physical network interface. Consult your hypervisor's documentation for instructions on adding a virtual network interface (Virtual Appliance) or hardware documentation for instructions on adding a physical network interface (Physical Appliance).
When the Appliance has been configured with an additional interface(s), login to the Appliance's web administration console. The Network tab will display the initial configuration field(s) for the additional interface(s) below the default interface. In the image below, interface eth1 is available for configuration:
In the configuration setting, select either Using DHCP or Manually, then configure the IP settings that appear. Note that Physical Address is not a configurable field.
Click the Save button at the bottom of the page to save the configuration.
To configure multiple interfaces, login to the Appliance's web administration console. The Network tab will display the + Add IP address link below the default interface. In the image below, interface eth0 is available for configuration:
Click the + Add IP address link then configure the IP settings that appear. The Name field is a string without whitespace which can be used to identify the purpose of the interface, and will be displayed in the Agents selector of tests. For example, the string "SD-WAN_IP" could be used to identify an IP address used in an SD-WAN overlay.
For supported versions of Ubuntu, Red Hat Enterprise Linux, CentOS and Oracle Linux, customers will need to perform the configuration tasks needed to create interfaces, and then configure the interfaces either statically or via DHCP. Additionally, creation of a new routing table may be required via the iproute2 package, or similar tool.
To configure multiple interfaces, first add a physical network interface, or virtual network interface in the hypervisor software used to run the Appliance. Consult your hardware or hypervisor documentation for instructions on adding a network interface.
When the system has been configured with an additional interface(s), consult the documentation for your Linux distribution to add IP configuration manually to the interface, and create a routing table for the interface if needed. Configuring the interface via DHCP is not supported when an interface uses a dedicated routing table.
To configure a single interface with multiple IP addresses, manually add the IP information to the interface. DHCP is not supported for multiple addresses on a single interface. An example set of commands is below for configuring eth0.
Add the new IP address to the running system
ip addr add 10.0.0.1/8 dev eth0 label eth0:1
/etc/network/interfaces to persist across reboots
iface eth0:1 inet staticaddress 10.0.0.1netmask 255.0.0.0
For the ThousandEyes Docker image, customers will need to perform the configuration tasks needed to create interfaces when invoking the
docker run command, and then configure the interfaces either statically or via DHCP. Additionally, creation of a new routing table may be required via the iproute2 package, or similar tool. Consult the Docker documentation for further configuration details. The ThousandEyes Docker image is based on Ubuntu, so any configuration within the container follows the instructions above for Linux packages.
After configuring the Interface Selection feature, selected IP addresses will be displayed in the Path Visualization view. In other test views and parts of the app, the default interface will be displayed.
When a test uses an Agent's non-default interface, the Path Visualization view will display the selected interface used in the Agent's tooltip, under the Interface Details. Mouse over an Agent in the Path Visualization to display the tooltip:
In the image above, the IP address 10.100.10.73 from interface eth1 is used for the test.
In the Overview, the Table tab will display the default interface, and any public IP address (NAT IP address) associated with the default interface:
In the image above, the IP address 10.100.10.108 from interface eth0 is displayed, although the test used eth1 (10.100.10.73).
In other views or areas of the app, the default interface's information will be displayed, such as the Agent's General Information section of the Agent Settings page:
In the image above, the IP address 10.100.10.108 from the default interface, eth0, is displayed in the Private IP Address field. The default interface is always used to contact ThousandEyes for data upload and configuration downloads. Note that the public IP address (NAT IP address) is the address associated with the connections made to ThousandEyes from 10.100.10.108. The public IP address may be the same for traffic from the eth1 interface (10.100.10.73) to the internet, or the public IP address may be different if more than one NAT IP address is available, such as when a NAT address pool is configured on the NAT device, or if multiple paths to the Internet exist and traverse different NAT devices.
A test may display an error similar to the following:
The message "Cannot use the selected interface" appears in the Error Details column. Some reasons for this error:
The test uses Interface Selection with a specific (non-default) interface which becomes unavailable
The test uses Interface Selection with a specific (non-default) IPv4 interface but the test's IPv6 Policy setting (on the Advanced Settings tab) is configured with "Force IPv6" or "Prefer IPv6" or "Agent's policy" where the policy is "Force IPv6" or "Prefer IPv6" and the test target is either an IPv6 IP address or a domain name that resolves to an IPv6 address
The test uses Interface Selection with a specific (non-default) IPv6 interface but the test's IPv6 Policy setting (on the Advanced Settings tab) is configured with "IPv4 only" or "Agent's policy" where the policy is "IPv4 only" and the test target is either an IPv4 IP address or a domain name that resolves to an IPv4 address