Posts

DN42 Realtime Map (map.dn42)

Introduction

We host a realtime network map of DN42. Click here to navigate to DN42 Realtime Map.

Access

We provide both clearnet and DN42(of course) access.

Map update timing

Data refreshes whenever the collector provides a new MRT file, generally 10-15 minutes.

API Services

API URL Description
/map https://map.dn42/map
https://api.iedon.com/dn42/map
Raw binary map data
/map?type=json https://map.dn42/map?type=json
https://api.iedon.com/dn42/map?type=json
Raw map data, in JSON
/asn/{asn} https://map.dn42/asn/4242422189
https://api.iedon.com/dn42/asn/4242422189
Real-time node information from the map, including WHOIS data, in JSON
/ranking https://map.dn42/ranking
https://api.iedon.com/dn42/ranking
DN42 Global Ranking, based on the map.dn42 index
/myip/[raw|api] https://map.dn42/myip/
https://map.dn42/myip/api
https://map.dn42/myip/raw
What's My IP instance by map.dn42, including netname and country information if available

Raw binary map data format

To decode map.bin, use Google Protocol Buffer library. Here is the original proto definition of binary map file used by map.dn42:

syntax = "proto3";

package dn42_map;

option go_package = "github.com/iedon/dn42_map_go/proto";

// Node represents an AS node
message Node {
  uint32 asn = 1;
  string desc = 2;
  repeated Route routes = 3;
  Centrality centrality = 4;
  repeated Route routes_multicast = 5;
}

// Centrality stores the centrality metrics of a node
message Centrality {
  double degree = 1;
  double betweenness = 2;
  double closeness = 3;
  uint32 index = 4; // dn42Index
  uint32 ranking = 5;
}

// Route represents a route entry
message Route {
  uint32 length = 1;
  oneof ip {
    uint32 ipv4 = 2;
    IPv6 ipv6 = 3;
  }
}

// IPv6 represents an IPv6 address
message IPv6 {
  uint32 high_h32 = 1;
  uint32 high_l32 = 2;
  uint32 low_h32 = 3;
  uint32 low_l32 = 4;
}

// Link represents a connection between two ASes
message Link {
  uint32 source = 1;
  uint32 target = 2;
  uint32 af = 3;  // combined AF bitmasks(1=IPv4 Unicast, 2=IPv6 Unicast, 4=IPv4 Multicast, 8=IPv6 Multicast)
}

// Contains metadata information about the graph.
message Metadata {
    string vendor = 1; // always "IEDON.NET"
    uint64 generated_timestamp = 2;
    uint64 data_timestamp = 3;
    uint32 version = 4; // currently 2
}

// Graph represents the entire network topology
message Graph {
    Metadata metadata = 1;
    repeated Node nodes = 2;
    repeated Link links = 3;
}