Avi Load Balancer supports text record (TXT) record and mail exchanger (MX) record. This section discusses the steps to configure them.
DNS virtual service on Avi Load Balancer primarily implements the following functionality:
DNS Load Balancing
Hosting Manual or Static DNS Entries
Virtual Service IP Address DNS Hosting
Hosting GSLB Service DNS Entries
Avi Load Balancer DNS can host manual static DNS entries. For a given FQDN, you can configure an A, AAAA, SRV, CNAME, or NS record to be returned.
TXT Record: This is used to store text-based information of the outside domain for the configured domain. This is useful in identifying ownership of a domain.
MX Record: This is used in mail delivery based on the configured domain. This is useful in redirecting email requests to the mail servers for a specified domain.
Configuring DNS TXT Record
Login to Avi Load Balancer CLI and use the static_dns_records
option from the configure virtualservice
mode to add a TXT record for the desired domain, as shown below:
[admin:controller]: > configure virtualservice VS-DNS [admin:controller]: virtualservice> static_dns_records New object being created [admin:controller]: virtualservice:static_dns_records> fqdn txtrec.acme.com [admin:controller]: virtualservice:static_dns_records> type dns_record_txt [admin:controller]: virtualservice:static_dns_records> txt_records New object being created [admin:controller]: virtualservice:static_dns_records:txt_records> text_str "favorite_protocol=DNS" [admin:controller]: virtualservice:static_dns_records:txt_records> save [admin:controller: virtualservice:static_dns_records> save [admin:controller]: virtualservice> save
In the above instance, the favorite-protocol=DNS text is used as a DNS TXT record for the domain txtrec.acme.com
.
Configuring DNS TXT Record with A or MX record
TXT record can be configured with any other existing record, for instance, A record, and MX record, with the same FQDN.
[admin:controller]: > configure virtualservice VS-DNS [admin:controller]: virtualservice> static_dns_records index 1 [admin:controller]: virtualservice:static_dns_records> [admin:controller]: virtualservice> static_dns_records index 1 [admin:controller]: virtualservice:static_dns_records> txt_records New object being created [admin:controller]: virtualservice:static_dns_records:txt_records> text_str "favorite_protocol=DNS" [admin:controller]: virtualservice:static_dns_records:txt_records> save [admin:controller]: virtualservice:static_dns_records> save [admin:controller]: virtualservice> save
Configured TXT record data now respond to the appropriate DNS query. Use the following dig
command to test the desired output.
aviuser@controller:~$ dig @10.140.135.22 txtrec.acme.com TXT ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @10.140.135.22 txtrec.acme.com TXT ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3327 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;txtrec.acme.com. IN TXT ;; ANSWER SECTION: txtrec.acme.com. 30 IN TXT "favorite_protocol=DNS" ;; Query time: 2 msec ;; SERVER: 10.140.135.22#53(10.140.135.22) ;; WHEN: Tue Feb 25 10:42:59 UTC 2020 ;; MSG SIZE rcvd: 66
Configuring DNS MX Record
For the MX record, a static DNS entry of type mx_records
is added to redirect email requests to the designated mail server. The host (m1.vmware.com) used in the below example is the FQDN for the designated mail server.
[admin:controller]: > configure virtualservice VS-DNS [admin:controller]: virtualservice> static_dns_records [admin:controller]: virtualservice> static_dns_records New object being created [admin:controller]: virtualservice:static_dns_records> fqdn txtrec.acme.com [admin:controller]: virtualservice:static_dns_records> type dns_record_mx [admin:controller]: virtualservice:static_dns_records> mx_records New object being created [admin:controller]: virtualservice:static_dns_records:mx_records> host m1.acme.com [admin:controller]: virtualservice:static_dns_records:mx_records> priority 10 [admin:controller]: virtualservice:static_dns_records:mx_records> save [admin:controller]: virtualservice:static_dns_records> save [admin:controller]: virtualservice> save
The value for the priority field can vary from 0-65535.
Configuring MX Record with other existing Record
Use the following configuration to enable the MX record for the existing A record. In the below example, the MX record for m.foo.com is added to the existing A Record (foo.com).
[admin:controller]: > configure virtualservice VS-DNS (INTEGER) Index of the Object (use where command to see index) [admin:controller]: virtualservice> static_dns_records index 2 [admin:controller]: virtualservice:static_dns_records> where Tenant: admin Cloud: Default-Cloud +-------------------------+---------------------------------+ | Field | Value | +-------------------------+---------------------------------+ | fqdn[1] | acme.com | | type | DNS_RECORD_A | | ip_address[1] | | | ip_address | 1.1.1.1 | | num_records_in_response | 0 | | algorithm | DNS_RECORD_RESPONSE_ROUND_ROBIN | | wildcard_match | False | | delegated | False | +-------------------------+---------------------------------+ [admin:controller]: virtualservice:static_dns_records> [admin:controller]: virtualservice:static_dns_records> mx_records New object being created [admin:controller]: virtualservice:static_dns_records:mx_records> host m.acme.com [admin:controller]: virtualservice:static_dns_records:mx_records> priority 12 dmin:naveen-cntrlr]: virtualservice:static_dns_records:mx_records> save sav[admin:controller]: virtualservice:static_dns_records> save [admin:controller]: virtualservice> save
DNS queries to the VIP must now serve the record data thus, configured.
aviuser@controller:~$ dig @10.140.135.22 txtrec.acme.com MX ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @10.140.135.22 txtrec.acme.com MX ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6518 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;txtrec.acme.com. IN MX ;; ANSWER SECTION: txtrec.acme.com. 30 IN MX 10 m1.acme.com. ;; Query time: 1 msec ;; SERVER: 10.140.135.22#53(10.140.135.22) ;; WHEN: Tue Feb 25 09:40:59 UTC 2020 ;; MSG SIZE rcvd: 72 aviuser@controller:~$