---
title: "X Route"
description: ""
url: "https://docs.itrsgroup.com/docs/geneos/7.11.0/collection/x-route/index.html"
---
## Introduction

Geneos X Route plugin checks the network path to a specified target node, the latency introduced by each hop and the availability of the node. It sends ICMP or UDP packets to the target host and measures the time it takes to reply and the hops that make up the full network path to the target node. The target host does not need to run any special software to provide the replies.

A number of expected routes can be preset, so that the route name is shown as a headline variable. e.g. Primary Route and Backup Route could be defined, so that when the messages are routers via the Backup Route, the operator is made aware.

X Route is also useful to ensure security, where only designated routed are considered secure.

## Views

#### View

The X Route plugin produces a single view as follows:

![x-route2](https://docscdn.itrsgroup.com/geneos/images/netprobe/system-images/image2_geneos_-_x-route_plug-in.png)

**Headline Legend**

<div class="table-container">
<table class="legacy-table"   style="margin-left: 0;margin-right: auto;width: 100%;mc-table-style: url('../Resources/TableStyles/ref_2_col_table.css');" cellspacing="0">
                            <col width="17%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <col width="83%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <thead>
                                <tr class="TableStyle-ref_2_col_table-Head-Header1">
                                    <th class="TableStyle-ref_2_col_table-HeadE-Column1-Header1"><strong>Name</strong>
                                    </th>
                                    <th class="TableStyle-ref_2_col_table-HeadD-Column1-Header1"><strong>Description</strong>
                                    </th>
                                </tr>
                            </thead>
                            <tbody valign="top">
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">targetNode</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The name and IP address of the host that
 the route is being traced to.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">targetState</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The state of the Node - "reachable" or
 "unreachable".</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">totalHops</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The number of hops currently used to reach
 the node.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">nodeAccessTime</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Time in ms for a test packet to be sent and
 received back from the node .</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyB-Column1-Body1">routeName</td>
                                    <td class="TableStyle-ref_2_col_table-BodyA-Column1-Body1">Shows the name of the current route. Route
 name can be user defined in the setup.</td>
                                </tr>
                            </tbody>
                        </table>
                        
</div>

**Table Legend**

<div class="table-container">
<table class="legacy-table"   style="margin-left: 0;margin-right: auto;width: 100%;mc-table-style: url('../Resources/TableStyles/ref_2_col_table.css');" cellspacing="0">
                            <col width="14%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <col width="86%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <thead>
                                <tr class="TableStyle-ref_2_col_table-Head-Header1">
                                    <th class="TableStyle-ref_2_col_table-HeadE-Column1-Header1"><strong>Name</strong>
                                    </th>
                                    <th class="TableStyle-ref_2_col_table-HeadD-Column1-Header1"><strong>Description</strong>
                                    </th>
                                </tr>
                            </thead>
                            <tbody valign="top">
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">hopID</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Hop identifier.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">nodeName</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The name of the node for each hop.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">nodeAddress</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The IP address of the node for each
 hop.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">turnAroundTime</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Time in ms for a test packet to be sent and
 received back from the hop.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyB-Column1-Body1">packetLoss</td>
                                    <td class="TableStyle-ref_2_col_table-BodyA-Column1-Body1">The number of test packets lost as
 percentage of the overall sent. Indicates
 quality/loading of the hop.</td>
                                </tr>
                            </tbody>
                        </table>
                        
</div>

## Plugin Configuration

The following parameters can be configured for this plugin:

### var-recvInterfaces

Specifies a comma-separated list of network interface names to be used.

On UNIX machines, interface names can be found using the command "ifconfig -a". Example names are "eth0" or "ce0".

On Windows machines, interface names can be listed by running Netprobe using the "-ifconfig" command-line option. A Windows interface name will look similar to the following:

```
\Device\NPF_{BDFE3EAC-0275-440A-923C-C9C4CE3B37F2}
```

Mandatory: Yes

### sendInterface

The name of the network interface to be used to send packets (e.g. hme0). Usually the same as *[*recvInterface*](#var-recvinterfaces)* parameter, but can be set to a different value in certain network configurations.

Mandatory: Yes

### targetNode

The name or the IP address of the target node at the end of the network path that is being monitored. This must not be the node that the NetProbe is running on.

Mandatory: Yes

### var-nameResolution

Boolean. When set *true* will use DNS to resolve the IP addresses of the route nodes.

Mandatory: No

Default: TRUE

### protocol

The type of protocol to use. Can be UDP or ICMP. ICMP is more likely to pass through routers and firewalls.

Mandatory: No

Default: ICMP

### var-maxHops

The maximum number of hops that the route can take. Maximum allowed is 63.

Mandatory: No

Default: 20

### var-maxNumberOfProbes

The maximum number of test packets sent to each hop. Maximum allowed is 7.

Mandatory: No

Default: 3

### var-timeAllowed

The timeout interval for a reply from a hop.

Mandatory: No

Default: 3

### routes

Routes to *targetNode*. The *routeName* headline variable shows the route used. When a route is not one of the set routes, the *routeName* headline variable is shown as UNKNOWN.

Mandatory: No

### routes > route > var-name

The name of the route.

Mandatory: Yes

### routes > route > routeNodes

List of hops IP addresses or names that describe a route. A valid value can be an IP address or a wildcard (`*`).

Mandatory: Yes

### routes > route > routeNodes > routeNode

A hop on a route. A valid value can be an IP address or a wildcard (`*`).

Mandatory: Yes

### routes > route > var-matchExactHops

Set this false to enable Loose Matching for the route. If Loose Matching is enabled then completely wild [routeNodes](#routes--route--routenodes--routenode) (i.e. `\*.\*.\*.\*`) will match zero or more hops.

e.g. The Route `*\*.\*.\*.\*`, 1.2.3.4, `\*.\*.\*.\**` will match any route that passes through *1.2.3.4* no matter how long.

Mandatory: No

Default: False

### var-sourceIP

The Source IP address to be used in the outbound test packets.

Mandatory: No

Default: Defaults to the default IP address on the card.

### checkTargetHostHasChangedIp

Forces X Route to detect if the underlying IP address of a host name has +changed. This will restart the packet capture engine so X Route will +continue to check the correct host. In between restarts there is a +potential for losing packets.


**Note**

  
Restarting the packet capture engine will affect all X-Set plugins as they too might miss packets. 



Mandatory: No

Default: False

## Permissions

The plugin needs to open network devices, so you should run the Netprobe using root or administrator permission on Unix and Windows, respectively.

On Linux kernel versions 2.6.24 and higher, an alternative to running the Netprobe as root is by setting the `CAP_NET_RAW` and `CAP_NET_ADMIN` Linux capabilities on the Netprobe binary using the following command:

```
setcap cap_net_raw,cap_net_admin+eip <netprobe binary>
```

When running the Netprobe with set capabilities, the  `lib64/startup` folder in the Netprobe directory should be in the `ld.so` trusted paths. Otherwise, the runtime libraries will not load properly. For guidance, see [Run Netprobe under elevated privileges in Linux](https://docs.itrsgroup.com/docs/geneos/7.11.0/collection/netprobe/installation/quickstart-linux-and-other-platforms/index.html#run-netprobe-under-elevated-privileges-in-linux).


## Third Party Libraries

Windows: The Npcap packet capture library needs to be installed on the host. If Npcap is not installed using WinPcap API-compatible mode, then the Npcap installation directory must be added in the `PATH` environment variable or the `DLL_PATH` registry variable.

Unix: The shared library `libpcap.so` needs to be in the `netprobe/lib64` directory. It is recommended to use `libpcap.so` version 1.0.0 or later.

Note:  As the Netprobe needs to be run as root, the `LD_LIBRARY_PATH` is ignored for security reasons.



