locked
Receive Connectors not working correctly - using random connectors. RRS feed

  • Question

  • I'm having a problem that I thought was DNS related, but I've since flushed the DNS.

    What happens is when I try to relay off a Hub server, it always tries to use any random Receive connector, even though my client is explicitly in the Relay connector list.

    When I telnet to the HT by hostname on 25, it opens a random receive connector. If I continue to /flush and telnet over and over, it cycles through all the connectors (default, Relay explicit and the others that block the connection).

    When I telnet directly to the IP of the Relay connector, it works perfectly.

    What would cause the server or client to not use the correct explicit connector all the time?

    • Edited by Mr. Cross Wednesday, August 27, 2014 6:04 PM Further testing and details.
    Wednesday, August 27, 2014 6:00 PM

Answers

  • It sounds like you have several receive connectors set to listen on All IPs instead of a specific IP.

    It doesn't really matter if you setup the remote IP ranges or not.  This is more of a security thing that prevents your connector from taking ANY anonymous traffic.  However, I DO recommend setting remote IPs.

    On the network settings, do not leave all the connectors to All IPv4/IPv6 Addresses.  Essentially, you've created several listeners that are the same and now you can't control which answers.

    If you've created this many listeners for a reason, then you should have a UNIQUE IP for each one.  This way, each listener is completely different and the HT will not have any issue deciding which connector is meant for use.

    Even with the HLB, you should have a Virtual IP that your clients use, and the HLB Pool should distribute to the 2 server/connector IPs.

    I hope this helps!


    - Chris Ream -

    **Remember, if you find a post that is helpful, or is the answer, please mark it appropriately.**

    • Marked as answer by Amy.Wang Thursday, September 4, 2014 8:37 AM
    Saturday, August 30, 2014 12:56 PM
  • My problem was the server has multiple IP addresses. Using the hostname of the server for SMTP Relay meant it would simply do a DNS lookup of the IP of the server. If it chose an IP for a receive connector I wasn't listed it, it wouldn't work...

    Short answer: You can't relay using a hostname of a server with multiple IPs unless you're listed on all of the Receive Connectors assigned to those IPs.

    • Marked as answer by Mr. Cross Friday, September 19, 2014 8:49 PM
    Friday, September 19, 2014 8:49 PM

