{"id":20296698,"url":"https://github.com/jlu5/ansible-dn42","last_synced_at":"2025-04-06T04:11:23.576Z","repository":{"id":38441711,"uuid":"266707063","full_name":"jlu5/ansible-dn42","owner":"jlu5","description":"Ansible code to configure dn42","archived":false,"fork":false,"pushed_at":"2025-03-29T23:09:18.000Z","size":3016,"stargazers_count":51,"open_issues_count":1,"forks_count":37,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T00:19:06.361Z","etag":null,"topics":["ansible","bird","dn42"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jlu5.png","metadata":{"files":{"readme":"README.md","changelog":"history.svg","contributing":null,"funding":null,"license":"LICENSE.CC-BY-SA.4.0","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-25T06:59:07.000Z","updated_at":"2025-03-29T23:09:21.000Z","dependencies_parsed_at":"2023-10-11T07:45:12.362Z","dependency_job_id":"529f9d54-a0ac-4158-9693-9c4e848726ff","html_url":"https://github.com/jlu5/ansible-dn42","commit_stats":{"total_commits":1433,"total_committers":11,"mean_commits":"130.27272727272728","dds":"0.011165387299371998","last_synced_commit":"8edd4a1d0f75d4a6a292a133324c7912577e3c14"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlu5%2Fansible-dn42","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlu5%2Fansible-dn42/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlu5%2Fansible-dn42/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlu5%2Fansible-dn42/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlu5","download_url":"https://codeload.github.com/jlu5/ansible-dn42/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430871,"owners_count":20937874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","bird","dn42"],"created_at":"2024-11-14T15:40:25.723Z","updated_at":"2025-04-06T04:11:23.556Z","avatar_url":"https://github.com/jlu5.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ansible-dn42\n\nThis repository contains the configs for **AS4242421080 / HIGHDEF-AS** on [dn42](https://dn42.dev/Home). For more details, see https://highdef.network/\n\n## Network topology\n\nThis iteration of the network uses OSPF (v2 + v3) and a full mesh of iBGP sessions over WireGuard. Internal costs between nodes are [periodically generated](scripts/igpping/) based off latency and packet loss.\n\n[Routing Policy](ROUTING-POLICY.md)\n\n## Config structure\n\nHere I use Ansible to configure the following components:\n\n### Peering tunnels\n\n- Wireguard via ifupdown: [roles/config-wireguard/](roles/config-wireguard/)\n- GRE (plain) via ifupdown: [roles/config-gre-plain/](roles/config-gre-plain/)\n\n### Services and daemons\n\n- BIRD 2: [roles/config-bird2/](roles/config-bird2/)\n- bird-lg-go looking glass: [roles/setup-bird-lg-go/](roles/setup-bird-lg-go/)\n- nginx - frontend reverse proxy to services + a dn42 splash site\n- PowerDNS (authoritative server + recursor):\n  - Anycast authoritative server for dn42 zones: [roles/config-powerdns/](roles/config-powerdns/)\n    - **ns.highdef.dn42** / l.delegation-servers.dn42\n  - Anycast recursor for dn42, clearnet, and interconnected networks: [roles/config-powerdns-recursor/](roles/config-powerdns-recursor/)\n    - **dns.highdef.dn42** / l.recursive-servers.dn42 / 172.23.0.53 / fd42:d42:d42:53::1\n\n### Statistics and monitoring\n- Smokeping @ [ping.highdef.dn42](http://ping.highdef.dn42): [roles/setup-smokeping/](roles/setup-smokeping/)\n\n## Network growth over time\n\nNote that these values represent configured peers, which may or may not be up at any particular time.\n\n![History of my network](history.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlu5%2Fansible-dn42","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlu5%2Fansible-dn42","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlu5%2Fansible-dn42/lists"}