Friday, March 21, 2008

Trace Route Diagnostics - TR-069 profile

Tracing the routing path to a given destination machine is very important diagnostic tool for administrators and service providers. TR-098 Amendment 1defined 'IP PING' diagnostics, but did not define trace route diagnostics.

Trace route utility is provided in many operating systems today. Its main purpose is to find out the route IP packets take to reach a specific destination. It gives indication on the routers in between and round trip time of each probe. This utility sends UDP, TCP or ICMP probes with small TTL and listen for ICMP 'time exceeded' reply. It starts with TTL 1 to find out the first hop, TTL 2 to find out the second hop and so on.

Trace route can happen by sending ICMP, UDP or TCP packets. Trace route utility provides this option for traversing through firewalls. When firewalls don't allow ICMP, trace route can be used with UDP or TCP.

Since, a given host given may have multiple outbound interfaces, trace route utility gives facility to use specific link for its source IP address to ensure that responses come back to this IP address. It also provides option of specifying the gateway to route the packets through a specific link of the host.

Trace route utility provides options such as:
  • Destination Host IP address or FQDN.
  • Use ICMP, UDP or TCP.
  • Use IPv4 or IPv6
  • Packet size : Valid in case of ICMP and UDP. Not applicable if TCP is chosen. TCP probe always goes with SYN flag.
  • Port: Port number to use for destination port of the UDP or TCP probe. In case of ICMP, it is used as sequence number.
  • TOS: TOS value to use in the IP header of probe packet.
  • Link interface to use: Utility uses IP address of this link as source IP of the probe packet. if not specified, default is to use link determined by route.
  • Gateway IP address: This is mainly to select the right link, if there are multiple links on the host. Default is 'based on route'.
  • Maximum TTL: Indicates the maximum number of hops to discover. Default : 30
  • Number of Probes: Number of probe messages to each hop. Default 3.
  • Wait time: wait time to wait for the response to probe. Default : 5 seconds.
  • Send interval: Interval between probe messages to a hop: Default 0 seconds.
Results of trace route utility can be represented as:
  • Destination Host: For which trace route diagnostics was run.
  • Number of hops.
  • Sequence of hops. Each hop consisting of
    • IP address of router: Display * if no response from that hop.
    • FQDN of the router: By doing Reverse DNS lookup
    • Probe1 round trip time in milli seconds.
    • Probe2 round trip time in milli seconds.
    • Proble3 round trip time in milli seconds.
    • Rest of round trip times in comma separated string (upto 32 bytes).
With this TR-069 profile could be as follows:

  • internetGatewayDevice.IPTraceRouteDiagnostics P
    • diagnosticsState: RW, String, It takes values of "None", "Requested", "Completed", "Error_HostNameResolutionError", "Error_HopCuntExhausted": Similar to PING diagnostics stage.
    • destination host : RW, String, 256 bytes max, IP address in dotted decimal form or fully qualified domain name.
    • probeProtocolSupported: R, String, comma separated strings. "ICMP", "UDP", "TCP", this is the capability of device.
    • probeProtocol: RW, String, Takes one of values of "ICMP", "UDP" or "ICMP".
    • IPv4OrIPv6 : RW, String, Values are "IPv4", "IPv6"
    • packetSize: RW, Integer, Not applicable in case of TCP.
    • Port: RW, Integer, Destination Port to use. In case of ICMP, it is used as sequence number.
    • TOS: RW, Integer
    • LinkInterface: RW, String, Fully qualified instance from VLAN, LANDevice, WANPPPConnection or WANIPConnection etc.. IP address of this interface is used as source IP of the probe packet.
    • gatewayIPAddress: RW, String, Dotted decimal form. It is to select the link.
    • maximumHops: RW, Integer
    • numberOfProbles: RW, Integer, Number of probes to use for each hop.
    • responseWaitTime: RW, Integer, in seconds.
    • sendInterval RW, Integer, in seconds.
    • internetGatewayDevice.IPTraceRouteDiagnostic.response P
      • hostName
      • status: "Error_UresolvedHost", "Error_MaxHopCountReached", "Success"
      • numberOfHopEntriesDiscovered: RW, Integer
        • hopIPAddress: RW, String
        • hopFQDN: RW, String
        • probe1RTT: RW, Integer in milliseconds.
        • proble2RTT: RW, Integer
        • proble3RTT: RW, Integer
        • OtherProbeRTT: RW, string, comma separated. Upto 32 bytes.

No comments: