Jbond1967-Notes

Beginner's Tips, or "Things I have learned while working on Zimbra Installations"

 * 3/6/10 Initial Page Creation

DNS A and MX Records

A mail server requires both an A record and an MX record. Editing these records, while not difficult, needs to be done with great care as you can do a lot of damage if you don't know what you're doing. An A record associates the server name with an IP address. An MX record lets the world know the mail servers associated with a domain.

Every hosting provider has instructions on how to manually edit DNS records, although I recommend calling your provider's tech support line and having them walk you through how to do it properly.

The Zimbra installation script REQUIRES that a new server's MX and A records be accessible during the installation. Failure to ensure proper DNS entries will, quite simply, cause the installation to fail.

Note: once you have made changes to DNS records, you will have to wait up to 48 hours for the changes to propagate across the Internet. In my experience, the changes usually occur within a few hours.

DNS troubleshooting (LINUX)

If you want to see if your DNS records have been updated, there are several tools to help you verify if the changes have propagated. Personally, I use ping, dig, and nslookup. Each command will give you DNS information if used properly. I'm using google for the examples below. Substitute your server name as appropriate.


ping

If you merely want to know if your hostname has an A record, try pinging the fully qualified domain name (Substitute your server name):

> ping www.google.com

Sample output:

64 bytes from vw-in-f105.1e100.net (74.125.113.105): icmp_seq=1 ttl=52 time=12.7 ms

Note that the ping returns an IP address. This should be the address you entered in the A record for your server.


nslookup

If you want more information, try nslookup, which is installed by default in most Linux distributions. From the command line:

> nslookup www.google.com

Sample output:

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 74.125.113.99
Name:   www.l.google.com
Address: 74.125.113.105
Name:   www.l.google.com
Address: 74.125.113.103
Name:   www.l.google.com
Address: 74.125.113.147
Name:   www.l.google.com
Address: 74.125.113.104
Name:   www.l.google.com
Address: 74.125.113.106

Google has a lot of servers, your nslookup will probably return a single address of the form:

> nslookup hamster.com

Sample output:

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   hamster.com
Address: 123.456.789.1

The "Server" and "Address" fields in the first block usually reference your ISP's name server. The "Name" and "Address" fields in the second block are your server.

You can also use nslookup to check your mx records. This requires that you enter three commands at the command line:

> nslookup
> set type=mx
> google.com

Sample output:

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
google.com      mail exchanger = 10 aspmx.l.google.com.
google.com      mail exchanger = 40 alt3.aspmx.l.google.com.
google.com      mail exchanger = 20 alt1.aspmx.l.google.com.
google.com      mail exchanger = 30 alt2.aspmx.l.google.com.
google.com      mail exchanger = 50 alt4.aspmx.l.google.com.

You can have as many MX records as you want. The number after "mail exchanger = " is a priority number telling the world that you want them to try the highest priority (lowest number) server first.


dig

Finally, you can use the dig command. I prefer dig, but it isn't always installed by default. Consult the package manager help for your Linux distribution for installation instructions.

To use dig, type at the command line:

> dig www.google.com

Sample output:

; <<>> DiG 9.7.0-P1 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46678
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 0 

;; QUESTION SECTION:
;www.google.com.                        IN      A

;; ANSWER SECTION:
www.google.com.         86399   IN      CNAME   www.l.google.com.
www.l.google.com.       299     IN      A       74.125.113.104
www.l.google.com.       299     IN      A       74.125.113.147
www.l.google.com.       299     IN      A       74.125.113.103
www.l.google.com.       299     IN      A       74.125.113.106
www.l.google.com.       299     IN      A       74.125.113.105
www.l.google.com.       299     IN      A       74.125.113.99 

;; Query time: 53 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Apr  6 13:15:25 2011
;; MSG SIZE  rcvd: 148

dig returns IP addresses associated with server names, just like nslookup.

If you want to look at MX records for a domain, type just the domain name, not the server name:

> dig google.com mx

Sample output:

; <<>> DiG 9.7.0-P1 <<>> google.com mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11063
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      MX

;; ANSWER SECTION:
google.com.             600     IN      MX      30 alt2.aspmx.l.google.com.
google.com.             600     IN      MX      40 alt3.aspmx.l.google.com.
google.com.             600     IN      MX      50 alt4.aspmx.l.google.com.
google.com.             600     IN      MX      20 alt1.aspmx.l.google.com.
google.com.             600     IN      MX      10 aspmx.l.google.com.
;; Query time: 53 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Apr  6 13:17:59 2011
;; MSG SIZE  rcvd: 136


External links

Jump to: navigation, search