# Compaq TCP/IP Services for OpenVMS
Tuning and Troubleshooting

Previous | Contents | Index

# traceroute

Displays the route that packets take to the network host.

## Format

> traceroute [-m max_ttl] [-n] [-p port] [-q nqueries] [-r] [-s src_addr] [-v] [-w waittime] host [packetsize]

### description

> The Internet is a large and complex aggregation of network hardware connected together by gateways. The `traceroute` command tracks the route that packets follow from gateway to gateway. The command uses the IP protocol time-to-live (TTL) field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway along the path to a particular host.

> The only mandatory parameter is the destination host name or IP address. The default probe datagram length is 38 bytes, but you can increase this value by specifying a packet size (in bytes) after the destination host name. This is useful when the `-f` option is given for MTU discovery along the route. You should start with the maximum packet size for your own network interface (if the given value is even bigger, `traceroute` attempts to select a more appropriate value). If no packet size is given when using the `-f` option, `traceroute` determines the initial MTU automatically.

> To track the route of an IP packet, `traceroute` launches UDP probe packets with a small TTL (time-to-live) and then listens for an ICMP "time exceeded" reply from a gateway. Probes start with a TTL of 1 and increment by one until either an ICMP "port unreachable" is returned (indicating that the packet reached the host) or until the maximum number of hops is exceeded (the default is 30 hops and can be changed with the `-m` option). At each TTL setting, three probes are launched (the number can be changed with the `-q` option), and `traceroute` displays a line showing the TTL, address of the gateway, and round-trip time of each probe. If the probe answers come from different gateways, `traceroute` displays the address of each responding system. If there is no response within a 3-second timeout interval (which can be changed with the `-w` option), `traceroute` displays an asterisk (*) for that probe.

> To prevent the destination host from processing the UDP probe packets, the destination port is set to an unlikely value. If necessary, you can change the destination port valued with the `-p` option.

> Note This program is intended for use in network testing, measurement, and management. It should be used primarily for manual fault isolation. Because of the load it could impose on the network, do not use `traceroute` during normal operations or from automated scripts.

## Flags

> ### -A

> Looks up the AS-number (autonomous system) for each hop's network address at the `whois` server specified by the `-h` option.

> ### -a

> If the destination host has multiple addresses, `traceroute` probes all addresses if this option is set. Normally, only the first address as returned by the resolver is attempted.

> ### -c stoptime

> Specifies a delay (in seconds) to pause between probe packets. This can be necessary if the final destination is a router that does not accept undeliverable packets in bursts.

> ### -f

> Disables IP fragmentation. If the given packet size is too big to be handled unfragmented by a machine along the route, a "fragmentation needed" status is returned, and the indicator !F is printed. If a gateway returns the proper MTU size to be used, `traceroute` automatically decreases the packet size to this new value. If the proper MTU size is not returned, `traceroute` chooses a smaller packet size.

> ### -g gateway

> Enables the IP LSRR (loose source record route) option. This is useful for asking how somebody at the specified gateway reaches a particular target.

> ### -h server

> Specifies the name or IP address of the `whois` server that is contacted for the AS-number lookup, if the `-A` option is given.

> ### -i initial_ttl

> Sets the starting time-to-live value to `initial_ttl` , to override the default value of 1. Effectively this skips processing for intermediate hosts that are less than `initial_ttl` hops away.

> ### -k

> Keeps the connection to the `whois` server permanently open. This speeds lookups considerably, because a connection setup for each individual lookup is not necessary. However, not all `whois` servers support this feature.

> ### -l

> Prints the value of the TTL field in each packet received. (This flag can be used to help detect asymmetric routing.)

> ### -m max_ttl

> Sets the maximum time-to-live (maximum number of hops) used in outgoing probe packets. The default is 30 hops, which is the same default used for TCP connections.

> ### -N

> Displays the network name for each hop. If a BIND resolver cannot be reached, network names are retrieved just from the `/etc/networks` file.

> ### -n

