Commit Graph

52 Commits

Author SHA1 Message Date
Brian Cunnie
01d68dcd8b Use more precise terminology in metrics
"Successful" is a nebulous term. "Answered" is more precise (at least
one record returned in the answer section of the DNS response).
2022-02-08 11:17:28 -08:00
Brian Cunnie
51ed47317e BOSH release: 2.5.0: block phishers 2022-02-06 19:51:06 -08:00
Brian Cunnie
8f2890d90e BOSH release: 2.4.2: fix panic() 2022-01-22 09:41:49 -08:00
Brian Cunnie
ec649870a5 Website: consistently put record type after hostname 2022-01-20 13:32:55 -08:00
Brian Cunnie
6b2d65c778 🐞 Update links to use main branch, not master
...because the website wasn't updating
2022-01-20 12:15:00 -08:00
Brian Cunnie
d2914645e4 Website shows correct endpoint for metrics
...metrics.status.sslip.io not version.status.sslip.io
2022-01-20 12:01:12 -08:00
Brian Cunnie
b496e68423 Website explains what each metric means
Drive-by: updated publishing docs.
2022-01-20 09:29:06 -08:00
Brian Cunnie
bbf1925be4 BOSH release: 2.4.1: fewer panics
customized records w/ non-existent TXTs don't panic().
2022-01-20 08:10:03 -08:00
Brian Cunnie
b119442a37 BOSH release: 2.4.0: metrics.status.sslip.io returns metrics
Also, I moved the "versio" endpoint: `version.sslip.io` →
`version.status.sslip.io`. It seemed to make more sense to corral the
special endpoints under `status`.
2022-01-20 05:02:21 -08:00
Brian Cunnie
7d551b81db Metrics endpoint is fully fleshed-out
- integration tests (woohoo!)
2022-01-19 11:58:07 -08:00
Brian Cunnie
bf4f039001 Metrics are served via metrics.status.sslip.io
- The metrics aren't fleshed out. In fact, there's only two so far:
  1. uptime
  2. number of queries
- Even though the metrics aren't complete, I'm checking it in because
  this commit is already much too big.
- I moved the version information to `version.status.sslip.io`;
  previously it was at `version.sslip.io`. I didn't want one endpoint
  for both metrics & version (worry: DNS amplification), and I wanted a
  consistent subdomain to find that information (i.e.
  `status.sslip.io`).
- I'm not worried about atomic updates to the metrics; if a metric is
  off by one, if I skip a count because two lookups are happening at the
  exact same time, I don't care.
- The `Metrics` struct is a pointer within `Xip` because I might have
  several copies of `Xip` (if I'm binding to several interfaces
  individually), but I must only have one copy of `Metrics`
- I only include the metrics I'm interested in, usually because it took
  some work to implement that feature. I don't care about MX records,
  but I care about IPv6 lookups, DNS-01 challenges, public IP lookups.
- got rid of a section of unreachable code at the end of
  `ProcessQuestion()`; I was tired of Goland flagging it. I had it there
  mostly because I was paranoid of falling through a `switch` statement
2022-01-19 06:47:21 -08:00
Brian Cunnie
5065229a03 Key-value store domain: kv.sslip.io → k-v.io
I didn't want a really long domain for the key-value store; I wanted a
short, easy-to-remember domain. And it cost $400 for ten years.

Many good domains (e.g. keyvalue.store, kv.io)
were taken, and some weren't easily registered (e.g. the Albanian
domain, keyv.al).

Browsing these domains that were never put into use is like strolling
along the Boulevard of Broken Dreams: high hopes dashed against the hard
rocks of reality.
2021-12-29 19:56:52 -08:00
Brian Cunnie
bd63421c3f BOSH release: 2.3.0: kv.sslip.io key-value store 2021-12-04 08:16:53 -08:00
Brian Cunnie
78722b6887 kv.sslip.io: (key-value) read/write/delete TXTs
We enable special behavior under the `kv.sslip.io` subdomain: it can be
treated as a key-value store, the sub-subdomain being the key, and the
TXT record being the value.

For example, to write ("put") the value "12.0.1" to the key
"macos-version" on the `ns-gce.sslip.io.` nameserver, you'd use the
following `dig` command:

```shell
dig @ns-gce.sslip.io. txt put.12.0.1.macos-version.kv.sslip.io.
```

To read ("get") the value back, you'd write the following `dig` command:

