ftr - Fast TraceRoute

IXP/Peering Point Detection Proposal

Overview

This proposal outlines a systematic approach to identify Internet Exchange Points (IXPs) and peering locations in traceroute paths, building on ftr’s existing ASN enrichment capabilities.

Motivation

Research Findings

Available Data Sources

1. PeeringDB API (https://www.peeringdb.com/api/)

2. IXP IP Prefix Databases

3. Reverse DNS Patterns

Detection Methods

Method 1: IP Prefix Matching

1. Detect ASN transition: AS46375 → AS6453
2. Check if intermediate IPs fall within known IXP prefixes
3. Validate both ASNs are members of that IXP

Method 2: Reverse DNS Analysis

1. Parse rDNS for IXP/facility indicators
2. Cross-reference with PeeringDB facility names
3. Score confidence based on pattern matches

Method 3: RTT Analysis

1. Detect RTT anomalies at ASN boundaries
2. Sudden RTT drops often indicate local peering
3. Geographic validation using geolocation

Implementation Plan

Phase 1: Data Integration

  1. PeeringDB Client Module (src/ixp/peeringdb.rs)
    • Async client for PeeringDB API
    • Cache IXP prefixes and memberships
    • Periodic updates (configurable, default 24h)
  2. IXP Database (src/ixp/database.rs)
    • Store IXP prefixes as CIDR blocks
    • Index by ASN for quick membership lookups
    • Include facility names and locations

Phase 2: Detection Engine

  1. IXP Detector Service (src/ixp/detector.rs)
    pub struct IxpInfo {
        pub name: String,
        pub facility: Option<String>,
        pub location: String,
        pub member_asns: Vec<u32>,
        pub confidence: f32,  // 0.0 to 1.0
    }
    
  2. Detection Algorithm:
    • For each ASN transition in traceroute
    • Check if IPs match IXP prefixes
    • Analyze rDNS patterns
    • Calculate confidence score

Phase 3: Integration

  1. Extend SegmentType:
    pub enum SegmentType {
        Lan,
        Isp,
        Ixp,        // New
        Transit,
        Destination,
        Unknown,
    }
    
  2. Update TracerouteResult:
    • Add ixp_crossings: Vec<IxpCrossing>
    • Include IXP info in hop enrichment
  3. CLI Output:
    12 [ISP   ] 100.ae1.nrd1.equinix-sj.sonic.net (75.101.33.185) 5.580 ms [AS46375]
    -- [IXP: Equinix SV1 - San Jose, AS46375 ↔ AS6453] --
    13 [TRANSIT] 216.6.52.80 5.583 ms [AS6453 - TATA]
    

Phase 4: Configuration

Validation Approach

  1. Test against known routes with confirmed IXP crossings
  2. Compare with looking glass data from major networks
  3. Validate against traIXroute results for accuracy baseline

Expected Accuracy

Privacy & Performance Considerations

Future Enhancements

  1. BGP route views integration for validation
  2. Historical peering relationship tracking
  3. Anomaly detection for routing changes
  4. Integration with network monitoring tools

References

Target Release

Proposed for v0.7.0 or later, after v0.6.0 segment classification stabilizes.