ix.watch

Add your IX

ix.watch only sees the peering LANs it's connected to. There are two ways to add one: run a sensor as a member, or, if you run the IXP, give us a port.

You run the IXP

Give us a port

A port on your peering LAN gets your whole fabric on ix.watch, watched from the inside. What your members get:

  • They find out themselves. Each network gets a page with the frames we caught, a pcap and the config line that fixes it on their hardware. That's fewer tickets for your NOC to chase.
  • A cleaner LAN. A router advertisement, a spanning tree BPDU or a DHCP server on one port reaches every port. Fixing one member helps all of them.
  • Proof the fabric is watched. Members and prospects can see what's on your LAN and that it gets fixed.

What we need: the smallest port you offer, since we only listen to broadcast, multicast and what's sent to us. We can usually reach you over a reseller or transport, so the port itself is what makes or breaks it.

Rather keep it in-house? Run the sensor on a host that's already on the LAN, such as a route server, looking glass or monitoring box. Your IX shows up here credited to you.

Mail noc at ix dot watch with your IXP's name.

You're a member

Run a sensor

The sensor is a single Python file. It listens on your peering interface and reports what it sees to ix.watch. Your IXP is credited "via" you on every page.

  • Runs on Linux with Python 3.9+ and paho-mqtt. It needs root for the raw socket and promiscuous mode.
  • Costs next to nothing. A kernel filter drops plain unicast IP before the sensor sees it.
  • Sends per source MAC: counts per type, first and last seen, the MAC's IP from your neighbour table, and the last few frames. For each frame that's the decoded headers plus the frame itself, cut at 1600 bytes, for the public pcap.
  • Only sees frames sent to the whole LAN or to your router, including your router's own. A sensor watches its own port too.

The config is a few lines:

{
  "name": "as64500",
  "interfaces": { "eth1.100": "NL-IX" },
  "mqtt": { "url": "wss://mqtt.bgp.rodeo/",
            "username": "as64500", "password": "..." }
}

Mail noc at ix dot watch with your ASN and IXP. We'll send you the sensor and an account.