Patent Publication Number: US-7583667-B2

Title: Automatic determination of connectivity problem locations or other network-characterizing information in a network utilizing an encapsulation protocol

Description:
RELATED APPLICATION(S) 
     The present application claims the priority of U.S. Provisional Patent Application Ser. No. 60/554,635, filed Mar. 19, 2004 and entitled “Method and Apparatus for Automatic Determination of Connectivity Problem Locations in an Encapsulated Protocol Network,” the disclosure of which is incorporated by reference herein. 
    
    
     FIELD OF THE INVENTION 
     The invention relates generally to techniques for determining connectivity problem locations or other information characterizing a network, and more particularly to techniques for determining such information in a network which utilizes at least one encapsulation protocol. 
     BACKGROUND OF THE INVENTION 
     A number of techniques are known in the art for identifying the location of connectivity problems in a network. For example, the well-known “traceroute” utility allows a network administrator to determine an exact point of failure in a situation in which network connectivity is broken. However, a serious problem with conventional traceroute applications is that they do not provide complete router hop information in a given network path when run in a Virtual Private Network (VPN). 
     Consider an arrangement in which a VPN operating in tunnel mode is configured between security gateways each associated with a corresponding private network. An Internet Protocol (IP) packet sourced from one of the private networks and destined to the other will typically be encapsulated using IP Encapsulating Security Payload (ESP). IP, ESP and the related IP Authentication Header (AH) are described in RFC 791, RFC 2406 and RFC 2402, respectively, of the Internet Engineering Task Force (IETF), said RFCs being incorporated by reference herein. If the source security gateway detects a break in network connectivity, it can automatically initiate transmission of a traceroute packet for a previously known IP address in its associated private network. However, after the encapsulation, the new IP header will not reflect the time to live (TTL) value of the original traceroute packet. Typically, the TTL of the encapsulating IP header is set to some default high number, such as 64 or 128. Reply packets from the other security gateway are encapsulated in a similar manner. Encapsulation in this situation thus introduces a discontinuity in TTL values which prevents the traceroute application from determining router hop information for any network routers between the security gateways. As a result, the traceroute application may be unable to determine the location of the connectivity problem in these and other encapsulated protocol situations. 
     Accordingly, what is needed is an improved approach to determination of connectivity problem locations, or other types of network-characterizing information, in networks which utilize encapsulation protocols. 
     SUMMARY OF THE INVENTION 
     The invention addresses the above-noted need by providing, in an illustrative embodiment, an improved traceroute application which overcomes one or more of the problems associated with use of the conventional traceroute application in a VPN or other network utilizing an encapsulation protocol. 
     In one aspect of the invention, techniques are provided for determining a problem location or other information characterizing a network comprising a plurality of processing elements including at least one processing element associated with performance of a packet encapsulation operation of an ESP protocol or other encapsulation protocol. 
     The packet encapsulation operation is performed on a traceroute packet or other type of test packet to generate an encapsulated packet. The test packet has a TTL value and an identifier, and in conjunction with performance of the packet encapsulation operation, the TTL value and the identifier of the test packet are copied to a header of the encapsulated packet. For example, the TTL value and the identifier may be copied from an IP header of a traceroute packet to an IP header of an ESP packet in conjunction with performance of the encapsulation process. 
     The encapsulated packet is transmitted, and a determination is made as to whether a reply packet has been received responsive to transmission of the encapsulated packet. The reply packet, if any, is processed to obtain information utilizable in determining the problem location in the network. By way of example, these operations may be repeated, for subsequent test packets with increasing TTL values, until an amount of router hop information sufficient to determine the problem location is obtained. 
     In the illustrative embodiment, the network comprises a VPN having first and second security gateways coupled together via the Internet, and one of the first and second security gateways comprises the processing element associated with performance of the packet encapsulation operation of the encapsulation protocol. 
     The copying of the TTL value and the identifier may be facilitated by setting corresponding socket options on a socket used to send a traceroute packet comprising the test packet. 
     The reply packet may be validated, for example, by determining if the identifier or other information associated with the test packet is present in a data portion of the reply packet. 
     If the reply packet is determined to contain in a data portion thereof information identifying a destination port of the test packet, or a maximum TTL value has been reached without receipt of a reply packet containing in a data portion thereof information identifying a destination port of the test packet, a conventional traceroute application that does not involve copying of the TTL value and the identifier may be initiated to obtain remaining router hop information. This conventional traceroute application is preferably initiated using a different socket than that used for previous test packets, and a TTL value of one. 
     Advantageously, the present invention in the illustrative embodiment provides a particularly efficient and accurate mechanism for determining router hop information for network routers between security gateways of a VPN, thereby facilitating the determination of connectivity problem locations in such networks. The invention can also or alternatively be used to determine network performance information such as performance degradation problem locations or end-to-end performance degradation due to rerouting, and a wide variety of other types of network-characterizing information. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows an example network topology of a VPN in which the present invention is implemented. 
         FIG. 2  illustrates the operation of a conventional traceroute application in the  FIG. 1  VPN. 
         FIG. 3  shows the manner in which an improved traceroute application is implemented in the  FIG. 1  VPN for a reply received from a router coupled to the Internet. 
         FIG. 4  shows the manner in which an improved traceroute application is implemented in the  FIG. 1  VPN for a reply received from an endpoint of the VPN. 
         FIG. 5  is a flow diagram of the steps in an exemplary traceroute application in accordance with the present invention. 
         FIG. 6  shows an exemplary communication system in which the invention is implemented. 
         FIG. 7  is a simplified block diagram showing one possible implementation of an endpoint device, controller or other processing element of the  FIG. 6  system. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The invention will be illustrated below in conjunction with exemplary configurations of networks, systems and devices. It should be understood, however, that the invention is not limited to use with any particular type of network, system or device configuration. Those skilled in the art will recognize that the disclosed techniques may be used in any network application in which it is desirable to provide improved determination of connectivity problem locations, network performance, or other network-characterizing information. 
     Referring initially to  FIG. 1 , a network  100  comprises a number of endpoint devices which communicate via a VPN established over the public Internet  102 . More specifically, a first endpoint device  104 - 1 , illustrative shown as personal computer PC  1  associated with a private network of a branch office, communicates with a second endpoint device  104 - 2 , illustratively shown as personal computer PC 2  associated with a private network of a corporate office. Such endpoint devices may also be referred to as “hosts” herein. The branch office and corporate office networks have associated security gateways  106 - 1  and  106 - 2 , illustratively shown as branch office VPN gateway SG 1  and corporate office VPN gateway SG 2 , respectively. The VPN comprises routers  108 - 1  and  108 - 2 , also denoted R 1  and R 2  herein, which couple the respective VPN gateways SG 1  and SG 2  to the Internet  102 . PC 1  is directly coupled to the branch office VPN gateway SG 1 , while PC 2  is coupled to the corporate office VPN gateway SG 2  via router  108 - 3  and customer network  110 . PC 1  and PC 2 , although illustratively shown as laptop computers, may alternatively comprise other types of computers, or more generally any type of processor-based endpoint device. 
     The VPN in this embodiment establishes secure logical network connections across an unsecured network. More specifically, a VPN operating in tunnel mode is configured between SG 1  and SG 2 . The security gateways SG 1  and SG 2  comprise VPN security gateways, and are also assumed to incorporate firewall functionality. Such firewalls will allow only VPN traffic to be passed from SG 1  and SG 2  to Internet  102 . All non-VPN traffic is dropped by the SG 1  and SG 2  firewalls. 
     Again, it is to be appreciated that this particular network topology is presented by way of illustrative example only. The invention is not restricted to use with this or any other particular network topology. 
     The present invention in accordance with one aspect thereof provides an improved traceroute technique that can be used to provide complete and accurate router hop information, as well as associated network performance information, in a VPN network topology such as that shown in  FIG. 1 . For example, as will be described, the traceroute technique can be utilized to identify a path of a VPN operating in tunnel mode between security gateways of a network, and to determine network performance information associated with that path. Such network performance information may include, without limitation, performance degradation problem locations, and end-to-end degradation due to rerouting. It is also possible to determine routing changes associated with a path of a VPN operating in tunnel mode between security gateways of the network, for example, by comparing the path at time A to the path at time B, or before and after a given degradation of end-to-end performance. Numerous other types of network-characterizing information may be determined using the traceroute technique, as will be readily apparent to those skilled in the art, and the invention is not limited in this regard. 
     The traceroute technique in the illustrative embodiment is referred to as a “traceroute application,” where such an application is intended to be construed generally so as to encompass any software program or portion thereof which utilizes a traceroute utility as described herein. 
       FIG. 2  shows the manner in which a conventional traceroute application fails to provide complete router hop information in the network  100  of  FIG. 1 . A traceroute packet sourced from SG 1  and destined for SG 2  will typically be encapsulated using ESP, with or without AH, leading to discontinuity in the TTL values of a given traceroute packet as previously described herein. This situation is illustrated for the network  100  in  FIG. 2 . 
     In this topology, a capability is needed to detect the exact problem location when network connectivity is broken between the branch network and corporate network security gateways SG 1  and SG 2 . The network connectivity may be broken, for example, at any of the routers R 1 , R 2 , or R 3 , or anywhere in the network path through public Internet  102 . If SG 1  detects that the network connectivity is broken, it can automatically initiate a traceroute application for a previously known IP address in the corporate network (e.g., PC 2 ). 
     Assume a traceroute packet is sourced from SG 1  responsive to detection of a connectivity problem in the network  100 . The traceroute packet is configured as a User Datagram Protocol (UDP) packet, and initially has a TTL value of one. UDP is described in IETF RFC 768, also incorporated by reference herein. The ESP encapsulation results in an ESP packet for which the TTL value is set to a default high number, in this case  64 . In conjunction with the routing of the ESP packet from SG 1  to router R 1 , its TTL value is decremented by one to  63 . The ESP packet then passes over Internet  102  to router R 2 . The example assumes that the TTL value has been decremented multiple additional times, i.e., a total of five additional times, for multiple router hops incurred between router R 1  and router R 2 , resulting in a TTL value of  58  at router R 2 . SG 2  decapsulates the ESP packet received from router R 2  to obtain the original traceroute UDP packet, for which the original TTL value of one is decremented to a value of zero in conjunction with routing of the packet to router R 3 . 
     At this point, R 3  will reply with an Internet Control Message Protocol (ICMP) Time Exceeded reply packet. This reply packet will again be encapsulated in an ESP packet and will be sent back to SG 1 . SG 1  will then decapsulate the ESP packet and the traceroute application will indicate the first router hop as corresponding to router R 3 . However, it is readily apparent that this traceroute result does not provide any useful information if network connectivity is broken between SG 1  and SG 2 , for example, due to network connectivity issues involving R 1 , R 2  or public Internet  102 . Thus, as indicated previously herein, the discontinuity in TTL value introduced by the ESP encapsulation process prevents the conventional traceroute application from determining the exact location of a connectivity problem in network  102 . 
     It should also be noted that, in the  FIG. 2  scenario above, the branch office security gateway SG 1  may not be able to run the traceroute application outside of the VPN if firewall policies do not allow any non-VPN traffic to pass from SG 1  to public Internet  102 . The problem illustrated in  FIG. 2  therefore typically cannot be overcome by attempting to run the traceroute application outside of the VPN. 
     Additional details regarding the operation of the conventional traceroute application can be found in the above-cited RFCs, and in, e.g., TCP/IP Illustrated Volume 1, W. Richard Stevens, which is also incorporated by reference herein. 
     An improved traceroute application implemented in network  100  in accordance with the invention will now be described with reference to  FIGS. 3 and 4 . Except for the modifications described herein, the improved traceroute application of the illustrative embodiment is assumed to preserve the functionality commonly associated with a conventional traceroute application. For example, a conventional traceroute application typically sends multiple probes to a single host with different destination UDP ports, and the modified traceroute application of the illustrative embodiment is assumed to also have this capability. 
     Generally, the improved traceroute application of the illustrative embodiment modifies the encapsulation process for a given outgoing traceroute packet so as to support the copying of a TTL value and an identification field from the original traceroute packet IP header to the ESP packet IP header during the encapsulation process. The identification field uniquely identifies each traceroute UDP packet sent by a host. 
     For example, the traceroute application can utilize two new socket options, set on the UDP socket it is using to send traceroute packets, to copy the respective TTL value and identification field of the original traceroute packet to the ESP packet IP header during the encapsulation process. 
     Although illustrated in the context of traceroute packets, the present invention can be implemented using other types of test packets. Also, other types of identifiers may be used in place of the identification field. Such identifiers may comprise, for example, a portion of an identification field. 
       FIG. 3  illustrates the operation of the improved traceroute application in the network  100  for the case of an ICMP Time Exceeded reply packet received from router R 1  coupled to Internet  102 . The original traceroute UDP packet has a TTL value of one, and an identification field of  2300 . SG 1  encapsulates the traceroute UDP packet such that the original TTL value and the identification field are copied to the ESP packet IP header during the encapsulation process. In conjunction with routing of the ESP packet from SG 1  to router R 1 , the TTL value is decremented to zero, and R 1  sends an ICMP Time Exceeded reply packet back to SG 1 . The TTL value correctly indicates the number of router hops in this example, namely, a single router hop from SG 1  to router R 1 . 
     Additional traceroute packets associated with this traceroute application are then transmitted by SG 1  with increasing initial TTL values, and will result in SG 1  receiving ICMP Time Exceeded reply packets from other routers in the network path between security gateways SG 1  and SG 2 . This allows the network path between SG 1  and SG 2 , including the portion within the public Internet  102 , to be fully characterized. 
     It should be noted that the ICMP reply packets returned to SG 1  will also contain the original IP header of the ESP packet and eight bytes of IP data. 
     A conventional traceroute application typically listens for any ICMP reply packet, and this functionality is not modified in the illustrative embodiment. The conventional traceroute application expects the ICMP reply packet to contain the original IP header and eight bytes of IP data. The eight byte data portion in the conventional traceroute application will contain the UDP header of the original traceroute packet. The conventional traceroute application uses this UDP header for identifying the reply by validating the source and destination UDP port. 
     In the VPN topology of the illustrative embodiment, the ICMP reply packet will not contain the IP header and UDP header of the original traceroute packet. Instead it will contain the ESP IP header and eight bytes of ESP data. As indicated above, the improved traceroute application of the illustrative embodiment copies the identification field of the original traceroute packet to the ESP IP header and this ESP IP header will be present in the data portion of the ICMP reply packet. Thus, the ICMP reply packet for a given traceroute packet can be identified by validating the identification field in the ESP IP header in the data portion of the ICMP reply packet. Validation of SPI may be done as an additional check if UDP encapsulation is not being used. SG 1  will perform UDP encapsulation of ESP packets when a Network Address Translation (NAT) device is present in the network path between SG 1  and SG 2 . 
     Once all of the router hops between SG 1  and SG 2  have been discovered in the manner described above, the next traceroute packet, with an increased TTL, will reach SG 2 . The packet may reach the destination host, PC 2  in this example, prior to expiration of the TTL. Such a case is highly probable, as the TTL value in the traceroute packet decapsulated by SG 2  will be set to a relatively high value, equal to the number of router hops traveled between SG 1  and SG 2  including SG 2  but excluding SG 1 . 
       FIG. 4  shows an example of this situation in which the traceroute packet reaches the destination host PC 2  without expiration of the TTL. The original traceroute UDP packet has a TTL value of eight, and an identification field of  3500 . Again, SG 1  encapsulates the traceroute UDP packet such that the original TTL value and the identification field are copied to the ESP packet IP header during the encapsulation process. The router hop associated with routing from SG 1  to router R 1  results in the TTL value being decremented to seven. Assuming again five additional router hops incurred in traversing Internet  102  from router R 1  to router R 2 , the TTL value of the ESP packet at router R 2  is two. SG 2  decapsulates the ESP packet to obtain the original traceroute UDP packet which has a TTL value of eight. This value is decremented to seven as the UDP packet is routed from SG 1  to router R 3 . Subsequent routing from R 3  to PC 2  via customer network  110  results in two additional decrements of the TTL value, to a final value of five, as indicated in the figure. PC 2  upon receipt of the UDP packet with unexpired TTL sends an ICMP Port Unreachable reply packet back via network  110  and router R 3  to SG 2 . 
     It is also possible that the TTL may expire before reaching the destination host PC 2 . This will occur, for example, if the number of router hops in the private network of SG 2  is higher than the number of router hops between SG 1  and SG 2 . Such a situation is unlikely but may occur, leading to the generation of an ICMP Time Exceeded reply packet. 
     A final possibility is that the traceroute packet may be dropped due to network connectivity issues, in which case there is no reply generated. 
     In the first two cases, where the traceroute packet either reaches the destination host or TTL expires before the host is reached, the ICMP reply packet will contain the IP header and eight bytes of IP data of the original traceroute packet. The eight bytes of IP data will be the UDP header of the original traceroute packet. The reply can be validated using the same validation approach used by the conventional traceroute application. More specifically, this approach involves determining whether the eight bytes of IP data correspond to the UDP header of the original traceroute packet by validating the protocol type in the IP header, and if this is true, validating whether the UDP header destination port is same as that of the original traceroute UDP packet. If the result of the determination is affirmative, then the reply may be discarded and thus will not be included in the final traceroute results. 
     In a situation in which no reply is received, the traceroute application will continue to send UDP packets with incremented TTL until a specified maximum hop count is reached. 
     It should be noted that in the  FIG. 4  example, the improved traceroute application as described thus far will not be able to display information related to router R 3  or any router hops in the customer network  110 . Therefore, in order to provide a complete set of traceroute results, the conventional traceroute application may be applied to provide the missing information relating to R 3  and network  110 . 
     The traceroute application described above may end due to receipt of a reply with the original UDP destination port in the IP data in the ICMP reply packet data portion, or by reaching the maximum hop count without receiving any reply with the original UDP destination port in the IP data in the ICMP reply packet data portion. The latter may occur, for example, in the event of a network connectivity failure within public Internet  102  or the private network of SG 2 . 
     When the traceroute application of the illustrative embodiment ends because of any of the above conditions, a conventional traceroute application should be started over a different socket with a TTL value of 1. This allows all of the router hops in the private network of SG 2  to be obtained, thereby completing the traceroute results. 
       FIG. 5  is a flow diagram of the traceroute application in the illustrative embodiment. In step  200 , the socket options are set for copying the TTL value and the identification field to the ESP IP header. The TTL value is initialized to one, and the identification field is also initialized. In step  202 , a traceroute UDP packet is sent. 
     If a reply is received in step  204 , step  206  determines if the reply contains the UDP destination port, in the IP data in the ICMP data portion, which is the same as that of the original traceroute UDP packet. If not, or if no reply is received in step  204 , the process proceeds to step  208  to increment the TTL and identification field. If the incremented TTL is less than the maximum hop count in step  210 , the process returns to step  202  to send another traceroute UDP packet using the incremented TTL and identification field. If the incremented TTL in step  210  is equal to the maximum hop count, or if the result of the determination in step  206  is affirmative, the process continues with step  212 . 
     In step  212 , a traceroute application is started on a separate UDP socket, with TTL initialized to one. As described previously, this is equivalent to starting the “existing” or conventional traceroute application, in order to obtain remaining router hop information. In step  214 , the traceroute results from step  212  are appended to those results obtained prior to step  212 , and in step  216  the combined results are displayed to a user or otherwise processed so as to provide an indication as to the location of a network connectivity problem. 
     It is to be appreciated that the particular traceroute application described in conjunction with the diagrams of  FIGS. 3 ,  4  and  5  is presented by way of example, and numerous alternative embodiments of the invention are possible. 
     The identification field in the illustrative embodiment is used in the validation of ICMP reply packets received responsive to traceroute UDP packets. The identification field in IP as described in RFC 791 serves to identify the IP packet, and is primarily used in conjunction with fragmentation. The identification field in the IP header is not modified by fragmentation logic and all the fragments of a large IP packet each contain the same identification field as the original packet. Fragment reassembly is based upon four fields: Source IP, Destination IP, IP Protocol type, and the identification field. 
     RFC 791 indicates that the identification field should be chosen by an upper protocol layer that is having IP send the datagram. This implies that two consecutive IP datagrams, one generated by TCP and one generated by UDP, can have the same identification field. While this is acceptable, since it is handled by reassembly, many IP software implementations have the IP layer increment a kernel variable each time an IP datagram is sent, regardless of which layer passed the data to IP to send. This kernel variable is initialized to value based on the time of day when the system is booted up. 
     It is important when utilizing the invention in such implementations to make sure that the identification field generated by the new traceroute application should not conflict with the system-generated identification for the same protocol type. Otherwise this may cause issues with fragment reassembly logic. 
     Consider an example such as that shown in  FIG. 3  in which the improved traceroute application uses an identification value  2300  for a traceroute packet. This identification value is copied to an encapsulation IP header and SG 1  sends the ESP packet with identification value  2300 . At the same time SG 1  encapsulates other IP traffic and generates the identification values for each encapsulation IP header. As the ESP protocol implementation for generation of identification value is independent from the traceroute application, the ESP protocol implementation may end up generating the same identification value  2300 . If this ESP packet gets fragmented, the reassembly device (SG 2  in the present example) will get a fragmented packet having identification  2300  along with a traceroute ESP packet also having identification  2300 , which will clearly cause problems for the reassembly logic. 
     This issue can be resolved by reserving a part of the identification value range for the improved traceroute application. In other words, the improved traceroute technique of the illustrative embodiment should be configured to use an identification field from a reserved range within the system. This is done to ensure that the traceroute identifier does not conflict with the system-generated identification field. For an implementation where identification is generated globally for all protocols, this change will typically require reserving the identification value range from the global identification generation logic. For implementations where ESP is doing identification generation independent of other protocols, the range need only be reserved from ESP identification generation logic. 
     Various methods may be used to dynamically manipulate the firewalls of security gateways such as SG 1  and SG 2 . Generally, firewall rules in the encapsulating device which initiates the traceroute application (e.g., SG 1 ), and in any other device in the network path, should allow passage of the incoming ICMP reply (Time Exceeded and Port Unreachable) packets. Because of security concerns, it is undesirable for SG 1  to always allow incoming ICMP packets of any type. To avoid such security concerns, it is preferable to dynamically update the SG 1  firewall to allow ICMP replies only when the traceroute application is running. Also, firewall rules in the decapsulating device (e.g., SG 2 ) should allow passage of the outgoing ICMP reply packets generated by that device. This will allow the traceroute application running on SG 1  to display SG 2  as a router hop in its results. 
     In the illustrative embodiment, AH is not applied to the outer IP header. However, since all manipulation in the encapsulating IP header happens before AH or ESP is applied, it does not make a difference if AH is also being used along with ESP. 
     The improved traceroute application of the illustrative embodiment can also be used with non-VPN network topologies. For example, the improved traceroute application can be run outside of the VPN, in which case the results produced will be identical to those produced using the conventional traceroute application. 
     Consider an example in which the improved traceroute application is being run on SG 1  for a destination in public Internet  102  (outside the VPN). The very first reply of the traceroute packet sent on a special socket (with socket options set to copy the TTL value and identification field) will get the ICMP Time Exceeded reply from R 1 . The traceroute application will try to determine whether the IP data portion in the ICMP reply packet data portion contains the destination UDP port of the original traceroute packet. This would be true in this case, as the original packet is not encapsulated. The improved traceroute application will discard this reply and will start the conventional traceroute application to complete the traceroute results. This is why the results produced by the improved traceroute application when running outside the VPN will be the same as the results produced by the conventional traceroute application. 
     The improved traceroute application can be used with a variety of other encapsulation protocols, and the invention is not restricted in this regard. For example, the improved traceroute application will work for any other Layer 3 IP encapsulation protocol and is not limited to only VPN encapsulation protocols. As a more specific example, the improved traceroute technique can be used with the Generic Routing Encapsulation (GRE) protocol. 
     As indicated above, the improved traceroute application of the illustrative embodiment utilizes non-standard socket options. Implementation of these socket options will be dependent on the encapsulation protocol being used. 
     It should be noted that, in cases where an intermediate NAT device or firewall drops the ICMP reply (Time Exceeded or Port Unreachable) packet, the improved traceroute application of the illustrative embodiment will typically not be able to produce complete results. This is also a limitation of the existing traceroute application. 
     The improved traceroute application of the illustrative embodiment should be executed on the same device or other processing element which is also doing the encapsulation of the traceroute packets. In the examples above, the encapsulation devices are SG 1  and SG 2 . The improved traceroute application will typically not produce complete router hop information if being run on a device which is not doing the encapsulation (e.g., PC 1  doing traceroute for PC 2  in  FIG. 1 ). In such a case the improved traceroute application will produce substantially the same results as the conventional traceroute application. 
     It is to be appreciated, however, that a given traceroute packet need not be initiated from the encapsulation device. For example, it is possible for an encapsulation device to perform all of the needed header manipulation for a traceroute packet initiated from a private subnet of the encapsulation device. This may be accomplished, again by way of example, by providing the following functionality: 
     1. Allowing configuration for a maximum TTL (max_host_ttl) value below which traceroute manipulation logic will be applied for packets coming from the private subnet of the encapsulation device. A typical value for max_host_ttl may be 32, although other values can be used. 
     2. When a first traceroute packet is received from a host behind this encapsulation device, initialize a variable inner_ttl to 1 for this host. This variable will be used to set an inner IP header TTL from this host. 
     3. During encapsulation, if the TTL received is less than or equal to max_host_ttl, then copy the TTL to the encapsulated outer IP header and set the inner IP header TTL to the inner_ttl value. Record the inner IP header plus eight bytes of data in a data structure along with the host IP. 
     4. Set the identifier value for an outer IP header as the appropriate value from the reserved range of identifiers. Record this value as well. 
     5. If an ICMP Time Exceeded reply packet is received for which this encapsulation device applied the manipulation (can be identified using the identifier value in the IP header in the ICMP data portion), send an ICMP Time Exceeded reply packet for the original host by applying proper manipulations using the recorded IP header plus eight bytes of data. That is, the host should get this packet as if a router has directly sent the ICMP Time Exceeded reply packet to it. 
     6. If during decapsulation any packet has a matching inner identifier with the recorded values, then increment the inner_ttl by 1. 
     7. Remove all states associated with a host after a designated timeout (may be configurable) or when an ICMP Port Unreachable reply packet is received during decapsulation. 
     A given implementation may increment inner_ttl in the event that several consecutive responses are not received for UDP packets. This is done to accommodate situations in which a private router immediately behind the encapsulation device cannot send packets to the traceroute initiation host. Also, it is possible to keep the values of the outer IP header TTL as a fixed number once the ICMP reply has been received from the private side of the peer encapsulation device. This may allow the traceroute logic to discover an additional network path to the peer encapsulation device. Numerous other variations in this procedure, and others described herein, can be made as needed to accommodate the particular needs of a given application. 
     The above-described connectivity problem location application is simply one example of a particular application of the improved traceroute technique described herein. Two other exemplary applications, namely, VPN network path failover and an SG with “keep alive” enabled, will now be described. 
     VPN network path failover provides the ability for VPN administrators to set up a VPN topology with the following characteristics: 
     1. Multiple, geographically separate, VPN Tunnel End Points (TEPs) may protect a designated set of network resources. We will refer to this set of network resources as the “central site” or “central-site resources.” 
     2. Failure of any link along the network path between a remote SG (i.e., an SG protecting a network separate from the central site) and designated central-site network resources is automatically detected by the remote VPN unit with the remote VPN unit then automatically switching to an available, alternate network path to re-establish access to the central-site resources. 
     This allows the VPN administrator to maintain availability of the central-site resources to remote offices and remote users in the event of a failure in one or more network links along one of the network paths into the central site. Note again that the VPN units protecting the central-site resources need not be co-located. This allows for each VPN unit to be deployed such that it is insulated from events that may affect another VPN unit. 
     Configuring the SG with failover enabled causes the SG to send ICMP connectivity checks to the configured hosts at a configurable interval. It is also possible to configure a criterion which is based on how many consecutive “no responses” for a configured number of hosts will trigger a failover event. During a failover event, the SG tries to connect to an alternate VPN head end to get access to central-site resources. 
     The traceroute technique can be used in the above-described failover context by, for example, configuring the SG for a traceroute initiation criterion. Such a traceroute initiation criterion may be based on a designated number of consecutive “no responses” for failover ICMP connectivity checks sent to the failover hosts. When the traceroute initiation criterion is met (e.g., the SG missed the configured number of consecutive responses), the SG automatically initiates traceroute to one of the failed failover hosts. The traceroute results may be logged in otherwise conventional Event Log and Simple Network Management Protocol (SNMP) tables. This feature provides useful information regarding the exact point of failure in the VPN network path which caused the failover event. It should be noted that the failover event is held until the traceroute is completed as the failover event changes the VPN network path (the SG starts communicating to an alternate head end). 
     The second of the two additional examples, SG with “keep alive” enabled, will now be described. An SG with “keep alive” enabled sends ICMP connectivity checks to the configured hosts at a configured interval. This feature also allows configuration for a traceroute initiation criterion. The traceroute initiation criterion may be based on number of consecutive “no responses” for keep alive ICMP connectivity checks sent to keep alive configured hosts. When the traceroute initiation criterion is met (e.g., the SG missed the configured number of consecutive responses), the SG automatically initiates traceroute to one of the failed keep alive hosts. Again, the traceroute results may be logged in Event Log and SNMP tables. This feature provides useful information regarding the exact point of failure in the network path to the desired keep alive hosts. 
     The information gathered in these and other example applications is intended to be construed as a type of “network-characterizing information” as that term is used herein. Of course, the invention can be implemented to determine such information in numerous other applications, as will be appreciated by those skilled in the art. 
     A given traceroute application in accordance with the present invention may be implemented, for example, in a network monitoring and analysis system of a communication system, as will now be described with reference to  FIGS. 6 and 7 . 
     U.S. patent application Ser. No. 10/643,275, filed Aug. 19, 2003 and entitled “Method and Apparatus for Automatic Determination of Performance Problem Locations in a Network,” which is incorporated by reference herein, discloses an improved network monitoring and analysis system which provides information useful for locating the sources of performance problems at a link level, as well as for other purposes. In one aspect of the invention disclosed therein, a network monitoring and analysis system is configured to include a root cause analysis function that permits the automatic determination of performance problem locations in the network. 
       FIG. 6  shows an example network-based communication system  600  in which the present invention is implemented. The system  600  includes an arbitrary number M of endpoint devices  604 - j , j=1, 2, . . . M, and a network monitoring and analysis system controller  610 . Each of the endpoint devices  604  and the controller  610  is coupled to or otherwise associated with a network  602 . 
     Although shown for simplicity of illustration as terminal endpoint devices in the figure, one or more of the endpoint devices of the system may comprise or be otherwise associated with an internal node of network  602 . 
     An illustrative embodiment of the invention as implemented in the network-based communication system  600  of  FIG. 6  advantageously permits automated determination of the particular location(s) associated with one or more connectivity problems or other performance problems in the network  602 . The controller  610  may illustratively comprise an otherwise conventional controller of a network monitoring and analysis system, implemented in or otherwise utilized in conjunction with the system  600 , suitably modified to include a problem location determination function utilizing the above-described traceroute application. 
     The term “network monitoring and analysis system” as used herein is intended to include a network monitoring system, a network analysis system, or a system capable of both network monitoring and network analysis. 
     One example of a network monitoring and analysis system that may be configured to utilize the improved traceroute application of the illustrative embodiment is the ExpertNe™ network readiness assessment tool commercially available from Avaya Inc. of Basking Ridge, N.J., USA. The ExpertNe™ tool may be configured to collect various measurements from a network, including, by way of example, topology information, periodic traffic measurements from network devices via SNMP, and end-to-end performance measurements collected with the use of software agents installed at various endpoint devices or elsewhere in the network. The conventional aspects of this tool and other network monitoring and analysis systems are well known in the art, and therefore will not be further described herein. Such systems may be implemented at least in part in the form of software running on a computer or other processing device associated with the controller  610 . 
     Further aspects of network monitoring and analysis systems that may be utilized in conjunction with the invention are described in the following U.S. patent applications: Ser. No. 10/270,011, entitled “Report Generation and Visualization Systems and Methods and Their Use in Testing Frameworks for Determining Suitability of a Network for Target Applications,” Ser. No. 10/270,335, entitled “Network Topology Discovery Systems and Methods and Their Use in Testing Frameworks for Determining Suitability of a Network for Target Applications,” and Ser. No. 10/270,122, entitled “Network Traffic Generation and Monitoring Systems and Methods for Their Use in Testing Frameworks for Determining Suitability of a Network for Target Applications,” all of which were filed on Oct. 15, 2002, the disclosures of which are incorporated by reference herein. 
     Additional details regarding possible network monitoring and analysis system features that may be implemented in the system  600  are described in U.S. patent application Ser. No. 10/261,431, filed Sep. 30, 2002 and entitled “Communication System Endpoint Device With Integrated Call Synthesis Capability,” U.S. patent application Ser. No. 10/459,948, filed Jun. 12, 2003 and entitled “Distributed Monitoring and Analysis System for Network Traffic,” and U.S. patent application Ser. No. 10/460,700, filed Jun. 12, 2003 and entitled “Method and Apparatus for Determination of Network Topology,” the disclosures of which are incorporated by reference herein. 
     Although system  600  is shown as including a centralized controller  610  in  FIG. 6 , this should not be construed as a requirement of the invention. The invention can alternatively be implemented using a distributed monitoring and analysis system as described in the above-cited U.S. patent application Ser. No. 10/459,948, or using a combination of centralized and distributed techniques. In such embodiments, the functions of the controller  610  may be distributed at least in part across one or more of the endpoint devices, and/or associated distributed test units. 
     The term “controller” as used herein is therefore intended to include a centralized controller, a distributed controller, or a hybrid controller which is at least partially centralized and at least partially distributed. 
     The endpoint devices  604  may comprise, for example, otherwise conventional wired or wireless IP telephones (including devices commonly referred to as IP “softphones”), personal digital assistants (PDAs), mobile telephones, personal computers (PCs), or other types of processing devices, suitably configured for interaction with the controller  610  in providing various functions of the network monitoring and analysis system. 
     It should be noted that the endpoint devices  604  are each typically configured to operate as both receiver and transmitter, as in the case of a bidirectional Voice over IP (VoIP) communication established between a given pair of endpoints. 
     Conventional aspects of such endpoint devices are well known in the art and therefore not described in further detail herein. 
     Additional system elements, not shown in  FIG. 6 , may be coupled between each of the endpoints  604  and the network  602 , or otherwise arranged within the system  600 , in accordance with conventional practice. 
     Network  602  may represent, e.g., a global communication network such as the Internet, a wide area network, a metropolitan area network, a local area network, a wireless cellular network, a public switched telephone network (PSTN), or a satellite network, as well as portions or combinations of these or other communication networks. The network  602  may comprise conventional IP routers, gateways, switches or other packet processing elements. 
     It should be emphasized that the simplified configuration of the system  600  as shown in  FIG. 6  is for purposes of illustration only, and should not be construed as limiting the invention to any particular arrangement of elements. For example, the system  600  may include additional devices, as well as other types and arrangements of routing elements, switching elements or other types of processing elements. 
       FIG. 7  shows one possible implementation of a given processing element  700  of the  FIG. 6  system. The processing element  700  may represent, by way of example, at least a portion of a given one of the endpoint devices  604 , at least a portion of the controller  610 , or at least a portion of another processing device of the system. 
     The processing element  700  as shown in the figure includes a processor  702  coupled to a memory  704  and one or more network interfaces  706 . The techniques of the present invention may be implemented at least in part in the form of software storable in the memory  704  and executable by the processor  702 . The memory  704  may represent random access memory (RAM), read-only memory (ROM), optical or magnetic disk-based storage, or other storage elements, as well as combinations thereof. 
     Those skilled in the art will recognize that the individual elements of  FIG. 7  as shown for illustrative purposes may be combined into or distributed across one or more processing devices, e.g., a microprocessor, an application-specific integrated circuit (ASIC), a computer or other device(s). 
     The  FIG. 7  arrangement is also considerably simplified for purposes of illustration. For example, if viewed as representative of a given one of the security gateways SG 1  or SG 2  of  FIGS. 1 through 4 , the processing element  700  may include conventional elements typically associated with such a device, such as a firewall. 
     The present invention can be used with voice, video, multimedia or any other type of network traffic in a network-based communication system, including VoIP communications. 
     The terms “endpoint” and “endpoint device” are used interchangeably herein and are intended to include an origination or destination device associated with a given VoIP call or other type of communication in a network-based communication system. 
     It is to be appreciated that a given endpoint device therefore need not be a terminal device of the system, and may comprise an internal network element such as, for example, a gateway, a router, a switch, or any other type of non-terminal network element. A given pair of endpoint devices in the illustrative embodiment may be viewed generally as comprising the source and destination nodes of a particular communication path. An endpoint device may therefore be a device comprising or otherwise associated with any network node. 
     A monitoring and analysis system with an improved traceroute application in accordance with the invention can be implemented as part of or in conjunction with an otherwise conventional VoIP analysis tool or other network management system application that is used, for example, to test, diagnose, troubleshoot or design an Internet telephony system or other type of network-based communication system. An example of a network management system application is the VMON® system from Avaya Inc. of Basking Ridge, N.J., USA. 
     As previously noted, one or more of the monitoring and analysis functions described above in conjunction with the illustrative embodiments of the invention may be implemented in whole or in part in software utilizing processor  702  and memory  704  associated with a controller or an endpoint device. Other suitable arrangements of hardware, firmware or software may be used to implement the techniques of the invention. 
     It should again be emphasized that the above-described arrangements are illustrative only. For example, alternative embodiments may utilize different processing element hardware, firmware or software configurations, different network topologies, and different communication protocols than those of the illustrative embodiments. These and numerous other alternative embodiments within the scope of the following claims will be apparent to those skilled in the art.