Hi Anand, Anand Buddhdev wrote:
On 21/08/2012 10:28, Wilfried Woeber, UniVie/ACOnet wrote:
Hi Peter, Wilfried,
Well, I guess it takes Anand to describe the motivations for the changes, but from a SW point of view, it might be a tad more "beautiful" to move away from lists in the tag:value pairs. this *might* make parsing cleaner.
Simple attribute:value pairs are indeed easier to parse in code. At the moment, the syntax allows for lists in nserver: attributes, so a user could, in theory, submit something like this:
nserver: ns1.example.com # first name server 192.0.2.1 # IPv4 address of name server 2001:db8::1 # IPv6 address of name server ns2.example.com 192.0.2.2 2001:db8::2 # name server and glue together
I didn't even think about that possibility :-)
This is quite complex to parse, because the code has to deal with the comments and continuation lines, and then try to make sense of what is a name server and what is glue in that single line.
There are currently 599900 domain objects in the RIPE Database, of which only 18 use the list syntax in nserver attributes. We have to maintain extra code just to deal with these, so we would really like it if the syntax were restricted to simple attribute:value pairs.
This settles it for me.
OTOH, unless implicitely required by business rules or otherwise, I presume it would be allowed to submit
nserver: ns1.2.0.192.in-addr.arpa 192.0.2.1 nserver: ns2.2.0.192.in-addr.arpa 2001:db8::2 nserver: ns1.2.0.192.in-addr.arpa 2001:db8::1 nserver: ns2.2.0.192.in-addr.arpa 2001:db8::2
or any other permutations? Leading to complex value gathering code again...
Yes, this would of course be allowed. The code to handle these would simply transform each line into the following DNS records:
ns1.2.0.192.in-addr.arpa 172800 IN A 192.0.2.1 ns2.2.0.192.in-addr.arpa 172800 IN AAAA 2001:db8::2 ns1.2.0.192.in-addr.arpa 172800 IN AAAA 2001:db8::1 ns2.2.0.192.in-addr.arpa 172800 IN AAAA 2001:db8::2
ACK, I was making up complexity in my mind which isn't necessary.
In a DNS zone, the order of the records does not matter, and the DNS server into which this zone is loaded will handle it (duplicates would be discarded too). The code to turn such nserver attributes into DNS records is not at all complex.
It would appear more natural to me to list all IP addresses on a single line after the name server's name.
This does look more natural. However, we'd have to write code to expect the following:
nserver: ns1.example.com <addr1> <addr2> ... <addrN>
This is easier to parse than the current list syntax, but code would still have to transform this into appropriate records for delegation testing and eventual delegation.
We still prefer the simple syntax of:
nserver: name <optional address>
However, we're quite eager to hear from our users to see what they think.
Of course.
Regards,
Anand Buddhdev RIPE NCC
Wilfried (not wearing any hats, writing just as an LIR Manager)