1

CentOS 5.x | SendMail

I have a SendMail server configured to smarthost to a FQDN (for the purpose of discussion, let's call it group.example.com). group.example.com originally had two A records associated with it: 1.1.1.1 and 2.2.2.2. Under this scenario, it would usually send email evenly to both servers.

I've recently added a third A record to the same FQDN: 3.3.3.3. What's strange is that I'm not seeing any traffic ever going to 3.3.3.3

My questions are:

1) Does SendMail cache DNS records? If so, how can this be flushed?

2) How does sendmail (or the native dns resolver if it's just CentOS) evaluate which of the 3 A records to use?

2 Answers 2

2

I don't have an authoritative answer, but generally if something is caching DNS records it will probably respect the TTL associated with the record. The native resolver will generally return DNS records in the order returned from your nameserver, and most nameservers will rotate multiple entries for a single resource. For example:

$ host group.example.com
group.example.com has address 192.168.1.1
group.example.com has address 192.168.1.2
group.example.com has address 192.168.1.3

$ host group.example.com
group.example.com has address 192.168.1.3
group.example.com has address 192.168.1.1
group.example.com has address 192.168.1.2

Applications will generally use the first result (although this isn't a given; some applications may choose a random result from the list).

1
  • Bingo. That was it. The third host was never coming back as the top spot in the DNS query results. Thank you!
    – Mike B
    Aug 22, 2012 at 17:05
3

Apart from the TTL stuff mentioned by larsks, there is also SMTP connection caching that adds to the phenomenon. From the bat book I copy:

When sendmail caches a connection, it connects to the host and transmits the mail message as usual. But instead of closing the connection, it keeps the connection open so that it can transmit additional mail messages without the additional overhead of opening and closing the connection each time. The ConnectionCacheSize option of V8 sendmail specifies that open connections to other hosts should be maintained, and it specifies the maximum number of those connections.

4
  • Interesting! So in theory, a busy server with a steady stream of messages would tend to use the same server because it would leave the connection open? Does the bat book say what the default cache limit is? I'm also confused on why it's a "size" related option and not a "time" related thing.
    – Mike B
    Aug 17, 2012 at 20:48
  • Actually there are two options: ConnectionCacheSize and ConnectionCacheTimeout. You do not want the size to be larger than 4, for you will need to increase the file open descriptors maximum on the system.
    – adamo
    Aug 17, 2012 at 21:05
  • Hmm... So if that was the case, restarting the sendmail service would terminate any open lingering connections right?
    – Mike B
    Aug 17, 2012 at 23:47
  • 1
    Yes. Restarting as in service sendmail stop followed by service sendmail start. A kill -HUP would not do that.
    – adamo
    Aug 18, 2012 at 14:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .