The Contrail vrouter supports DNS services, and the default mode is to resolve DNS queries from VMs based on the DNS configuration in the compute node. When the compute node receives a response, it sends the response back to the VM. However, when MX-type DNS queries are sent, the connection times out and the queries fail (see Default DNS Server ).
This article explains the reason for these queries to fail and indicates what can be done to resolve the issue.
On a VM hosted by a compute node running Contrail 3.2.6, if users try to run " dig MX list.customer.com @32.68.130.1 " from the VM, where 32.68.130.1 is the gateway address of the VN, the command output shows a connection timeout.
dig MX list.customer.com @32.68.130.1
When checking for the packet on both the tap interface and the underlay interface, the DNS queries can be seen on the tap interface but not on the underlay interface.
Note: All MX-type queries will fail. However, if the MX type is not specified, the query will succeed.
~ [64]$ dig MX list.customer.com @32.68.130.1 ; <<>> DiG 9.10.3-P4-Ubuntu <<>> MX list.customer.com @32.68.130.1 ;; global options: +cmd ;; connection timed out; no servers could be reached ~ [65]$ dig list.customer.com @32.68.130.1 ; <<>> DiG 9.10.3-P4-Ubuntu <<>> list.customer.com @32.68.130.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 52948 ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;list.customer.com. IN A ;; Query time: 413 msec ;; SERVER: 32.68.130.1#53(32.68.130.1) ;; WHEN: Fri Aug 02 01:51:05 UTC 2019 ;; MSG SIZE rcvd: 30
In Contrail vrouter versions prior to 3.2.10, boost UDP resolver is used to handle DNS queries that are received from VMs. This resolver has only basic functionality and does not support all types of records.
From Contrail 3.2.10, the BindUtil resolver is used for default DNS mode, which supports MX-type records.
This issue has been resolved in Contrail 3.2.10. However, no known workaround exists for this issue.