Solved

How can I have Postfix use /etc/hosts before doing a DNS lookup?

Posted on 2008-10-01
11
1,774 Views
Last Modified: 2013-11-10
I have in /etc/hosts:
10.0.0.9  burritos burritos.domain.com

If I ping burritos.domain.com I get 10.0.0.9. I can also telnet burritos 25 and I can deliver mail through mail from, rcpt to, data commands.

I have Postfix configured to deliver mail for @domain.com locally, but it forwards mail for @burritos.domain.com to server burritos.

The problem is Postfix does a DNS lookup regardless. It does not look into /etc/hosts. I don't have an A record for burritos.domain.com because I want it to only receive mail internally. I don't run a DNS server internally (which could obviously fix the problem, but is more complication than I'd like.)

/etc/host.conf says:
order hosts,bind
multi on
nospoof on
spoofalert on

I don't want to disable DNS lookups entirely. I just want for Postfix to check /etc/hosts first. Is that possible?

Thanks!
0
Comment
Question by:omniumnetworking
  • 4
  • 3
  • 2
  • +1
11 Comments
 
LVL 40

Expert Comment

by:omarfarid
ID: 22620011
check /etc/nsswitch.conf and look for a line similar to

hosts:      files dns

which should check /etc/hosts first then dns
0
 
LVL 6

Expert Comment

by:dathho
ID: 22620012
edit your /etc/nsswitch.conf file

change this line
hosts:      dns nis files

put files first
0
 
LVL 6

Expert Comment

by:dathho
ID: 22620017
omarfarid:  good timing :-)
0
 
LVL 40

Expert Comment

by:omarfarid
ID: 22620029
same minute :)
0
 
LVL 6

Expert Comment

by:dathho
ID: 22620120
:) same answer
0
Will my email signature work in Office 365?

You've built an email signature using raw HTML code in Office 365, but you can't review how it looks with Transport Rules. So you have to test it over and over again before it can be used. Isn't this a bit of a waste of your time? Wouldn't a WYSIWYG editor make it a lot easier?

 
LVL 19

Expert Comment

by:bevhost
ID: 22621050
Why not just have the transport table use the IP address instead of a name:
eg:

burritos.domain.com    smtp:[10.0.0.9]

Then you don't need to mess with the name resolution on your machine.
0
 

Author Comment

by:omniumnetworking
ID: 22625391
My /etc/nsswitch.conf already contains:
hosts:          files nis dns

I had checked that too.

I don't have anything on my transport table, so you'd have to be more specific.

Thanks!
0
 
LVL 19

Accepted Solution

by:
bevhost earned 500 total points
ID: 22629885
http://www.postfix.org/transport.5.html

Basically there is a file /etc/postfix/transport which contains a list of domain anmes and where the mail for thos domains should be routed to.  This routing table overrides and DNS settings.

burritos.domain.com    smtp:[10.0.0.9]

The [] brakets around the name tells the smtpd process not to try to look up the MX record for the target.
eg
example.com    smtp:server1.com
means send mail for example.com to the MX record for server1.com
example.com    smtp:[server1.com]
means send mail for example.com to the A record for server.com
example.com    smtp:[1.2.3.4]
means send mail for example.com to server at 1.2.3.4

if you change the transport file you must
# postmap transport
# postfix reload

If you receive mail from external sources and you want to relay to transport destinations then you also need this in your main.cf file

relay_domains = $transport_maps

for the transport file to do anything you need this in your main.cf

transport_maps = hash:/etc/postfix/transport

0
 
LVL 19

Expert Comment

by:bevhost
ID: 22629892
on re-reading that I notice a few typos, but you get the idea (I hope)
0
 
LVL 19

Expert Comment

by:bevhost
ID: 22629905
For anyone reading this question who has sendmail instead of postfix,
The transport file is called /etc/mail/mailertable
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Junk folder 23 143
Tick mark is not visible on the shared mailbox - when the job is completed and marked as complete 8 63
php mail headers 2 40
Computers Wont Join Domain 5 51
Import PST to Exchange using Power Shell new-mailboximportrequest command, you can simply import the PST file into Exchange mailbox or archived. To know How to import PST into Exchange  2013 read the complete article.
Resolve Outlook connectivity issues after moving mailbox to new Exchange 2016 server
In this video we show how to create a Distribution Group in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >>…
In this video we show how to create a Resource Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: Navigate to the Recipients >> Resources tab.: "Recipients" is our default selection …

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now