Routers handle addresses whose domains are not local, and typically (though not necessarily) set up deliveries to remote hosts. The different routers use different methods to obtain a list of relevant hosts for the domain of the address they are handling. The hosts’ IP addresses must also be looked up. Some examples of the lookuphost and domainlist routers appear in previous chapters, but there are also other routers. In this chapter, we discuss each of the following in detail:
A router that routes remote domains using locally supplied information.
A router that handles “IP literal” addresses such as firstname.lastname@example.org. These are relics of the early Internet that are no longer in common use.
A router that looks up remote domains in the DNS.
A router that runs an external program in order to route a domain.
First, however, we cover some additional generic options that apply only to routers (and not to directors).
If a router times out while trying to look up an MX record or an IP address for
a host, it normally causes delivery of the address to be deferred. However, if
pass_on_timeout is set, the address is instead passed on to the next
no_more. This may be helpful for systems that are
intermittently connected to the Internet, or those that want to pass to a smart
host any messages that cannot be delivered immediately, as in this example:
lookuphost: driver = lookuphost transport ...