Diagnostic Utilities

The TNSR CLI includes convenience utilities for testing connectivity.

Diagnostic Routing Behavior

The utilities in this section behave the same with regard to routing. They can operate in either the host or dataplane namespace (Networking Namespaces), and default to using the dataplane namespace so the tests will run using the same networking environment as TNSR.

Test packets will follow the routing table available in the namespace.

Ping

To perform a basic ICMP echo request, use the ping command:

tnsr# ping <destination host>

TNSR will send 10 ICMP echo requests to the destination host using the dataplane namespace, waiting a maximum of 12 seconds for a reply.

The ping command supports a number of additional parameters which alter its behavior:

tnsr# [(host|dataplane)] ping (<dest-host>|<dest-ip>) [ipv4|ipv6]
        [interface <if-name>] [source <src-addr>] [count <count>]
        [packet-size <bytes>] [ttl <ttl-hops>] [timeout <wait-sec>]
        [buffered] [interval <seconds:0.000001-6000>]
host|dataplane

The namespace (Networking Namespaces) in which the command will run.

dest-host|dest-ip

The target of the ICMP echo request. This may be a hostname, IPv4 IP address, or IPv6 IP address.

ipv4|ipv6

When a hostname is used for the destination, this parameter controls the address family used for the ICMP echo request when the DNS response for the hostname contains both IPv4 (A) and IPv6 (AAAA) records.

interface

The TNSR interface from which the ICMP echo requests will originate.

source

The source IP address for the ICMP echo requests. If omitted, an address will be automatically selected on the interface through which the packet will exit toward the target.

count

The number of ICMP echo requests to send. Default value is 10.

packet-size

The size of of the ICMP echo request payload, not counting header information. Default value is 56.

ttl

The Time To Live/Hop Limit value for ICMP echo requests, which can limit how far they may travel across the network. Default value is 121 hops.

timeout

The total time to wait for the command to complete.

buffered

Execute the command in the backend and only display the results when the test completes. Otherwise the command is run through the terminal and the CLI displays the results live.

interval

The amount of time in seconds to wait between ICMP echo requests. Fractional seconds are allowed. Value must be in the range 0.000001-6000.

Traceroute

To perform a network routing trace to a destination host, use the traceroute command:

tnsr# traceroute <destination host>

As with the ping command, there several additional parameters to change the behavior of the trace:

tnsr# [(host|dataplane)] traceroute (<dest-host>|<dest-ip>) [ipv4|ipv6]
        [interface <if-name>] [source <src-addr>] [packet-size <bytes>]
        [no-dns] [ttl <ttl-hos>] [waittime <wait-sec>] [buffered]

Most parameters are the same as those found in ping (Ping). Only the items that differ are as follows:

no-dns

Do not attempt to use DNS to reverse resolve hosts that respond to probes.

waittime

Amount of time the command will wait for individual probe responses to return.

Warning

The traceroute command requires /usr/bin/traceroute to be present in the base operating system. The TNSR package set includes a dependency which will automatically install a package for traceroute. It may also be installed manually using sudo dnf install -y traceroute or a similar command, depending on the host OS package management configuration.