- Rust 55.5%
- Nix 44.5%
| fallen-sky-config | ||
| fallen-sky-dns | ||
| fallen-sky-validator | ||
| nixos | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||
fallen-sky
tools for falling-sky, the IPv6 diagnostic service that powers test-ipv6.com and sixte.st.
if you’re like me and you’re interested in continuing to run falling-sky after test-ipv6 is retired, and potentially collaborating on its maintenance and development, get in touch:
shuppy <fallen-sky@shuppy.org>
validator
you will need a rust compiler, at least this version or newer.
to build:
$ cargo build -p fallen-sky-validator
to run:
$ cd target/debug
$ ./fallen-sky-validator <domain>
$ ./fallen-sky-validator <domain> \
--expected-version 1.1.1023 \
--expected-htrev 1.1.1023-6cac666d687ebd126e73ed55355d8cf6
NixOS config
/nixos/ contains the config management used to deploy falling-sky to sixte.st.
the v6ns zone is defined in this config using a modified vendored NixOS module for nsd (services.falling-sky.nsd), which can be used simultaneously with the usual module (services.nsd). the main DNS zone is currently defined outside this config and deployed on hurricane electric.
this config is deployed on a server that uses nginx for other web services as follows:
{ config, lib, options, modulesPath, pkgs, specialArgs }: {
imports = [ path/to/fallen-sky/nixos ];
services.falling-sky = {
enable = true;
domain = "sixte.st";
ipv4-address = "192.0.2.1";
ipv6-address = "2001:db8::1500";
mtu1280-address = "2001:db8::1280";
# v6ns-soa-rname = "hostmaster.sixte.st.";
v6ns-acme-challenge-cname = "_acme-challenge.v6ns.sixte.st.acme.example.";
};
services.nginx.virtualHosts = let
falling-sky = {
locations."/" = {
useACMEHost = "hostname.example.";
addSSL = true;
proxyPass = "http://127.0.0.1:1280";
extraConfig = ''
# https://github.com/curl/curl/issues/674
# https://trac.nginx.org/nginx/ticket/915
proxy_hide_header Upgrade;
'';
};
};
in {
".sixte.st" = falling-sky;
"192.0.2.1" = falling-sky;
"[2001:db8::1500]" = falling-sky;
};
security.acme.certs."hostname.example." = {
extraDomainNames = [
"sixte.st"
"*.sixte.st"
"*.v6ns.sixte.st"
];
};
}