Mail is
normally transported over networks with TCP/IP. At the IP layer,
packets are usually constructed to be point-to-point—from one
host to another. IP packets can also be constructed to contain
source-routing information—from one host, through a second,
then to a final host.
Although such source routing (when used) is generally legitimate, it
can also be used to generate fraudulent mail. V8.7 and above
sendmail attempts to extract source-routing
information from the initial connection's IP
information. If any is found, sendmail adds that
information to the $_ defined-macro ($_) for use in the Received:
header (Received:). The $_
defined-macro is usually used like this:
Received: from $s ($_) ...
where $_ will contain information such as the
following when IP source-routing information is found:
IP source-routing information
user@host.domain [!@hostC@hostB:hostA]
RFC1413 identd information
IP source-routing information is presented inside square brackets. If
routing is strict, the information is prefixed with an exclamation
mark. The format of the information is made to resemble that of
source-route addressing (see also the
DontPruneRoutes option, DontPruneRoutes). In this example the IP packets will go first
to hostC, then to hostB, and
finally to hostA.
The inclusion of code to support this reporting is determined by the
IP_SRCROUTE definition in your Build
m4 file:
APPENDDEF(`confENVDEF', `-DIP_SRCROUTE=1') turn on support
APPENDDEF(`confENVDEF', `-DIP_SRCROUTE=0') turn off support
It is predefined correctly for all supported systems in
sendmail/conf.h. If you wish to disable this,
you can. But, in general, you should need to redefine it only if you
are porting sendmail to a completely new system.
Be sure to read sendmail/README for the latest
information about IP_SRCROUTE.
If you are running a precompiled sendmail
binary, you can use the -d0.10 debugging
command-line switch (-d0.10) to determine if
IP_SRCROUTE support is defined (if it appears in the list, it is
defined).