Commit Graph

90 Commits

Author SHA1 Message Date
Brian Cunnie
64cf7b6bc1 3.2.6: -ns-azure, ns-aws → "blocked" 2025-01-04 11:51:18 -08:00
Brian Cunnie
7d6b724cbe Remove traces of nameservers ns-aws, ns-azure
- ns-aws & ns-azure have been replaced by ns-hetzner & ns-ovh
- ns-azure has been completely destroyed (`terraform apply -destroy`);
  the elastic IP has been released, so there's no hope of bringing it
  back.
- ns-aws has been renamed to "blocked.sslip.io". It no longer answers
  DNS queries, but lives on as the website we point "blocked" queries to
  that warns about phishing.
- Some of the Markdown files' changes were mere reformatting changes
2025-01-04 11:28:40 -08:00
Brian Cunnie
508f058a7a 3.2.5: Minor bugfixes, tweaks 2024-12-03 11:07:07 -08:00
Brian Cunnie
3ed466bc74 Placate the linter
- check for errors when I was previously skipping them
- use module `time` better

Drive-by: Shorter way to copy the new `index.html` to the 5 servers.
2024-11-17 07:22:37 -08:00
Brian Cunnie
cb2424ac2a web page: +ns-hetzner, -ns-azure
- remove the alert about not using the sslip.io nameservers as
  general-purpose nameservers — I feel if they're looking at the page,
  they already know enough not to use the nameservers as recursive
  nameservers.
- deprecate ns-azure.
- extend the shutdown to 12/25 for ns-aws & ns-azure
- add a shoutout to Let's Encrypt
2024-11-16 20:02:14 -08:00
Brian Cunnie
1da3b67af2 3.2.4: Introduce new nameserver, ns-hetzner.sslip.io 2024-11-16 17:26:04 -08:00
Brian Cunnie
7a26f40ee6 Warn white labellers to update their NS servers
ns-aws.sslip.io is deprecated.

Drive-by: used absolute paths in the description of how I can use the
logs.
2024-11-07 17:41:14 -08:00
Brian Cunnie
ad91ae880e DEVELOPER instructions: corrected wrong comments 2024-11-07 07:17:36 -08:00
Brian Cunnie
c6c5435e4a 3.2.3: ns-aws is no longer an NS for sslip.io 2024-11-04 18:14:17 -08:00
Brian Cunnie
34318bbb43 Retire DNS server, ns-aws.sslip.io
The torrent of traffic I'm receiving has caused my AWS bill to spike
from $9 to $148, all of the increase due to bandwidth charges.

I'm still maintaining ns-aws; the VM still continue to run, and continue
to serve web traffic, and maintain its hostname and IP addresses;
however, it will no longer be in the list of NS records for sslip.io.

There are much less expensive hosting providers. OVH is my current
favorite.
2024-11-04 17:56:03 -08:00
Brian Cunnie
078a69f75e 3.2.2: Join the Public Suffix List 2024-10-08 18:53:08 -07:00
Brian Cunnie
8eb5d82e83 Who is querying us the most? 2024-09-23 07:20:21 -07:00
Brian Cunnie
d0c3927415 3.2.1: Return NS records in random order 2024-09-17 06:34:32 -07:00
Brian Cunnie
c4310ebb86 3.2.0: Introduce new nameserver, ns-ovh.sslip.io 2024-09-15 17:45:01 -07:00
Brian Cunnie
6855598f0f Introduce new name server, ns-ovh.sslip.io
- located in Warsaw, Poland
- IPv4: 51.75.53.19
- IPv6: 2001:41d0:602:2313::1

The crux of this is to take the load off ns-aws, which jumped from
$12.66 → $20.63 → $38.51 → $62.30 in the last four months due to
bandwidth charges exceeding 10 TB.

The real fix is to randomize the order in which the nameservers are
returned.
2024-09-15 17:21:16 -07:00
Brian Cunnie
a442a7d368 Release Procedure: Include GCP
Previously the GCP NS was a k8s container, but now it's a standalone VM
(for, believe it or not, cost reasons: it was cheaper to assign a static
IP to a VM than to a load balancer).

The instructions now include the procedure to update the GCP VM.

Also, we double-checked that all servers had the same version number
twice, and now we only do it once. And we incorporate it with another
step, so there are two fewer steps to follow.
2024-03-09 08:15:00 -08:00
Brian Cunnie
27d7f4bcd6 3.1.0: Shorten TTL for publicly-accessible A & AAAA records 2024-03-09 07:20:50 -08:00
Brian Cunnie
1ed944f1e5 sslip.io is hosted on GCP, not GKE
I don't need this k8s configuration for sslip.io (DNS, NTP) because I'm
no longer hosting on GKE now that it has an ephemeral IP instead of a
reserved IP because otherwise I'd have to pay $360 extra per year for a
premium-tier load balancer.
2024-01-10 11:27:50 -08:00
Brian Cunnie
aacd566ab4 3.0.0: enable TCP binding in addition to UDP 2023-10-04 08:07:03 -07:00
Brian Cunnie
1cf277c706 🐞 Tweak
Fixes, `fly trigger-job ...`:
```
error: resource not found
```
Fixes, `kubectl logs ...`:
```
flag provided but not defined: -etcdHost
Usage of /usr/sbin/sslip.io-dns-server:
```
2023-03-13 19:56:56 -04:00
Brian Cunnie
451ad0ef5f 2.7.0: remove key-value store 2023-03-13 16:46:20 -04:00
Brian Cunnie
a62a797fe5 Disable DNS-backed key-value store
I'm disabling the key-value store because no one was using it.

There are other reasons, too:

- The removal of the `etcd` library dropped the executable size by over
  half from 17MB to 7MB
