Test RHINE servers in SCIONLAB
There are now two authoritative scion-coredns RHINE test servers running in SCIONLab under 19-ffaa:1:fe4,127.0.0.1 (port 53) and under 17-ffaa:1:1008,127.0.0.1 (also port 53) respectively.
Resolver config
To make use of these name servers from within a SCIONLab user AS, scion-sdns can be configured as a recursive resolver for that AS.
The config.yml file for scion-sdns needs at least the following:
# Address to bind to for the DNS server
bind = "0.0.0.0:53"
# Enable SCION
scion = true
# RHINE certificate to validate RRs with
cacertificatefile = "/path/to/CACert.pem"
# Root zone SCION servers
rootscionservers = [
"17-ffaa:1:1008,127.0.0.1:53",
"19-ffaa:1:fe4,127.0.0.1:53"
]
# What kind of information should be logged, Log verbosity level [crit,error,warn,info,debug]
loglevel = "debug"
# List of locations to recursively read blocklists from (warning, every file found is assumed to be a hosts-file or domain list)
blocklistdir = "bl"
# Which clients allowed to make queries
accesslist = [
"0.0.0.0/0",
"::0/0"
]
The certificatefile field should point to a local copy of the current SCIONLab RHINE root certificate (valid until August 2023).
Note: For scion-sdns to be able to listen on port 53, it might be necessary to systemctl stop [systemd-resolved.service](https://systemd.network/systemd-resolved.service.html). This may in turn impact regular DNS name resolution on the host.
Change the nameserver entry in /etc/resolv.conf to the IP address of the scion-sdns recursive resolver. A typical SCIONLab user AS runs on just a single host, on which the resolver should be deployed as well. In that case, /etc/resolv.conf should simply point to localhost:
nameserver 127.0.0.1
At this point, you can use a tool like dig to test whether you have set up everything correctly.
dig TXT rhine.ovgu.scionlab. should return something like the following
; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> TXT rhine.ovgu.scionlab.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15949
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 4
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 90b162220becaac8a2bf27fc8d760f847ba959d9c13042041a71f42b7d1efa9d8fbb753f2b4edd0f (good)
;; QUESTION SECTION:
;rhine.ovgu.scionlab. IN TXT
;; ANSWER SECTION:
rhine.ovgu.scionlab. 3600 IN TXT "scion=19-ffaa:1:fe4,127.0.0.1"
rhine.ovgu.scionlab. 3600 IN RRSIG TXT 13 3 3600 20221202042358 20221026180019 60887 . W3jQyDw2l1KkMF7QfB9AvvRjX+dZYEWLmlThiCFWfYMs6UcnF14uEGqb iDiPQHTFt3Uy8yS12SBJySuMjuHN6A==
;; ADDITIONAL SECTION:
. 604800 IN DNSKEY 257 3 13 cs4c2okGJCcuRcLFbQhSfd9EuoLGPCVGyxEGpW9xKtg1s5c81mhURajH GYHHRfRK7/OOdu37xEkDgzKPDxQfyg==
_rhinecert. 604800 IN TXT "rhineCert Ed25519 MIIBBzCBuqADAgECAgEBMAUGAytlcDAbMRkwFwYDVQQDExBSSElORSBFWEFNUExFIENBMB4XDTIyMDkwNzE2NTQwOVoXDTIzMDgyOTE2NTQwOVowGzEZMBcGA1UEAxMQUkhJTkUgRVhBTVBMRSBDQTAqMAUGAytlcAMhAOyCUoevfoatTpp0xZ3SQ1i3KqzrlSo6LeKFbG7CgCfGoyMwITAOBgNVHQ8BAf8EBAMCAoQwD" "wYDVR0TAQH/BAUwAwEB/zAFBgMrZXADQQDAP8Qut5bRjbbU11yg5oAgn/oJKeQvXYtwOPy7xIlAkbGDHwmLjlFpyizzwsYKcDrlNgGXoeD4J47ucAJFkioB"
. 604800 IN RRSIG DNSKEY 15 0 604800 20221202042358 20221026180019 9991 . kepAcFiomVlywj1H4L42Fn05+6I1MowOXDR8TBJs/XE9DqOR74uBA7Fu AQlHl4QpPX5lCokyl0rSQpRGXqJ0CQ==
;; Query time: 442 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Nov 01 14:55:39 UTC 2022
;; MSG SIZE rcvd: 800
DNS-enabled SCION apps
With the merging of PR #230, the DNS-enabled SCION apps can now directly be built from the upstream repository via make -j build.
Service Names
A few public services are available under their domain names in SCIONLab. For example, try the following:
scion-sensorfetcher -s sensorserver.ethz.scionlab:42003scion-bat HEAD https://netsys.ovgu.de(this should even work without a workingscion-sdnsdeployment, because thenetsys.ovgu.dedomain has a “real” DNS TXT record with its scion address too)
Bandwidth Test Servers
There are Bandwidth Testers available under the following DNS names:
bwtester.frankfurt.aws.scionlabbwtester.ireland.aws.scionlabbwtester.virginia.aws.scionlabbwtester.ohio.aws.scionlabbwtester.oregon.aws.scionlabbwtester.singapore.aws.scionlabbwtester1.ethz.scionlabbwtester2.ethz.scionlabbwtester3.ethz.scionlabbwtester.ap.ethz.scionlabbwtester1.switch.scionlabbwtester2.switch.scionlabbwtester.valencia.eu.scionlabbwtester.daejeon.korea.scionlabbwtester.ku.korea.scionlab
They are all reachable under port 30100. You will need to specify the parameters for each bandwidth experiment. For demonstration purposes, something like the following might suffice:
scion-bwtestclient -s bwtester.frankfurt.aws.scionlab:30100 -cs 1,1000,125,1Mbps -sc 1,1000,125,1Mbps
Troubleshooting
If you get the following error:
2022/09/07 16:49:31 host not found: 'bwtester.frankfurt.aws.scionlab'
There are several possible causes:
- You might be using an “old”
scion-bwtestclientbinary that is already installed on the host. Check ifdig TXT bwtester.frankfurt.aws.scionlab.returns aTXTrecord with ascionentry like in the example above. If that works fine, yourscion-bwtestclientbinary does not yet support DNS. - Your
scion-sdnsversion is not running or misconfigured. Check its debug output. - The experimental autoritative name servers are both offline. Check if either of them can be reached under their addresses via
scion ping "19-ffaa:1:fe4,127.0.0.1"andscion ping 17-ffaa:1:1008,[127.0.0.1]respectively.
If you get the following error:
2022/09/19 16:57:52 no path to 19-ffaa:1:140
There are two possibilities:
- The service might be offline
- Your scion host has no connection to SCIONLab