> Displays the hop IP addresses using dotted-decimal notation. This saves a name server address-to-name lookup for each gateway found on the path. It also prevents a reverse lookup for numeric dotted-quad addresses given on the command line, such as destination `host` or `-g gateway` addresses.

> ### -p port

> Sets the base UDP port number used in probes. (The default value is 33434.) The `traceroute` command presumes that nothing is listening on UDP ports `base` to `base+nhops-1` at the destination host (so an ICMP "port unreachable" message is returned to terminate the route tracing). If another process is listening on a port in the default range, use this option to pick an unused port range.

> ### -Q maxquit

> Stops probing this hop after the number of consecutive timeouts specified by `maxquit` are detected. The default value is 5. Useful in combination with `-S` if you have specified a big `nqueries` probe count.

> ### -q nqueries

> Sets the number of probes launched at each TTL setting. The default is 3.

> ### -r

> Bypasses the normal routing tables and sends directly to a host on an attached network. If the host is not on a directly attached network, an error is returned. This option can be used to ping a local host through an interface that has no route through it (for example, after the interface was dropped by ROUTED or GATED).

> ### -S

> Prints a summary of per-hop minimum/average/maximum rtt (round-trip time) statistics. This flag suppresses the per-probe rtt and TTL reporting. To obtain more detailed statistics, increase the default `nqueries` probe count. For more information, see also the `-Q` option.

> ### -s src_addr

> Uses the following IP address (which must be given as an IP number, not as a host name) as the source address in outgoing probe packets. On hosts with more than one IP address, this option can be used to force the source address to be something other than the IP address of the interface on which the probe packet is sent. If the IP address is not one of this machine's interface addresses, an error is returned and nothing is sent.

> ### -v

> Lists any received ICMP packets other than TIME_EXCEEDED and UNREACHABLE.

> ### -w waittime

> Sets the time (in seconds) to wait for a response to a probe. The default is 3 seconds.

## Parameters

> ### host

> Specifies the name or IP address of the destination host. This parameter is required.

> ### packetsize

> Specifies the default length for a probe datagram. This parameter is optional. The default is 38 bytes.

##

### Examples

> The following examples show how to use the `traceroute` command.

#1
    localhost> traceroute nis.nsf.net

    traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 56 byte packet

     1  helios.ee.lbl.gov (128.3.112.1)  19 ms  19 ms  0 ms
     2  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  39 ms 19 ms
     3  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  39 ms 19 ms
     4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  39 ms  40 ms  39 ms
     5  ccn-nerif22.Berkeley.EDU (128.32.168.22)  39 ms  39 ms  39 ms
     6  128.32.197.4 (128.32.197.4)  40 ms  59 ms  59 ms
     7  131.119.2.5 (131.119.2.5)  59 ms  59 ms  59 ms
     8  129.140.70.13 (129.140.70.13)  99 ms  99 ms  80 ms
     9  129.140.71.6 (129.140.71.6)  139 ms  239 ms  319 ms
    10  129.140.81.7 (129.140.81.7)  220 ms  199 ms  199 ms
    11  nic.merit.edu (35.1.1.48)  239 ms  239 ms  239 ms

> This `traceroute` command displays the route that packets take to a remote host. In this example, note that display lines 2 and 3 are identical. This is due to a bug in the kernel on the second hop system, `lbl-csam.arpa` , that forwards packets with a zero TTL. (This is a bug in the distributed version of BSD Version 4.3.)

