NANOG 77 Hackathon Focus

n77-hackathon-square-crop.png

The NANOG 77 Hackathon will focus on traffic exceptions.

In any given network you have varying levels of flow control available in the form of shortest-path, next-hop routing, or TE via MPLS. But how do you handle exception flows that you may need to route towards a specific destination (or transit hop) for reasons like traffic analysis, security honey pots, traffic capture, etc?

For this hack, we encourage you to develop your own creative ideas on this theme, though independent projects on any topic are fair game. You'll have ample opportunities to come up with ideas and build teams around them both through Slack before the Hackathon and first thing the morning of the Hackathon. You can also choose to work on one, two, or all three areas detailed below. Regardless of what you decide, there will be virtualized infrastructure available for you to develop your ideas and mentors to help.

Here are three possible areas to focus on for the Hackathon, along with sample ideas that could be used to solve each area. This list is not meant to be restrictive, and the more creative ideas that people come up with and want to implement, the better.

 

Traffic Triggering

How to detect and flag exception flows?
- Simple trigger on traffic with a specific fingerprint (E.g. HTTP request to a Honeypot)
- More advanced triggers with state tracking (E.g. TCP retransmits over 50% for a flow)

Network Config

How to configure the network to send these flows to the desired destination?
- Tunneling of exception flow to segment of the network with packet capture abilities
- BGP FlowSpec changing next-hop for flows
- MPLS LSP injection

Traffic Influencer

How to process flow info from trigger to influence traffic in the network?
- ExaBGP process listening for flow tuples and sending BGP FlowSpec
- Python process that receives flow info and changes config on the edge router facing the traffic exception

The Github repo with walkthroughs, configs, and code can be found at:

https://github.com/thepacketgeek/nanog77-hackathon-demo