Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Postfix Documentation
Previous Page Home Next Page

IPv6 Support for unsupported platforms

Getting Postfix IPv6 working on other platforms involves the following steps:

  • Specify how Postfix should find the local network interfaces. Postfix needs this information to avoid mailer loops and to find out if mail for user@[ipaddress] is a local or remote destination.

    If your system has the getifaddrs() routine then add the following to your platform-specific section in src/util/sys_defs.h:

    #ifndef NO_IPV6
    # define HAS_IPV6
    # define HAVE_GETIFADDRS
    #endif
    

    Otherwise, if your system has the SIOCGLIF ioctl() command in /usr/include/*/*.h, add the following to your platform-specific section in src/util/sys_defs.h:

    #ifndef NO_IPV6
    # define HAS_IPV6
    # define HAS_SIOCGLIF
    #endif
    

    Otherwise, Postfix will have to use the old SIOCGIF commands and get along with reduced IPv6 functionality (it won't be able to figure out your IPv6 netmasks, which are needed for " mynetworks_style = subnet". Add this to your platform-specific section in src/util/sys_defs.h:

    #ifndef NO_IPV6
    # define HAS_IPV6
    #endif
    
  • Test if Postfix can figure out its interface information.

    After compiling Postfix in the usual manner, step into the src/util directory and type "make inet_addr_local". Running this file by hand should produce all the interface addresses and network masks, for example:

    % make
    % cd src/util
    % make inet_addr_local
    [... some messages ...]
    % ./inet_addr_local
    [... some messages ...]
    ./inet_addr_local: inet_addr_local: configured 2 IPv4 addresses
    ./inet_addr_local: inet_addr_local: configured 4 IPv6 addresses
    168.100.189.2/255.255.255.224
    127.0.0.1/255.0.0.0
    fe80:1::2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
    2001:240:587:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
    fe80:5::1/ffff:ffff:ffff:ffff::
    ::1/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
    

    The above is for an old FreeBSD machine. Other systems produce slightly different results, but you get the idea.

If none of all this produces a usable result, send email to the [email protected] mailing list and we'll try to help you through this.

Postfix Documentation
Previous Page Home Next Page