#2
    localhost> traceroute allspice.lcs.mit.edu

    traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 hops max

     1  helios.ee.lbl.gov (128.3.112.1)  0 ms  0 ms  0 ms
     2  lilac-dmc.Berkeley.EDU (128.32.216.1)  19 ms  19 ms 19 ms
     3  lilac-dmc.Berkeley.EDU (128.32.216.1)  39 ms  19 ms 19 ms
     4  ccngw-ner-cc.Berkeley.EDU (128.32.136.23)  19 ms  39 ms  39 ms
     5  ccn-nerif22.Berkeley.EDU (128.32.168.22)  20 ms  39 ms  39 ms
     6  128.32.197.4 (128.32.197.4)  59 ms  119 ms  39 ms
     7  131.119.2.5 (131.119.2.5)  59 ms  59 ms  39 ms
     8  129.140.70.13 (129.140.70.13)  80 ms  79 ms  99 ms
     9  129.140.71.6 (129.140.71.6)  139 ms  139 ms  159 ms
    10  129.140.81.7 (129.140.81.7)  199 ms  180 ms  300 ms
    11  129.140.72.17 (129.140.72.17)  300 ms  239 ms  239 ms
    12  * * *
    13  128.121.54.72 (128.121.54.72)  259 ms  499 ms  279 ms
    14  * * *
    15  * * *
    16  * * *
    17  * * *
    18  ALLSPICE.LCS.MIT.EDU (18.26.0.115)  339 ms  279 ms 279 ms

> In this example, gateways 12, 14, 15, 16, and 17 either do not send ICMP "time exceeded" messages or send them with a TTL too small to reach the local host. Further investigation is required to determine the cause. For example, by contacting the system administrators for gateways 14 through 17, you could discover that these gateways are running the MIT C Gateway code that does not send "time exceeded" messages.

# Appendix B
Commonly Used UNIX Commands

Table B-1 contains some commonly used TCP/IP network management commands and their corresponding Compaq Tru64 UNIX command formats. A UNIX network manager or system manager who is unfamiliar with the TCP/IP Services implementation of TCP/IP might find this information helpful.

Please note that TCP/IP management commands and qualifiers are a subset of the Compaq Tru64 UNIX network commands. Therefore, not all Compaq Tru64 UNIX command options have a corresponding TCP/IP management command. In addition, execution of a UNIX command in a DCL command procedure does not return an error in $STATUS, so you cannot test for the failure of a UNIX command in a DCL command procedure.

TCP/IP Services uses pseudointerfaces to associate more than one IP address with an interface. The TCPIP commands SET INTERFACE and SET NOINTERFACE allow you to add or delete one IP address at a time. Therefore, to add or delete multiple pseudointerfaces, you must enter a SET INTERFACE or SET NOINTERFACE command for each pseudointerface. For information about how to initialize an interface with more than one IP address, refer to the DIGITAL TCP/IP Services for OpenVMS Concepts and Planning and Compaq TCP/IP Services for OpenVMS Management manuals.

The Compaq Tru64 UNIX `ifconfig` command allows you to associate multiple IP addresses per interface by entering one `ifconfig` command. Therefore, to create or delete multiple IP addresses in one command, use the `ifconfig` command.

