Self sign-up has been disabled due to increased spam activity. If you want to get access, please send an email to a project owner (preferred) or at gitlab(at)nic(dot)cz. We apologize for the inconvenience.
Optimize network configuration for lower verbosity
When we look at a more complicated configuration, for example our ODVR, the network section is unnecessarily verbose. We should make it more concise...
Note: issue changed topic due to a developing discussion. The previous topic was recreated under #46 (moved)
Edited
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related.
Learn more.
According to the current model, the declarative configuration of ODVR looks like this.
Click to expand
---server:nsid:odvr.nic.czworkers:3watchdog:qname:nic.czqtype:Anetwork:interfaces:-listen:ip:127.0.0.1-listen:ip:::1-listen:ip:192.0.2.1-listen:ip:2001:db8::1# DNS over TLS, default port is 853-listen:ip:127.0.0.1kind:dot-listen:ip:::1kind:dot-listen:ip:192.0.2.1kind:dot-listen:ip:2001:db8::1kind:dot# DNS over HTTPS/2, default port is 443-listen:ip:127.0.0.1kind:doh-listen:ip:::1kind:doh-listen:ip:192.0.2.1kind:doh-listen:ip:2001:db8::1kind:dohtls:cert-file:/etc/ssl/nic-certs/odvr.nic.cz/odvr.nic.cz.chained.crtkey-file:/etc/ssl/nic-certs/odvr.nic.cz/odvr.nic.cz.keyoptions:prediction:truecache:size-max:500Mlogging:level:debugdnstap:unix-socket:/tmp/dnstap.socklog-queries:truelog-responses:truelog-tcp-rtt:truedebugging:assertion-abort:truemonitoring:statistics:true
I think the network/interfaces section is a bit unnecessarily complicated and it would be good to reduce it.
network:listen:-ip:127.0.0.1-ip:::1-ip:192.0.2.1-ip:2001:db8::1# DNS over TLS, default port is 853-ip:127.0.0.1kind:dot-ip:::1kind:dot-ip:192.0.2.1kind:dot-ip:2001:db8::1kind:dot# DNS over HTTPS/2, default port is 443-ip:127.0.0.1kind:doh-ip:::1kind:doh-ip:192.0.2.1kind:doh-ip:2001:db8::1kind:doh
example2
network:listen:-ip:[127.0.0.1,::1,192.0.2.1,2001:db8::1]# DNS over TLS, default port is 853-ip:[127.0.0.1,::1,192.0.2.1,2001:db8::1]kind:dot# DNS over HTTPS/2, default port is 443-ip:[127.0.0.1,::1,192.0.2.1,2001:db8::1]kind:doh
The anchor I wrote is just for the list of addresses. I am already using it locally with overridden ports, though your Draft MR has a little different schema. (Maybe I didn't get your meaning right.)
I find this interesting, as to me it seems likely to be relatively common use case to have a similar simple cartesian product between addresses and protocols (even just because v4+v6).
In your extreme approach, I see a problem with defining ports.
The extreme approach could only be used if the default port number for each kind is used.
In other cases, it is confusing and inconsistent in my opinion.
It might be possible to use a list of ports, but I already see this as extremely complicated.
To be clear, I didn't mean it as mandatory, only as extending the possibilities. You could still be more verbose and use multiple direct children of listen with each being "simpler", e.g. use exactly the same as example2.