Brian Cunnie 0c09717a1b BOSH release: 1.1.2: make website great again
Now we have A & AAAA records for sslip.io.
2020-12-01 12:03:10 -08:00
2020-12-01 08:40:00 -08:00
2015-08-30 10:27:54 -07:00
2015-08-26 11:43:35 -07:00
2020-11-26 15:11:25 -08:00

sslip.io

ci.nono.io

sslip.io is a domain that maps specially-crafted DNS A records to IP addresses (e.g. "127-0-0-1.sslip.io" maps to 127.0.0.1). It is similar to, inspired by, and uses much of the code of xip.io.

Refer to the website (sslip.io) for more information.

  • k8s/document_root/ contains the HTML content of the sslip.io website
  • ci/ contains the Concourse continuous integration (CI) pipeline and task.
  • spec/ contains the RSpec files for test driven development (TDD). To run the tests:
DOMAIN=sslip.io rspec --format documentation --color spec
  • conf/sslip.io+nono.io.yml contains the PowerDNS's pipe backend's configuration in YAML format for use with BOSH. The pdns_pipe key is the pipe backend script, and pdns_pipe_conf is its configuration file.

Golang DNS Server

An experimental bare-bones DNS server written in Golang is available.

This Golang server is currently not configurable:

  • it binds to port 53 (you can't change it)
  • it only binds to UDP (no TCP, sorry)
  • if the hostname queried doesn't match, it doesn't return an Answer section; instead, it returns an Authorities section with an SOA.
  • The SOA record is hard-coded (e.g. Serial is 2020090400) with the exception of the NS record, which is set to the queried hostname (e.g. dig big.apple.com @localhost would have an SOA with an NS record of big.apple.com..
  • The NS, MX records are hard-coded.
  • There are no TXT records, or SRV. If those records (or any other unknown ones) are queried, the server returns no Answers but an Authorities section with the SOA

To run the unit tests:

cd src
go get github.com/onsi/ginkgo/ginkgo
go get github.com/onsi/gomega/...
ginkgo -r .

To run the server on, say, a Mac, you must first start the server:

cd src
go run main.go

And then, in another window, run a query, e.g.:

dig +short 127.0.0.1.sslip.io @localhost

Which will return the expected IP address:

127.0.0.1

You will also see a log message in the server window, something similar to the following:

2020/11/22 03:45:44 ::1.62302 TypeA 127.0.0.1.sslip.io. ? 127.0.0.1
Description
基于 Golang 的 DNS 服务器,它将带有嵌入式 IP 地址的 DNS 记录映射到这些地址。
Readme Apache-2.0 2.8 MiB
Languages
Go 81%
HTML 14.2%
Ruby 2.6%
Dockerfile 1.8%
Shell 0.4%