This archive is retained to ensure existing URLs remain functional. It will not contain any emails sent to this mailing list after July 1, 2024. For all messages, including those sent before and after this date, please visit the new location of the archive at https://mailman.ripe.net/archives/list/ripe-atlas@ripe.net/
[atlas] Atlas Sagan library and UDP tarceroute results: bug or feature?
- Previous message (by thread): [atlas] Data Streaming in RIPE Atlas
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Jen Linkova
furry13 at gmail.com
Fri Oct 31 15:15:04 CET 2014
Hello,
I've just found that using Sagan library for analyzing UDP traceroute
measurement results may produce incorrect results: 'target_responded'
variable is not be set to 'True' if the source address of the
traceroute reply is not the target address of the traceroute, but any
other address that belongs to the node.
(From the traceroute.py code:
def target_responded(self):
if self._target_responded is not None:
return self._target_responded
self._target_responded = False
if self.hops and self.hops[-1].packets:
destination_address = IP(self.destination_address)
for packet in self.hops[-1].packets:
if packet.origin and destination_address == IP(packet.origin):
self._target_responded = True
return self.target_responded
)
I don't think that's a valid assumption that a target node is *always*
choosing the probe packet's destination address as a reply source. In
particular, in case of UDP packets
addressed to anycast, it might fail because the node can reply from
another address.
In particular, rfc4443 (ICMP for IPv6) says:
2.2. Message Source Address Determination
A node that originates an ICMPv6 message has to determine both the
Source and Destination IPv6 Addresses in the IPv6 header before
calculating the checksum. If the node has more than one unicast
address, it MUST choose the Source Address of the message as follows:
(a) If the message is a response to a message sent to one of the
node's unicast addresses, the Source Address of the reply MUST be
that same address.
(b) If the message is a response to a message sent to any other
address, such as
- a multicast group address,
- an anycast address implemented by the node, or
- a unicast address that does not belong to the node
the Source Address of the ICMPv6 packet MUST be a unicast address
belonging to the node.
==
and in the same RFC source address selection for ICMP echo reply
messages is defined:
The source address of an Echo Reply sent in response to a unicast
Echo Request message MUST be the same as the destination address of
that Echo Request message.
An Echo Reply SHOULD be sent in response to an Echo Request message
sent to an IPv6 multicast or anycast address. In this case, the
source address of the reply MUST be a unicast address belonging to
the interface on which the Echo Request message was received.
====
So, I'm sending this email, first, to warn those of you who is using
Sagan to analyze UDP traceroute results, and, secondly, to discuss, if
Sagan behavior is a bug (I believe it is) or a feature ;)
--
SY, Jen Linkova aka Furry
- Previous message (by thread): [atlas] Data Streaming in RIPE Atlas
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]