Exchange Server Study (2-6). Connector selection in external message routing
이전 포스팅에 같이 다뤘어야 했는데, 페이지가 길어져서 분리하였습니다.
2022.02.15 - [Exchange] - Exchange Server Study (2-5). Mail routing
아래의 내용에 대해서 다루겠습니다.
Connector selection in external message routing | Microsoft Docs
Like previous versions of Exchange, Exchange Server 2016 and Exchange Server 2019 use connectors to deliver messages to external recipients (recipients that don't exist in the Exchange organization). Exchange uses Send connectors to route messages to external SMTP domains. If the external recipient isn't on an SMTP messaging system, Exchange uses Delivery Agent connectors or Foreign connectors. 이전 버전의 Exchange와 마찬가지로 Exchange Server 2016 및 Exchange Server 2019는 커넥터를 사용하여 외부 받는 사람(Exchange 조직에 없는 받는 사람)에게 메시지를 배달합니다. Exchange는 송신 커넥터를 사용하여 메시지를 외부 SMTP 도메인으로 라우팅합니다. 외부 받는 사람이 SMTP 메시징 시스템에 없는 경우 Exchange는 배달 에이전트 커넥터 또는 외부 커넥터를 사용합니다. |
- 일부 내용은 계속 반복적으로 언급되는 것 같습니다.
- Exchange Server 상에서 내부 통신만 이루어진다면, 송신커넥터는 별도로 생성할 필요가 없습니다. 조직 외부로 발송할 경우에만 송신 커넥터가 필요하다는 내용을 설명하고 있습니다.
1. Connector considerations in message routing (메시지 라우팅의 커넥터 고려 사항)
State (enabled or disabled)
Only enabled connectors are used in routing decisions. If a connector is disabled, it's not considered when routing messages. 활성화된 커넥터만 라우팅 결정에 사용됩니다. 커넥터가 비활성화되어 있으면 메시지를 라우팅할 때 고려되지 않습니다. |
Address space
The address spaces defines the destination domains or other address spaces that are serviced by the connector. When Exchange selects a connector for routing a message, it only considers connectors that have a matching address space. If more than one connector matches the destination address space, the connector with the more precise address match is selected. For example, suppose the recipient is julia@marketing.contoso.com, and separate Send connectors are configured for *, *.contoso.com and marketing.contoso.com. The order of connector preference based solely on the address space is: 1: marketing.contoso.com 2: *.contoso.com 3: * 주소 공간은 커넥터에서 서비스하는 대상 도메인 또는 기타 주소 공간을 정의합니다. Exchange는 메시지 라우팅을 위해 커넥터를 선택할 때 일치하는 주소 공간이 있는 커넥터만 고려합니다. 둘 이상의 커넥터가 대상 주소 공간과 일치하는 경우 주소 일치가 더 정확한 커넥터가 선택됩니다. 예를 들어 받는 사람이 julia@marketing.contoso.com이고 *, *.contoso.com 및 marketing.contoso.com에 대해 별도의 송신 커넥터가 구성되어 있다고 가정합니다. 주소 공간만을 기반으로 하는 커넥터 기본 설정의 순서는 다음과 같습니다. 1: marketing.contoso.com 2: *.contoso.com 3: * |
이 부분은 예시에 대한 이해가 정말 중요합니다. 하이브리드 구성 메일 흐름과도 연관되어 있습니다.
하이브리드 구성이 되어 있다면 다음과 같이 최소 2개 이상의 커넥터가 설정되어 있습니다.
아래의 Internet 커넥터의 경우 모든 도메인에 대한 발송을 담당합니다.
그리고 아래의 Outbound to Office 365 커넥터의 경우에는 kor5.mail.onmicrosoft.com 도메인으로 발송하는 경우 사용됩니다.
기술 자료에 설명되어 있듯이 kor5.mail.onmicrosoft.com 도메인으로 발송할 때, 다음과 같이 우선 순위로 커넥터가 동작하게 됩니다.
- Outbound to Office 365
- Internet
Address space type
By default, the address space type on a new Send connector is SMTP. If you specify a non-SMTP address space, the messages are still sent to the destination (a smart host) by using SMTP. You need to create a Delivery Agent connector or a Foreign connector to route non-SMTP messages to non-SMTP messaging servers without using SMTP. 기본적으로 새 송신 커넥터의 주소 공간 유형은 SMTP입니다. 비 SMTP 주소 공간을 지정하는 경우에도 메시지는 SMTP를 사용하여 대상(스마트 호스트)으로 계속 전송됩니다. SMTP를 사용하지 않고 비 SMTP 메시지를 비 SMTP 메시징 서버로 라우팅하려면 배달 에이전트 커넥터 또는 외부 커넥터를 만들어야 합니다. |
- 대부분은 SMTP 이므로 읽고 넘어가겠습니다.
Address space cost
You use the cost value on the address space for mail flow optimization and fault tolerance when the same address space is configured on multiple connectors. A lower cost value indicates a preferred connector. 동일한 주소 공간이 여러 커넥터에 구성된 경우 메일 흐름 최적화 및 내결함성을 위해 주소 공간의 비용 값을 사용합니다. 낮은 비용 값은 선호하는 커넥터를 나타냅니다. |
- 여기서 포인트는 동일한 Address space 입니다. 송신 커넥터를 여러개 사용하는 환경은 Address space 는 분리하기 때문에 cost가 감안하여 동작하는 경우는 적을 것으로 보입니다.
Source server
At least one Mailbox server or Edge Transport server must be configured to host the connector. You can configure multiple source servers to provide load balancing and fault tolerance for the address spaces that are defined on the connector. 커넥터를 호스팅하려면 하나 이상의 사서함 서버 또는 Edge 전송 서버를 구성해야 합니다. 커넥터에 정의된 주소 공간에 대한 부하 분산 및 내결함성을 제공하도록 여러 원본 서버를 구성할 수 있습니다. |
아래와 같이 Source Server를 1번서버만 지정한다면, 발송은 1번서버에서만 진행됩니다.
아래와 같이 발송한 뒤, 해더를 보면
아래와 같이 1번서버에서 발송되는 것을 확인할 수 있습니다.
Scope
The connector's scope controls its visibility within the Exchange organization. By default, connectors are visible to all the Exchange servers in the entire Active Directory forest. However, you can limit the scope of a connector so that it's only visible to other Exchange servers in the local Active Directory site. The connector is invisible to Exchange servers in other Active Directory sites, and isn't used in their routing decisions. A connector that's restricted in this way is said to be scoped. 커넥터의 범위는 Exchange 조직 내에서 커넥터의 가시성을 제어합니다. 기본적으로 커넥터는 전체 Active Directory 포리스트의 모든 Exchange 서버에서 볼 수 있습니다. 그러나 로컬 Active Directory 사이트의 다른 Exchange 서버에서만 볼 수 있도록 커넥터의 범위를 제한할 수 있습니다. 커넥터는 다른 Active Directory 사이트의 Exchange 서버에 표시되지 않으며 라우팅 결정에 사용되지 않습니다. 이러한 방식으로 제한된 커넥터를 범위 지정 이라고 합니다. |
- 이 설정이 사용되는 경우는 거의 없을 것으로 보입니다.
Message size limits
A message size restriction on a connector can eliminate the connector from selection if the message is larger than the maximum size that's allowed on the connector. 커넥터에 대한 메시지 크기 제한으로 인해 메시지가 커넥터에 허용된 최대 크기보다 큰 경우 커넥터가 선택에서 제외될 수 있습니다. |
- Message size, cost 값을 어떻게 설정하느냐에 따라서 메시지 크기가 큰 메시지는 특정 커넥터로 동작되도록 유도할 수 있습니다.
2. Selecting the connector for an external recipient (외부 수신자용 커넥터 선택)
For messages that are sent to external recipients, Exchange must select the best connector to route the message through. The decisions that are required to select this connector are described in the following list: 외부 받는 사람에게 보내는 메시지의 경우 Exchange는 메시지를 라우팅하는 데 가장 적합한 커넥터를 선택해야 합니다. 이 커넥터를 선택하는 데 필요한 결정은 다음 목록에 설명되어 있습니다. 1. Exchange eliminates all connectors that have a message size limit that's smaller than the size of the message. Exchange는 메시지 크기 제한이 메시지 크기보다 작은 모든 커넥터를 제거합니다. |
-> 이 의미는 메시지 크기가 10MB 인테 커넥터 제한이 8MB 로 설정되어 있다면, 그 커넥터는 배제한다 로 이해하였습니다.
확인을 위해서 A,B커넥터를 생성한 뒤, 모든 설정은 동일하지만 A 커넥터의 메시지 사이즈 제한은 5MB, B 커넥터는 35MB로 설정 한 뒤, 5MB를 초과하는 메일을 발송해 보았습니다.
<커넥터 생성>
<메일 발송>
<커넥터 로그 확인>
- 용량 제한으로 인하여 B 커넥터가 선택된 것을 확인할 수 있습니다.
2. Exchange narrows the list of remaining connectors to those that satisfy all of the following criteria: Exchange는 다음 기준을 모두 충족하는 커넥터로 나머지 커넥터 목록을 좁힙니다. The connector is scoped to another Exchange server in the local Active Directory site, or isn't scoped at all (is available to all Exchange in the Active Directory forest). 커넥터는 로컬 Active Directory 사이트의 다른 Exchange 서버로 범위가 지정되거나 범위가 전혀 지정되지 않습니다 (Active Directory 포리스트의 모든 Exchange에서 사용 가능). The connector is enabled. 커넥터가 활성화되었습니다. The connector is configured with an address space that matches the recipient's email address. 커넥터는 수신자의 이메일 주소와 일치하는 주소 공간으로 구성됩니다. |
번역을 보면 헷갈릴 수 있습니다.
저는 다음과 같이 이해하였습니다.
- 메일 흐름 상 Send Connector에서 적절하게 scoped 되어 있는 지 여부.
- Enabled 되어 있는지 여부
- 당연하겠지만 Enable 되어 있어야만 동작합니다
- Address space 가 이메일의 도메인과 일치하는지 여부
대표적으로 Hybrid 구성시나리오에서 확인할 수 있습니다
3. From the resulting list of connectors, Exchange selects the connector with the most specific address space match. If multiple connectors have the same address space specificity, Exchange uses the following criteria to select a connector: 결과 커넥터 목록에서 Exchange는 가장 구체적인 주소 공간이 일치하는 커넥터를 선택합니다. 여러 커넥터에 동일한 주소 공간 특성이 있는 경우 Exchange는 다음 기준을 사용하여 커넥터를 선택합니다. Aggregate cost: This is the sum of the cost that's assigned to all the IP site links between the source Active Directory site and the Active Directory site that contains the source servers for the connector, and the cost that's assigned to the address space on the connector (IP site link costs + connector cost). The connector with the lowest aggregate cost is selected. If multiple connectors have the same aggregate cost, the selection process continues to the next step. 총 비용 : 원본 Active Directory 사이트와 커넥터의 원본 서버가 포함된 Active Directory 사이트 간의 모든 IP 사이트 링크에 할당된 비용과 커넥터의 주소 공간에 할당된 비용의 합계입니다. (IP 사이트 링크 비용 + 커넥터 비용). 총 비용이 가장 낮은 커넥터가 선택됩니다. 여러 커넥터의 총 비용이 동일한 경우 선택 프로세스는 다음 단계로 계속됩니다. Hop count: The source server for the connector that can be reached in the least number of hops is selected. Typically, this means the general order of preference is: 홉 수 : 최소 홉 수로 도달할 수 있는 커넥터의 원본 서버가 선택됩니다. 일반적으로 이것은 일반적인 우선 순위가 다음과 같다는 것을 의미합니다. (1) The local Exchange server. 로컬 Exchange 서버. (2)An Exchange server in the same Active Directory site. 동일한 Active Directory 사이트에 있는 Exchange 서버. (3)An Exchange server in a remote Active Directory site. 원격 Active Directory 사이트의 Exchange 서버. If multiple connectors have the same hop count, the selection process continues to the next step. 여러 커넥터의 홉 수가 동일한 경우 선택 프로세스는 다음 단계로 계속됩니다. 커넥터 이름 : 둘 이상의 라우팅 경로에 동일한 총 비용 및 홉 수가 있는 경우 영숫자 값이 가장 낮은 이름을 가진 커넥터가 선택됩니다. Connector name: If more than one routing path has the same aggregate cost and hop count, the connector with the name that has the lowest alphanumeric value is selected. |
<커넥터 이름을 A, B로 생성한 뒤, 메시지 발송>
로그를 보면 A 커넥터를 선택하여 발송합니다.
3. Handling messages that can't be routed(라우팅할 수 없는 메시지 처리)
If no connector satisfies all of the selection criteria, one of the following actions occurs:
커넥터가 모든 선택 기준을 충족하지 않으면 다음 작업 중 하나가 발생합니다.
If there is no matching connector for an SMTP address space, the recipient is marked as unreachable and the message is routed to the Unreachable queue. For more information about the Unreachable queue, see Types of queues. SMTP 주소 공간에 일치하는 커넥터가 없으면 받는 사람이 연결할 수 없는 것으로 표시되고 메시지가 연결할 수 없는 대기열로 라우팅됩니다. 연결할 수 없는 대기열에 대한 자세한 내용은 대기열 유형 을 참조하십시오 . |
사실 대부분 환경에서 Address Space가 *로 지정된 커넥터가 최소 1개는 있을 것 입니다.
기술자료에 대한 확인을 위해서 아래와 같이 Disable 한 뒤, 발송테스트를 진행해 보았습니다.
발송
큐 뷰어 상에서 Unreachable Domain에 쌓여있는 것을 확인할 수 있습니다.
매칭되는 커넥터가 없다는 오류를 확인할 수 있습니다.
Last Error: A matching connector cannot be found to route the external recipient Queue ID: EX19MBX3\Unreachable Recipients: limcmfz@hotmail.co.kr;2;2;A matching connector cannot be found to route the external recipient;16;<No Matching Connector>;0 |
그리고 Enable 하면 다시 발송된 것을 확인할 수 있으며, 해더를 보면 어느 단계에서 지연되었다는 것을 대략 확인할 수 있습니다.
If there is no matching connector for a non-SMTP address space, a non-delivery report (also known as an NDR or bounce message) is returned to the sender. 비 SMTP 주소 공간에 대해 일치하는 커넥터가 없으면 배달 못 함 보고서(NDR 또는 반송 메시지라고도 함)가 보낸 사람에게 반환됩니다. |
- Non-SMTP는 Skip 하겠습니다.
If the message size exceeds the connector size restriction for all connectors, an NDR is returned to the sender. 메시지 크기가 모든 커넥터에 대한 커넥터 크기 제한을 초과하면 보낸 사람에게 NDR이 반환됩니다. |
테스트를 위해서 아래와 같이 커넥터의 메시지 사이즈를 변경한 뒤,
용량을 초과하도록 발송
아래와 같이 반송되는 것을 확인할 수 있습니다.