Table B-1 Commonly Used Commands
TCP/IP Command | UNIX Command | Description
--- | --- | ---
ARP information |  |
SHOW ARP | `netstat -Hn` | Displays all ARP entries. 1
SHOW ARP | `arp -a[-u][-i][-n]` | Displays all ARP entries.
SHOW ARP hostname | `arp hostname` | Displays entry for a host. 1
SET ARP hardware_addr host | `arp -s host hardware_addr [ params]` | Adds an ARP entry.
SET NOARP host | `arp -d host` | Removes an ARP entry.
Interface information |  |
SHOW INTERFACE | `ifconfig -a[-d][-u][-v] [-f addr_family]` | Displays information for all interfaces.
SHOW INTERFACE | `ifconfig -l[-d][-u][-v] [-f addr_family]` | Displays information for all configured interfaces.
SHOW INTERFACE /FULL | `netstat -i[-n][-d]` | Displays information for all configured interfaces.
SHOW INTERFACE /FULL | `netstat -I interface` | Displays information on the specified interface.
| `netstat -A` | Displays miscellaneous information.
| `netstat -I interface -t` | Displays timer information for the specified interface.
SHOW INTERFACE interface_id [/FULL] | `ifconfig interface_id` | Displays interface information.
SET INTERFACE interface_id /HOST= host /NETWORK_MASK= mask | `ifconfig interface_id [ address_family] address[/ bitmask]` | Sets the primary interface address.
SET INTERFACE interface_id /HOST= host /[NETWORK_MASK= mask] | `ifconfig interface_id [ address_family] alias addr[/ mask]` | Adds an alias interface address.
SET NOINTERFACE interface_id | `ifconfig interface_id [ address_family] -alias alias_address` | Removes an alias interface address.
SET NOINTERFACE interface_id /HOST= host [/NETWORK_MASK= mask] 2 | `ifconfig interface_id [ address_family] -aliaslist alias_list/ bitmask` | Adds a list of interface aliases.
SET NOINTERFACE interface_id 3 | `ifconfig interface_id [ address_family] -aliaslist alias_list/ bitmask` | Removes a list of interface alias addresses.
SET INTERFACE interface_id /PARAM= value | `ifconfig interface_id param= value` | Modifies interface parameters.
Active sockets information |  |
SHOW DEVICE[/FULL] | `netstat -a` | Displays the active sockets.
SHOW DEVICE[/FULL] | `netstat -n` | Displays the active sockets.
SHOW DEVICE BG xx[/FULL] |  | Displays information on a particular socket.
Memory information |  |
SHOW COMMUNICATION/MEMORY | `netstat -m` | Displays memory usage. 1
Route information |  |
SHOW ROUTE[/FULL] | `netstat -r` | Displays all routes.
SHOW ROUTE host | `` | Displays the route to a destination.
SHOW ROUTE/GATEWAY= host |  | Displays routes.
SHOW ROUTE[/FULL] | `netstat -r -f address_family` | Displays the route for an address family.
| `netstat -rs` | Displays route statistics.
| `netstat -rv` | Displays routes with metrics.
SET ROUTE destination [/NETWORK] [/MASK= bitmask] /GATEWAY= host | `route add -net|-host destination_address/ bitmask gateway_addr` | Adds a route to a host.
SET NOROUTE destination [/GATEWAY= host] | `route delete -net|-host destination_address/ bitmask [ gateway_addr]` | Removes a route to a host.
| `route [-nqv] change [-net|-host] [ address_family] destination gateway [-link]` | Changes route information.
Protocol information |  |
SHOW PROTOCOL | `netstat -s` | Displays statistics for all protocols. 1
SHOW PROTOCOL protocol_id | `netstat -p protocol_id` | Displays protocol statistics for a specific protocol. 1
ZERO PROTOCOL protocol_id | `netstat -p protocol_id -z` | Zeroes protocol statistics.
| `sysconfig -s` | Shows the configurable subsystems.
SHOW PROTOCOL IP/PARAMETERS SHOW PROTOCOL UDP/PARAMETERS SHOW PROTOCOL TCP/PARAMETERS SHOW PROTOCOL ICMP/PARAMETERS | `sysconfig -q inet [ attribute-list]` | Shows the `inet` subsystem parameters.
| `sysconfig -c attr= value ...` | Configures subsystems.
| `sysconfig -q subsystem` | Shows information about a subsystem.
SET PROTOCOL protocol_id /PARAMETERS= value | `sysconfig -r inet attr= value ...` | Sets protocol attributes.
| `sysconfig -r subsyst attr= value ...` | Sets other subsystem attributes.
NFS information |  |
SET NFS_SERVER /UID_DEFAULT= value | `sysconfig -r nfs noproxy_uid= value` | Specifies the default UID when a user cannot be translated by the proxy.
SET NFS_SERVER /GID_DEFAULT= value | `sysconfig -r nfs noproxy_gid= value` | Specifies the default GID when a user cannot be translated by the proxy.
SET NFS_SERVER /THREADS=TCP= value | `sysconfig -r nfs tcp_threads= value` | Specifies the number of concurrent TCP threads within the NFS server. A value of 0 (zero) will disable the TCP protocol.
SET NFS_SERVER /INACTIVITY_TIMER= value | `sysconfig -r nfs vnode_age= value` | Specifies the time interval (in seconds) since the last file access request.

1Displays the same information for both the Compaq Tru64 UNIX and the TCP/IP versions of the command.
2To create a new pseudointerface for each alias, enter a command for each alias address.
3To delete a pseudointerface for each alias, enter a command for each alias.

Index | Contents