- I didn't want users who've deployed it internally to be "surprised" by
  unexpected key-value features
- Key-value-over-DNS has a seamy side to it: "data exfiltration". I know
  there are legitimate uses for it, but I've come to believe that a
  Key-value-over-HTTP solution is preferable because it's not only more
  legitimate but also because it eliminates the DNS caching problem.
2023-03-13 16:44:30 -04:00
Brian Cunnie
0623523a6d Wildcard certs: show people an easier way 2022-12-11 18:21:17 -08:00
Stefan Sundin
29a8ba0777 Fix broken links. 2022-12-07 06:34:46 -08:00
Brian Cunnie
776fe532ce 2.6.2: -quiet suppresses logs for each query 2022-11-26 13:55:38 -08:00
Brian Cunnie
262a1e0ea1 2.6.1: -addresses flag enables custom addresses 2022-11-11 10:48:37 -08:00
Brian Cunnie
f598bb52c7 Version 2.6.0: PTR records for IPv4 & IPv6 2022-07-14 18:34:40 -07:00
Brian Cunnie
359cf6b7df Docs for self: who's using ip.sslip.io?
Note: the two biggest users are Cypriot IP addresses:

```
      2 106.52.50.235  <- Tencent
      1 223.71.46.114  <- China Mobile
    157 31.153.14.207  <- Cypriot
    110 62.228.164.123 <- Cypriot
      4 73.189.219.4   <- My home IP
```
`
2022-05-18 11:44:56 -07:00
Brian Cunnie
50d843a16a Version 2.5.4: .acme_challenge.k-v.io isn't settable 2022-04-30 16:42:35 -07:00
Brian Cunnie
623ecc4390 Docs: Update install scripts when bumping version 2022-04-28 05:27:31 -07:00
Brian Cunnie
9c99b954be Update release docs to 2.5.3
And revert the gratuitous change I made earlier to trigger a build.
2022-04-22 16:36:06 -07:00
Brian Cunnie
4d339cd861 Version 2.5.3: k-v.io is operational 2022-04-22 14:33:47 -07:00
Brian Cunnie
8d55c534fc Make way for k-v.io HTML website
To make room for the k-v.io HTML website, we rename the `document_root`
of the sslip.io website to the more explicit `document_root_sslip.io`.
2022-04-22 07:59:10 -07:00
Brian Cunnie
b33e1f6b37 Docs: tweaks to releasing new versions
This is the end of a series of changes which allowed my
[dns-servers](https://ci.nono.io/teams/main/pipelines/sslip.io) job to
finally go green
2022-04-13 20:26:30 -07:00
Brian Cunnie
294f54a79a Version 2.5.2: DELETE on k-v.io returns no TXT records
The original behavior was to return the deleted record, which
inadvertently prolonged the lifetime (in DNS cache) of the record which
was meant to expire as soon as possible.

- Removed the instructions to create a BOSH release. We are no longer
  creating a BOSH release because we needed to colocate an etcd release
  alongside the BOSH release, and we couldn't find an etcd BOSH release.
- Updated the instructions to run a quick test against the sslip.io DNS
  server locally (sanity check) instead of deploying a VM with the BOSH
  release & testing against that.
- Updated the instructions for updating ns-azure's DNS server. ns-azure
  is no longer a BOSH-deployed VM.
2022-04-13 12:55:34 -07:00
Brian Cunnie
cd2b14b924 BOSH release: 2.5.1: block phishers with CIDRs 2022-02-26 16:41:05 -08:00
Brian Cunnie
e8458a9dc2 "[Bb]lockList" → "[Bb]locklist"
We conform to the modern usage of "blacklist". In Google search,
"blacklist" appears 45 million times, "black list", 7 million.

Yes, I'm aware that we're using "block", not "black", for the variable
name, but keep in mind that we're using "block" as a drop-in replacement
for "black". And the newer "blocklist" has a puny 1 million appearances
to "blacklist"'s 45.
2022-02-16 08:36:59 -08:00
Brian Cunnie
51ed47317e BOSH release: 2.5.0: block phishers 2022-02-06 19:51:06 -08:00
Brian Cunnie
d42ce54947 Notes to self: how to examine logs 2022-01-23 07:46:07 -08:00
Brian Cunnie
d35cc1faa6 Release procedure has slightly better instructions 2022-01-22 10:20:12 -08:00
Brian Cunnie
8f2890d90e BOSH release: 2.4.2: fix panic() 2022-01-22 09:41:49 -08:00
Brian Cunnie
3e502731d4 🐞 Fix panic: runtime error: index out of range
Previously I never checked if `net.ParseIP()` returned `nil` for an IPv4
address—I couldn't imagine my IPv4 regex was incomplete. I was wrong.

Moral of the story: always check for errors, always check for nil.

Oddly, I checked for IPv6 addresses—I guess I wasn't as confident about
the regex used.

Drive-bys:
- updated SOA with today's date
- updated dependencies `go get -u`

[fixes #15]
2022-01-22 09:12:13 -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
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
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
bd63421c3f BOSH release: 2.3.0: kv.sslip.io key-value store 2021-12-04 08:16:53 -08:00
Brian Cunnie
b8b4786387 Update ns-aws.sslip.io's HTML assets
i.e.: <https://52-0-56-137.sslip.io/>

Previously I didn't update `index.html` properly because it wasn't
documented, and the content had become stale.
2021-11-28 20:08:52 -08:00
Brian Cunnie
2599def6b6 Upgrading (Developer) notes: manually trigger job
Because it's a manual job currently because if it was automatic it'd
trigger & fail because the required executable isn't yet downloadable.
2021-11-28 19:45:14 -08:00