Hide Forgot
Description of problem: virsh net-edit should check commas in DNS TXT record name. Version-Release number of selected component (if applicable): libvirt-1.2.8-5.el7.x86_64 How reproducible: 100% Steps to Reproduce: [root@localhost ~]# firefox file:///usr/share/doc/libvirt-docs-1.2.8/html/formatnetwork.html#elementsAddress ... dns txt ...names cannot contain embedded spaces or commas. [root@localhost dnsmasq]# virsh net-edit default error: prohibited space character in DNS TXT record name 'example redhat' of network default Failed. Try again? [y,n,f,?]: Network default XML configuration edited. [root@localhost dnsmasq]# virsh net-dumpxml default <network> <name>default</name> <uuid>31662273-8ae2-4443-85f0-6f46000e95fa</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:93a:52'/> <dns> <forwarder addr='8.8.4.4'/> <txt name='example,redhat' value='test'/> </dns> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network> Actual results: As description. Expect result: virsh net-edit should also check commas in DNS TXT record name.
Patch proposed upstream: https://www.redhat.com/archives/libvir-list/2015-February/msg00875.html
And moving to POST: commit 39df9d2f12829a8f1e50d78d5952ba367d6c3343 Author: Michal Privoznik <mprivozn> AuthorDate: Mon Feb 23 13:19:16 2015 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Tue Feb 24 10:07:47 2015 +0100 network_conf: Forbid commas in DNS TXT https://bugzilla.redhat.com/show_bug.cgi?id=1151942 While the restriction doesn't have origin in any RFC, it matters to us while constructing the dnsmasq config file (or command line previously). For better picture, this is how the corresponding part of network XML look like: <dns> <forwarder addr='8.8.4.4'/> <txt name='example' value='example value'/> </dns> And this is how the config file looks like then: server=8.8.4.4 txt-record=example,example value Now we can see why there can't be any commas in the TXT name. They are used by dnsmasq to separate @name and @value. Funny, we have it in the documentation, but the code (which was pushed back in 2011) didn't reflect that. Signed-off-by: Michal Privoznik <mprivozn> v1.2.13-rc1-1-g39df9d2
Verify it as follows.The result is expected. Move its status to VERIFIED. # rpm -q libvirt libvirt-1.2.14-1.el7.x86_64 # virsh net-edit default <network ipv6='yes'> <name>default</name> <uuid>771dc61a-0632-4ab3-b2cb-d1dc8fe5029c</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0' macTableManager='libvirt'/> <mac address='52:54:00:7b:90:55'/> <dns> <forwarder addr='8.8.4.4'/> <txt name='example,redhat' value='redhat,test'/> </dns> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network> ~ error: prohibited character in DNS TXT record name 'example,redhat' of network default Failed. Try again? [y,n,f,?]: # virsh net-edit default <network ipv6='yes'> <name>default</name> <uuid>771dc61a-0632-4ab3-b2cb-d1dc8fe5029c</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0' macTableManager='libvirt'/> <mac address='52:54:00:7b:90:55'/> <dns> <forwarder addr='8.8.4.4'/> <txt name='example ' value='redhat,test'/> </dns> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network> error: prohibited character in DNS TXT record name 'example ' of network default Failed. Try again? [y,n,f,?]:
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-2202.html