```shell
dig @ns-gce.sslip.io. txt get.macos-version.kv.sslip.io.
```

Since "get" is the default behavior, you don't need to include it in the
domain name:

```shell
dig @ns-gce.sslip.io. txt macos-version.kv.sslip.io.
```

Finally, when you're done with the key-value, you can "delete" it:

```shell
dig @ns-gce.sslip.io. txt delete.macos-version.kv.sslip.io.
```

Notes:

- Keys are case-insensitive (to accommodate DNS convention). In other
  words, `KEY.kv.sslip.io` and `key.kv.sslip.io` return the same TXT
  record.
- Values are case-sensitive. `put.CamelCase.style.kv.sslip.io` sets the
  TXT record to "CamelCase".
- `put` requests will return the TXT record being put; i.e.
  `put.hello.world.kv.sslip.io` returns one TXT record of one string,
  `hello`.
- `delete` requests will return the TXT record being deleted; i.e.
  `delete.world.kv.sslip.io` returns one TXT record of one string,
  `hello`. If the TXT record does not exist, no TXT records will be
  returned.
- Values are limited to 63 bytes to mitigate using the sslip.io servers
  in a [DNS amplification
  attack](https://us-cert.cisa.gov/ncas/alerts/TA13-088A).
- Values are not persistent: if the server is restarted, all values
  disappear. Poof.
- Values are not consistent. If a value is set in `ns-aws.sslip.io`, it
  does not propagate to `ns-gce.sslip.io` nor `ns-azure.sslip.io`.
2021-12-04 07:59:57 -08:00
Brian Cunnie
90b94baa29 BOSH release: 2.2.4: Deprecate nono.io nameservers 2021-11-28 13:08:49 -08:00
Brian Cunnie
4c8e7741f1 Use @ns.sslip.io to determine your IP lookup
It makes for simpler instructions than listing the three nameservers &
which ones have IPv6.
2021-11-27 19:03:40 -08:00
Brian Cunnie
7ed2107f36 Web page: use sslip.io servers, not nono.io 2021-11-27 18:23:02 -08:00
Brian Cunnie
56191a2ef7 HTML: remove the "new software" warning
It's not new after a year. I also updated the version numbers returned
because, well, it makes the website more "fresh".
2021-11-27 12:29:58 -08:00
Brian Cunnie
4e22123114 BOSH release: 2.2.3: Include sslip.io nameservers 2021-11-27 11:35:01 -08:00
Brian Cunnie
eed67fdf4d BOSH release: 2.2.2: ip.sslip.io TXT returns IP
Our documentation was wrong; our homepage said to get the origin IP
address by querying the TXT record of the root, i.e. `dig
@ns-aws.nono.io txt . +short`; however, our code worked differently: it
returned the origin IP when the `.ip` TLD was queried.

The new behavior is that it returns the origin IP when `ip.sslip.io.` is
queried, and the documentation now reflects that behavior.

Also, that behavior is marked "experimental" to give us leeway to
change.

[fixes #11]
2021-11-01 07:24:54 -07:00
Brian Cunnie
8ce23653bb BOSH release: 2.2.1: version.sslip.io TXT
- Returns version information for DNS server
- Contains 3 strings:
  - Semantic version, e.g. "2.2.1"
  - Date of compilation
  - Latest git hash

Note: the BOSH Release will have a different compilation date &
different git hash than the released executables; the semantic version
will be the same.
2021-10-06 05:16:46 -07:00
Brian Cunnie
502a6901cc Website: grammar fix, clarification 2021-09-15 11:04:07 -07:00
Brian Cunnie
90926d3bdf VMware employees can't get the wildcard
The wildcard is expiring, and I'm loath to spend something renewing
something I don't use, so I'll let it lapse.

(I use Let's Encrypt).
2021-09-15 10:57:13 -07:00
Brian Cunnie
6e5a9b1d1e sslip.io website: GKE is now a mirror—yay! 2021-07-07 18:33:43 -07:00
Brian Cunnie
55e23e34a3 BOSH release: 2.2.0: TXT records return IP addrs 2021-06-20 20:52:10 -07:00
Brian Cunnie
a4aa6a8905 Website: add even more "what is my IP?" sites 2021-06-20 19:31:36 -07:00
Brian Cunnie
9bf4c72033 Website: include ns-aws's IPv6 address 2021-06-20 14:08:24 -07:00
Brian Cunnie
e89d8b5caf Website: DNS queries are 14x more efficient
...than HTTPS queries.
2021-06-20 13:45:05 -07:00
Brian Cunnie
bd9ad86ede 🐞 Docs: Use HTML not Markdown
- `TXT` → <code>TXT</code>
- Clarify wording about looking up your public IP address
2021-06-20 07:08:42 -07:00
Brian Cunnie
bc103c7964 Website: reorganize headings
- "Related Services" is at the bottom
- Recommend using ns-aws.nono.io for both IPv4 & IPv6 lookups
2021-06-19 20:40:39 -07:00
Brian Cunnie
69972df833 Document: TXT records return querier's IP address
I didn't mention <https://wtfismyip.com/> because I felt the _wtf_
portion wasn't what I wanted on my website.
2021-06-19 20:02:27 -07:00
Brian Cunnie
e9eea2334c Website: plea to report Let's Encrypt rate-limits
We want people to report rate-limiting so we know to request an
increase.

[#6]
2021-02-12 19:11:42 -08:00
Brian Cunnie
74aed2f5b1 HTML: better wording for wildcard subdomains
The previous version wasn't clear.
2021-02-10 13:12:55 -08:00
Brian Cunnie
e14d7f0571 Website Documentation: Expand TLS options
- Use HTTP-01 challenge for run-of-the-mill certificates
- White label domains can acquire their own wildcard certificates
- VMware employees have access to *.sslip.io wildcard
- Use DNS-01 challenge for *.w-x-y-z.sslip.io wildcards
2021-02-09 08:22:57 -08:00
Brian Cunnie
d2ed920d20 Bump version number on download link on web page 2021-01-30 20:00:19 -08:00
Brian Cunnie
5429c71c87 BOSH release: 2.1.1: case-insensitive _acme-challenge matching 2021-01-20 15:51:00 -08:00
Brian Cunnie
bea9cde6f0 BOSH release: 1.3.1: Special NS records for _acme-challenge.
`DEVELOPER.md` had the wrong tests (mostly missing newlines); that's
been fixed. Also, I added a new test for DNS records which contain
`_acme-challenge.`, which may enable users to generate wildcard certs
for their sslip.io domains.
2020-12-24 12:11:58 -08:00
Brian Cunnie
91048d058b BOSH release: 1.3.0: CNAME records 2020-12-19 17:51:22 -08:00
Brian Cunnie
464e0ff361 Website: merge the "warning" banners
We don't need two; one is enough.
2020-12-17 08:25:20 -08:00
Brian Cunnie
19b8e07c10 Website: provide link to open report problems
When we released our new Golang-based DNS server, we had a banner that
said to let us know if anything breaks, but we neglected to tell them
_how_ to let us know. Now we include a link that opens a GitHub issue.
2020-12-17 08:00:42 -08:00
Brian Cunnie
ef868f7fdb BOSH release: 1.2.2: TXT records, this time without bugs 2020-12-16 09:28:00 -08:00
Brian Cunnie
8da410c029 BOSH release: 1.2.1 TXT records
The compelling reason was to to enable Protonmail for sslip.io email;
they require specific TXT records.
2020-12-16 08:06:53 -08:00
Brian Cunnie
b8b54a40f4 🐞 Fix the broken badges on the website
I renamed the Concourse CI job "check-dns" → "dns-servers", but never
updated the URL of the badge.
2020-12-13 16:36:50 -08:00
Brian Cunnie
c1db16dd17 Website: link to the latest (1.2.0) release 2020-12-13 16:24:24 -08:00
Brian Cunnie
e695c120b3 HTML: Related services: nip.io, localtls 2020-12-10 08:01:31 -08:00
Brian Cunnie
9b3f8a789a README: we have three name servers, not four 2020-12-03 06:43:45 -08:00
Brian Cunnie
779520cca2 Website has instructions for running custom server
We describe how to run our pre-built executable within a docker
container. They can figure out the rest from there.

If they don't understand those instructions, they shouldn't be running
their own DNS server.
2020-12-01 16:39:01 -08:00
Brian Cunnie
62a95f04b7 README: tell users that we have a new backend 2020-12-01 12:49:05 -08:00
Brian Cunnie
0ac9e1895d HTML: tidy 5.6.0 the HTML assets
It makes it easier for editing.
2020-12-01 08:40:00 -08:00
Brian Cunnie
3e8d3d263a splash page: deprecate ns-vultr
It isn't reliable; It's off the last week of the month.
2020-11-27 16:01:37 -08:00