... | @@ -74,8 +74,9 @@ has practical advantages, too, e.g. fields of different RR types can |
... | @@ -74,8 +74,9 @@ has practical advantages, too, e.g. fields of different RR types can |
|
have teh same names without causing a conflict.
|
|
have teh same names without causing a conflict.
|
|
|
|
|
|
The data model also includes semantic constraints that RDATA have to
|
|
The data model also includes semantic constraints that RDATA have to
|
|
satisfy. For example, a configuration will not pass validation if SEP
|
|
satisfy. For example, [dns-zones][] module contains a [must][]
|
|
flag in a DNSKEY RR is set but ZONE flag isn't.
|
|
statement for the DNSKEY RR that requires ZONE flag to be set if SEP
|
|
|
|
flag is set.
|
|
|
|
|
|
## Field Values
|
|
## Field Values
|
|
|
|
|
... | @@ -89,7 +90,7 @@ On the other hand, it was impossible to use the standard |
... | @@ -89,7 +90,7 @@ On the other hand, it was impossible to use the standard |
|
`inet:domain-name` type (also defined in [RFC 6991][]) because it is
|
|
`inet:domain-name` type (also defined in [RFC 6991][]) because it is
|
|
essentially limited to host names, so wildcards and CIDR-style reverse
|
|
essentially limited to host names, so wildcards and CIDR-style reverse
|
|
domain names would be rejected. That's why [dns-zones][] module
|
|
domain names would be rejected. That's why [dns-zones][] module
|
|
defines a new `domain-name` type.
|
|
defines a new [domain-name][] type.
|
|
|
|
|
|
RDATA fields encoding (IANA) enumerations always use mnemonic strings
|
|
RDATA fields encoding (IANA) enumerations always use mnemonic strings
|
|
rather than assigned numeric values. Similarly, RDATA fields
|
|
rather than assigned numeric values. Similarly, RDATA fields
|
... | @@ -109,19 +110,20 @@ Binary fields such as digital keys, signatures or digests are encoded |
... | @@ -109,19 +110,20 @@ Binary fields such as digital keys, signatures or digests are encoded |
|
using the presentation format defined in a corresponding RFC. If the
|
|
using the presentation format defined in a corresponding RFC. If the
|
|
encoding is *base64*, then the built-in type *binary* is used. For
|
|
encoding is *base64*, then the built-in type *binary* is used. For
|
|
other encodings (*base32*, hexadecimal digits) the [dns-zones][]
|
|
other encodings (*base32*, hexadecimal digits) the [dns-zones][]
|
|
module defines a custom type.
|
|
module defines custom types.
|
|
|
|
|
|
Presentation formats of binary fields often allow whitespace so that
|
|
Presentation formats of binary fields often allow whitespace so that
|
|
long strings can be broken into multiple lines in a master file. YANG
|
|
long strings can be broken into multiple lines in a master file. YANG
|
|
data types used for such fields **never** allow any whitespace because
|
|
data types used for such fields **never** allow any whitespace because
|
|
it's not needed.
|
|
it's not needed in the configuration.
|
|
|
|
|
|
[Daley et al.]: https://www.ietf.org/archive/id/draft-daley-dnsxml-00.txt
|
|
[Daley et al.]: https://www.ietf.org/archive/id/draft-daley-dnsxml-00.txt
|
|
[iana-dns-parameters]:
|
|
[iana-dns-parameters]: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/iana-dns-parameters.yang
|
|
https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/iana-dns-parameters.yang
|
|
|
|
[dns-zones]: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/dns-zones.yang
|
|
[dns-zones]: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/dns-zones.yang
|
|
[data tree]: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/raw/master/model.tree
|
|
[data tree]: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/raw/master/model.tree
|
|
[RFC 2181]: https://tools.ietf.org/html/rfc2181
|
|
[RFC 2181]: https://tools.ietf.org/html/rfc2181
|
|
[RFC 6020]: https://tools.ietf.org/html/rfc6020
|
|
[RFC 6020]: https://tools.ietf.org/html/rfc6020
|
|
[RFC 6991]: https://tools.ietf.org/html/rfc6991
|
|
[RFC 6991]: https://tools.ietf.org/html/rfc6991
|
|
[ordered-by]: https://tools.ietf.org/html/rfc6020#section-7.7.5
|
|
[ordered-by]: https://tools.ietf.org/html/rfc6020#section-7.7.5
|
|
|
|
[domain-name]: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/dns-zones.yang#L43
|
|
|
|
[must]: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/dns-zones.yang#L611 |