1*bd1f8aebSAndroid Build Coastguard Worker<refentry id="tracepath"> 2*bd1f8aebSAndroid Build Coastguard Worker 3*bd1f8aebSAndroid Build Coastguard Worker<refmeta> 4*bd1f8aebSAndroid Build Coastguard Worker<refentrytitle>tracepath</refentrytitle> 5*bd1f8aebSAndroid Build Coastguard Worker<manvolnum>8</manvolnum> 6*bd1f8aebSAndroid Build Coastguard Worker<refmiscinfo>iputils-&snapshot;</refmiscinfo> 7*bd1f8aebSAndroid Build Coastguard Worker</refmeta> 8*bd1f8aebSAndroid Build Coastguard Worker 9*bd1f8aebSAndroid Build Coastguard Worker<refnamediv> 10*bd1f8aebSAndroid Build Coastguard Worker<refname>tracepath, tracepath6</refname> 11*bd1f8aebSAndroid Build Coastguard Worker<refpurpose> 12*bd1f8aebSAndroid Build Coastguard Workertraces path to a network host discovering MTU along this path</refpurpose> 13*bd1f8aebSAndroid Build Coastguard Worker</refnamediv> 14*bd1f8aebSAndroid Build Coastguard Worker 15*bd1f8aebSAndroid Build Coastguard Worker<refsynopsisdiv> 16*bd1f8aebSAndroid Build Coastguard Worker<cmdsynopsis> 17*bd1f8aebSAndroid Build Coastguard Worker<command>tracepath</command> 18*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-n</arg> 19*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-b</arg> 20*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-l <replaceable/pktlen/</arg> 21*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-m <replaceable/max_hops/</arg> 22*bd1f8aebSAndroid Build Coastguard Worker<arg choice="opt">-p <replaceable/port/</arg> 23*bd1f8aebSAndroid Build Coastguard Worker<arg choice="req"><replaceable/destination/</arg> 24*bd1f8aebSAndroid Build Coastguard Worker</cmdsynopsis> 25*bd1f8aebSAndroid Build Coastguard Worker</refsynopsisdiv> 26*bd1f8aebSAndroid Build Coastguard Worker 27*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>DESCRIPTION</title> 28*bd1f8aebSAndroid Build Coastguard Worker<para> 29*bd1f8aebSAndroid Build Coastguard WorkerIt traces path to <replaceable/destination/ discovering MTU along this path. 30*bd1f8aebSAndroid Build Coastguard WorkerIt uses UDP port <replaceable/port/ or some random port. 31*bd1f8aebSAndroid Build Coastguard WorkerIt is similar to <command/traceroute/, only does not require superuser 32*bd1f8aebSAndroid Build Coastguard Workerprivileges and has no fancy options. 33*bd1f8aebSAndroid Build Coastguard Worker</para> 34*bd1f8aebSAndroid Build Coastguard Worker 35*bd1f8aebSAndroid Build Coastguard Worker<para> 36*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath6/ is good replacement for <command/traceroute6/ 37*bd1f8aebSAndroid Build Coastguard Workerand classic example of application of Linux error queues. 38*bd1f8aebSAndroid Build Coastguard WorkerThe situation with IPv4 is worse, because commercial 39*bd1f8aebSAndroid Build Coastguard WorkerIP routers do not return enough information in ICMP error messages. 40*bd1f8aebSAndroid Build Coastguard WorkerProbably, it will change, when they will be updated. 41*bd1f8aebSAndroid Build Coastguard WorkerFor now it uses Van Jacobson's trick, sweeping a range 42*bd1f8aebSAndroid Build Coastguard Workerof UDP ports to maintain trace history. 43*bd1f8aebSAndroid Build Coastguard Worker</para> 44*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 45*bd1f8aebSAndroid Build Coastguard Worker 46*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>OPTIONS</title> 47*bd1f8aebSAndroid Build Coastguard Worker<variablelist> 48*bd1f8aebSAndroid Build Coastguard Worker 49*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 50*bd1f8aebSAndroid Build Coastguard Worker <term><option/-n/</term> 51*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 52*bd1f8aebSAndroid Build Coastguard WorkerPrint primarily IP addresses numerically. 53*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 54*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 55*bd1f8aebSAndroid Build Coastguard Worker 56*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 57*bd1f8aebSAndroid Build Coastguard Worker <term><option/-b/</term> 58*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 59*bd1f8aebSAndroid Build Coastguard WorkerPrint both of host names and IP addresses. 60*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 61*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 62*bd1f8aebSAndroid Build Coastguard Worker 63*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 64*bd1f8aebSAndroid Build Coastguard Worker <term><option/-l/</term> 65*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 66*bd1f8aebSAndroid Build Coastguard WorkerSets the initial packet length to <replaceable/pktlen/ instead of 67*bd1f8aebSAndroid Build Coastguard Worker65535 for <command/tracepath/ or 128000 for <command/tracepath6/. 68*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 69*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 70*bd1f8aebSAndroid Build Coastguard Worker 71*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 72*bd1f8aebSAndroid Build Coastguard Worker <term><option/-m</term> 73*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 74*bd1f8aebSAndroid Build Coastguard WorkerSet maximum hops (or maximum TTLs) to <replaceable/max_hops/ 75*bd1f8aebSAndroid Build Coastguard Workerinstead of 30. 76*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 77*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 78*bd1f8aebSAndroid Build Coastguard Worker 79*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 80*bd1f8aebSAndroid Build Coastguard Worker <term><option/-p/</term> 81*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 82*bd1f8aebSAndroid Build Coastguard WorkerSets the initial destination port to use. 83*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 84*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 85*bd1f8aebSAndroid Build Coastguard Worker</variablelist> 86*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 87*bd1f8aebSAndroid Build Coastguard Worker 88*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>OUTPUT</title> 89*bd1f8aebSAndroid Build Coastguard Worker<para> 90*bd1f8aebSAndroid Build Coastguard Worker<literallayout> 91*bd1f8aebSAndroid Build Coastguard Workerroot@mops:~ # tracepath6 3ffe:2400:0:109::2 92*bd1f8aebSAndroid Build Coastguard Worker 1?: [LOCALHOST] pmtu 1500 93*bd1f8aebSAndroid Build Coastguard Worker 1: dust.inr.ac.ru 0.411ms 94*bd1f8aebSAndroid Build Coastguard Worker 2: dust.inr.ac.ru asymm 1 0.390ms pmtu 1480 95*bd1f8aebSAndroid Build Coastguard Worker 2: 3ffe:2400:0:109::2 463.514ms reached 96*bd1f8aebSAndroid Build Coastguard Worker Resume: pmtu 1480 hops 2 back 2 97*bd1f8aebSAndroid Build Coastguard Worker</literallayout> 98*bd1f8aebSAndroid Build Coastguard Worker</para> 99*bd1f8aebSAndroid Build Coastguard Worker 100*bd1f8aebSAndroid Build Coastguard Worker<para> 101*bd1f8aebSAndroid Build Coastguard WorkerThe first column shows <literal/TTL/ of the probe, followed by colon. 102*bd1f8aebSAndroid Build Coastguard WorkerUsually value of <literal/TTL/ is obtained from reply from network, 103*bd1f8aebSAndroid Build Coastguard Workerbut sometimes reply does not contain necessary information and 104*bd1f8aebSAndroid Build Coastguard Workerwe have to guess it. In this case the number is followed by ?. 105*bd1f8aebSAndroid Build Coastguard Worker</para> 106*bd1f8aebSAndroid Build Coastguard Worker 107*bd1f8aebSAndroid Build Coastguard Worker<para> 108*bd1f8aebSAndroid Build Coastguard WorkerThe second column shows the network hop, which replied to the probe. 109*bd1f8aebSAndroid Build Coastguard WorkerIt is either address of router or word <literal/[LOCALHOST]/, if 110*bd1f8aebSAndroid Build Coastguard Workerthe probe was not sent to the network. 111*bd1f8aebSAndroid Build Coastguard Worker</para> 112*bd1f8aebSAndroid Build Coastguard Worker 113*bd1f8aebSAndroid Build Coastguard Worker<para> 114*bd1f8aebSAndroid Build Coastguard WorkerThe rest of line shows miscellaneous information about path to 115*bd1f8aebSAndroid Build Coastguard Workerthe correspinding network hop. As rule it contains value of RTT. 116*bd1f8aebSAndroid Build Coastguard WorkerAdditionally, it can show Path MTU, when it changes. 117*bd1f8aebSAndroid Build Coastguard WorkerIf the path is asymmetric 118*bd1f8aebSAndroid Build Coastguard Workeror the probe finishes before it reach prescribed hop, difference 119*bd1f8aebSAndroid Build Coastguard Workerbetween number of hops in forward and backward direction is shown 120*bd1f8aebSAndroid Build Coastguard Workerfollowing keyword <literal/async/. This information is not reliable. 121*bd1f8aebSAndroid Build Coastguard WorkerF.e. the third line shows asymmetry of 1, it is because the first probe 122*bd1f8aebSAndroid Build Coastguard Workerwith TTL of 2 was rejected at the first hop due to Path MTU Discovery. 123*bd1f8aebSAndroid Build Coastguard Worker</para> 124*bd1f8aebSAndroid Build Coastguard Worker 125*bd1f8aebSAndroid Build Coastguard Worker<para> 126*bd1f8aebSAndroid Build Coastguard WorkerThe last line summarizes information about all the path to the destination, 127*bd1f8aebSAndroid Build Coastguard Workerit shows detected Path MTU, amount of hops to the destination and our 128*bd1f8aebSAndroid Build Coastguard Workerguess about amount of hops from the destination to us, which can be 129*bd1f8aebSAndroid Build Coastguard Workerdifferent when the path is asymmetric. 130*bd1f8aebSAndroid Build Coastguard Worker</para> 131*bd1f8aebSAndroid Build Coastguard Worker 132*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 133*bd1f8aebSAndroid Build Coastguard Worker 134*bd1f8aebSAndroid Build Coastguard Worker 135*bd1f8aebSAndroid Build Coastguard Worker 136*bd1f8aebSAndroid Build Coastguard Worker 137*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>SEE ALSO</title> 138*bd1f8aebSAndroid Build Coastguard Worker<para> 139*bd1f8aebSAndroid Build Coastguard Worker<citerefentry><refentrytitle/traceroute/<manvolnum/8/</citerefentry>, 140*bd1f8aebSAndroid Build Coastguard Worker<link linkend="traceroute6"> 141*bd1f8aebSAndroid Build Coastguard Worker<citerefentry><refentrytitle/traceroute6/<manvolnum/8/</citerefentry></link>, 142*bd1f8aebSAndroid Build Coastguard Worker<link linkend="ping"> 143*bd1f8aebSAndroid Build Coastguard Worker<citerefentry><refentrytitle/ping/<manvolnum/8/</citerefentry></link>. 144*bd1f8aebSAndroid Build Coastguard Worker</para> 145*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 146*bd1f8aebSAndroid Build Coastguard Worker 147*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>AUTHOR</title> 148*bd1f8aebSAndroid Build Coastguard Worker<para> 149*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ was written by 150*bd1f8aebSAndroid Build Coastguard Worker<ulink url="mailto:[email protected]">Alexey Kuznetsov 151*bd1f8aebSAndroid Build Coastguard Worker<[email protected]></ulink>. 152*bd1f8aebSAndroid Build Coastguard Worker</para> 153*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 154*bd1f8aebSAndroid Build Coastguard Worker 155*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>SECURITY</title> 156*bd1f8aebSAndroid Build Coastguard Worker<para> 157*bd1f8aebSAndroid Build Coastguard WorkerNo security issues. 158*bd1f8aebSAndroid Build Coastguard Worker</para> 159*bd1f8aebSAndroid Build Coastguard Worker<para> 160*bd1f8aebSAndroid Build Coastguard WorkerThis lapidary deserves to be elaborated. 161*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ is not a privileged program, unlike 162*bd1f8aebSAndroid Build Coastguard Worker<command/traceroute/, <command/ping/ and other beasts of this kind. 163*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ may be executed by everyone who has some access 164*bd1f8aebSAndroid Build Coastguard Workerto network, enough to send UDP datagrams to investigated destination 165*bd1f8aebSAndroid Build Coastguard Workerusing given port. 166*bd1f8aebSAndroid Build Coastguard Worker</para> 167*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 168*bd1f8aebSAndroid Build Coastguard Worker 169*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>AVAILABILITY</title> 170*bd1f8aebSAndroid Build Coastguard Worker<para> 171*bd1f8aebSAndroid Build Coastguard Worker<command/tracepath/ is part of <filename/iputils/ package 172*bd1f8aebSAndroid Build Coastguard Workerand the latest versions are available in source form at 173*bd1f8aebSAndroid Build Coastguard Worker<ulink url="http://www.skbuff.net/iputils/iputils-current.tar.bz2"> 174*bd1f8aebSAndroid Build Coastguard Workerhttp://www.skbuff.net/iputils/iputils-current.tar.bz2</ulink>. 175*bd1f8aebSAndroid Build Coastguard Worker</para> 176*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 177*bd1f8aebSAndroid Build Coastguard Worker 178*bd1f8aebSAndroid Build Coastguard Worker<![IGNORE[ 179*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>COPYING</title> 180*bd1f8aebSAndroid Build Coastguard Worker<para> 181*bd1f8aebSAndroid Build Coastguard Worker<literallayout> 182*bd1f8aebSAndroid Build Coastguard WorkerThis documentation is free software; you can redistribute 183*bd1f8aebSAndroid Build Coastguard Workerit and/or modify it under the terms of the GNU General Public 184*bd1f8aebSAndroid Build Coastguard WorkerLicense Version 2. 185*bd1f8aebSAndroid Build Coastguard Worker 186*bd1f8aebSAndroid Build Coastguard WorkerThis program is distributed in the hope that it will be 187*bd1f8aebSAndroid Build Coastguard Workeruseful, but WITHOUT ANY WARRANTY; without even the implied 188*bd1f8aebSAndroid Build Coastguard Workerwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 189*bd1f8aebSAndroid Build Coastguard WorkerSee the GNU General Public License for more details. 190*bd1f8aebSAndroid Build Coastguard Worker 191*bd1f8aebSAndroid Build Coastguard WorkerFor more details see the file COPYING in the source 192*bd1f8aebSAndroid Build Coastguard Workerdistribution of Linux kernel of version 2.4. 193*bd1f8aebSAndroid Build Coastguard Worker</literallayout> 194*bd1f8aebSAndroid Build Coastguard Worker</para> 195*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 196*bd1f8aebSAndroid Build Coastguard Worker]]> 197*bd1f8aebSAndroid Build Coastguard Worker 198*bd1f8aebSAndroid Build Coastguard Worker 199*bd1f8aebSAndroid Build Coastguard Worker 200*bd1f8aebSAndroid Build Coastguard Worker 201*bd1f8aebSAndroid Build Coastguard Worker</refentry> 202