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
- DNS lookup tools
- Package managers