All replies

  • What do you have setup?

    How many HT servers? Are they load balanced?  What Receive Connectors with remoteIP ranges do you have set?


    Cheers,

    Rhoderick

    Microsoft Senior Exchange PFE

    Blog: http://blogs.technet.com/rmilne  Twitter:   LinkedIn:   Facebook:   XING:

    Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    Wednesday, August 27, 2014 7:59 PM
  • It looks like you have multiple connectors with * address space with same weight, but different listening IP (or something different) so that both co-exist.

    You need to figure out which connector you need. If you are confused, change the weight of one from the existing to a higher value. This makes the lower weight one the default.


    TheUCGuy.Net

    Wednesday, August 27, 2014 8:15 PM
  • There are 2 HT servers.

    There is a HLB in place, but for my testing I am bypassing it.

    We have 9 Receive connectors on one server and 8 on the other (the extra on server A is for testing). The other 8 are duplicates (7 custom and 1 default per server)

    All Receive Connectors have remote IP ranges except the two Default (which are 0.0.0.0 - 255.255.255.255)

    The 7 Receive Connectors on server B have the same settings and remote IP ranges as the 7 on server A. I am only testing using server A hostname & IP. Server B should not be a factor here.


    • Edited by Mr. Cross Wednesday, August 27, 2014 8:19 PM
    Wednesday, August 27, 2014 8:17 PM
  • 7 receive connectors?

    Do you have more than one connector with * address space listening on the server A IP?

    If so, that is your issue.


    TheUCGuy.Net

    Wednesday, August 27, 2014 9:03 PM
  • When you test this - I'm assuming you are coming in from a specific remote IP. What RC should this be hitting?

    To troubleshoot this I like to change the banner on all of them so it says "Helo - Connector 1"  "Helo - Connector" or something else meaningful like this.

    Also enable verbose SMTP send receive logging on all receive connectors.  What's in there?


    Cheers,

    Rhoderick

    Microsoft Senior Exchange PFE

    Blog: http://blogs.technet.com/rmilne  Twitter:   LinkedIn:   Facebook:   XING:

    Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    Friday, August 29, 2014 12:32 PM
  • Each connector has a unique HELO response so I know which one is picking up.

    This IP I'm using to test from is only explicitly on Connector 4.

    There is only 1 connector with * (Default)

    What happens is, either it will answer with Connector 4 (correctly), or Default (which is also allowed, though it should never answer since the IP is explicit on 4), or one of the other connectors (which are not allowed, and the telnet connection is refused).

    I'm unsure where to start because I'm not sure where the logic/decision is made for which Receive Connector to pick up. That is, when my unique IP is explicitly added to Connector 4, what tells connector 4 to take this connection? Is this the responsibility of the connector itself? Or is it a service on the HT? Or some hidden Transport Agent function? Or something related to DNS/Exchange org level? Or something else I'm just unaware of?

    Friday, August 29, 2014 12:46 PM
  • Its part of the transport service.  I've never see this flop between two RC in 2007 or 2010 builds, or 2013 for that matter.

    Have you done a netmon trace and compare to the verbose logging to make sure IP stream is what you are expecting?  look at my blog for examples of automating netmon.


    Cheers,

    Rhoderick

    Microsoft Senior Exchange PFE

    Blog: http://blogs.technet.com/rmilne  Twitter:   LinkedIn:   Facebook:   XING:

    Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    Saturday, August 30, 2014 12:13 PM
  • It sounds like you have several receive connectors set to listen on All IPs instead of a specific IP.

    It doesn't really matter if you setup the remote IP ranges or not.  This is more of a security thing that prevents your connector from taking ANY anonymous traffic.  However, I DO recommend setting remote IPs.

    On the network settings, do not leave all the connectors to All IPv4/IPv6 Addresses.  Essentially, you've created several listeners that are the same and now you can't control which answers.

    If you've created this many listeners for a reason, then you should have a UNIQUE IP for each one.  This way, each listener is completely different and the HT will not have any issue deciding which connector is meant for use.

    Even with the HLB, you should have a Virtual IP that your clients use, and the HLB Pool should distribute to the 2 server/connector IPs.

    I hope this helps!


    - Chris Ream -

    **Remember, if you find a post that is helpful, or is the answer, please mark it appropriately.**

    • Marked as answer by Amy.Wang Thursday, September 4, 2014 8:37 AM
    Saturday, August 30, 2014 12:56 PM
  • It looks like you have multiple connectors with * address space with same weight, but different listening IP (or something different) so that both co-exist.

    You need to figure out which connector you need. If you are confused, change the weight of one from the existing to a higher value. This makes the lower weight one the default.


    TheUCGuy.Net

    Are you sure you aren't thinking of SEND connectors?  Receive connectors do not have cost or address spaces.

    - Chris Ream -

    **Remember, if you find a post that is helpful, or is the answer, please mark it appropriately.**

    Saturday, August 30, 2014 12:58 PM
  • 7 receive connectors?

    Do you have more than one connector with * address space listening on the server A IP?

    If so, that is your issue.


    TheUCGuy.Net

    Receive connectors do not have an address space.  Even the FQDN for the HELO does not interfere with the ability to receive and process mail.  This is not a root cause.

    - Chris Ream -

    **Remember, if you find a post that is helpful, or is the answer, please mark it appropriately.**

    Saturday, August 30, 2014 1:00 PM
  • My problem was the server has multiple IP addresses. Using the hostname of the server for SMTP Relay meant it would simply do a DNS lookup of the IP of the server. If it chose an IP for a receive connector I wasn't listed it, it wouldn't work...

    Short answer: You can't relay using a hostname of a server with multiple IPs unless you're listed on all of the Receive Connectors assigned to those IPs.

    • Marked as answer by Mr. Cross Friday, September 19, 2014 8:49 PM
    Friday, September 19, 2014 8:49 PM