ansible-dn42 icon indicating copy to clipboard operation
ansible-dn42 copied to clipboard

Ansible code to configure dn42

ansible-dn42

This repository contains the configs for AS4242421080 / HIGHDEF-AS on dn42. For more details, see https://highdef.network/

Network topology

This iteration of the network uses the Babel IGP and a full mesh of iBGP sessions over WireGuard. Internal costs between nodes are periodically generated based off latency and packet loss.

Routing Policy

Config structure

Here I use Ansible to configure the following components on Debian 11 hosts:

  • Wireguard (roles/config-wireguard/) via ifupdown
  • OpenVPN 2.x
  • BIRD 2 (roles/config-bird2/)
  • bird-lg-go looking glass
  • nginx + Let's Encrypt (certbot): frontend reverse proxy to bird-lg, Netdata, and a custom splash site
  • dn42 Peerfinder (cron job)
  • Anycast DNS via PowerDNS:
    • Authoritative server for highdef.dn42 and PTR zones
    • Public recursive resolver (dn42, clearnet, and interconnected networks) @ dns.highdef.dn42 / 172.23.0.53 / fd42:d42:d42:53::1
    • For this I also use a custom DNS zone generator that reads from YAML and the Ansible inventory
  • iptables firewall rules for dn42
  • Netdata + bird_exporter for monitoring

Some components (Bird backports, etc.) pull from my personal APT repository @ https://deb.utopia-repository.org/

Network history

History of my network