Lync Edge Server Best Practices
Lync Edge Server Best Practices
Lync Edge Server Best Practices
For the best chance of a functional, supported, happy Lync Edge server the guidelines provided
in the Assumptions section of the official Lync Edge Server Reference Architecture
documentation should be followed as closely as possible. Granted there are production
deployments out there working just fine which do not match some or all of these requirements,
but those can often be the exception to the rule. Also receiving support for problematic
deployments or future production failures can be difficult as although Microsoft will provide
best-effort support in these cases, the further from a supported scenario the longer the resolution
time can be.
For this article two different topologies will be used as examples and the the differences among
them will be highlighted throughout the various sections.
Simple Topology
The simplest, fully featured deployment would consistent of a single internal Standard Edition
Front End server with a single consolidated Edge server and Reverse Proxy server/appliance
located in a perimeter network. This topology contains a single SIP domain and uses the least
amount of hostnames possible to still provides all client functionality.
Complex Topology
Jumping right into the deep-end this sample topology swaps out the Standard Edition server for
two separate Enterprise Edition Front End Pools and introduces the Director role. Every role is
comprised of multiple-computer pools to provide fault-tolerance to every available feature.
Additional SIP domains are also included, as well as the concept of wildcard certificates.
Best Practices
Always use two network interfaces on two separate subnets. The external interface
should include the default gateway and the internal interface should not. Persistent static
routes should be defined on the Edge server to address connectivity to internal subnets.
As stated earlier the Edge server does not handle any web services requests. This means
that without the optional Reverse Proxy then none of the features provided by web
services will be available for external Lync clients and devices (e.g. address book
download, location information, device updates, Lync Web App).
Additionally the Lync mobile client for phones and tablets will also not function without
a Reverse Proxy deployment as these clients are 100% web-based and must be able to
communicate to the mobility IIS web site (Mcx) running on the Lync Front End
server(s). The Edge server does not handle any communication with the mobility clients
themselves as they are not SIP clients, they only leverage HTTP/HTTPS
communications. The only role the Edge server plays in terms of Mobility is that it is
used for establishing Push Notification communications via Federation services.
A Lync Director server is not a required server, even when an Edge server is deployed. It
is an optional server which can be used to offload user authentication processing, create
an additional layer of protection from external user connections, and provide a single
location for internal client connections (per SIP domain) to be proxied through and
redirected from.
A single Reverse Proxy Web Listener can often be used for all published web services
(per internal pool). The official documentation often shows creating unique listeners for
every different URL but this can be costly in terms of IP addresses. When using ISA or
TMG it is possible to use the same Web Listener, IP address, ports, and certificate for
multiple publishing rules by defining the specific URLs in the rule configuration. This
holds true only when all published URLs are from the same internal server, so in a single
Front End server deployment then a single listener can be used. But in a more complex
deployment with multiple Front End server pools and Directors then a unique listener is
required for each source server. For example the Complex Topology depicted below
would require 3 separate listeners and external IP addresses, one for each of the three
pools; the same certificate can be used across all listeners though.
Certificates
Coming in a close second is the amount of clarifying questions surrounding certificate
configuration for the external servers. How many certificates, which certificate authorities can or
should be used, which hostnames go where; the list goes on.
For basic certificate requirements see the TechNet articles for both the Edge server and Reverse
Proxy server. Also the term Common Name is used throughout this article. Although it is often
used interchangeably with Subject Name that is incorrect as technically the Subject Name is a
complete Distinguished Name (DN) string which includes the Common Name (CN) as one of the
fields. When referring to only the Fully Qualified Domain Name (FQDN) then the term
Common Name is most accurate.
Basic Guidelines
The Internal Edge certificate should be a standard SSL certificate and cannot contain a
Subject Alternative Name field. The Common Name field should be set to the Edge
servers defined FQDN (e.g. edge.schertz.local) in a single consolidated Edge
server deployment.
client A/V authentication requests). The Front-End server will always use the internal
Edge FQDN when connecting to any listening port on the internal Edge server regardless
of which service it is connecting to.
Multiple SIP Domains
When supporting multiple SIP domains there are a couple different considerations to take into
account which can impact the planning phase related to certificate configuration and public DNS
zone records.
The recommended approach for external client Automatic Sign-In when supporting
multiple SIP domains is to include a unique Access Edge FQDN for each domain name in
the SAN field. This is no longer a requirement (it was in OCS) as it is not possible to
create a DNS Service Locator Record (SRV) for each additional SIP domain yet have
them all point back to the same original FQDN for the Access Edge service (e.g.
sip.mslync.net). This approach will trigger a security alert in Windows Lync
clients which can be accepted by the user, but some other clients and devices are unable
to connect when the Automatic Sign-In process returns a pair of SRV and Host (A)
records which do not share the same domain namespace. Thus it is still best practice to
define a unique FQDN for each additional SIP domain and include that hostname in the
external Edge certificates SAN field.
A unique Web Conferencing FQDN (or another other Lync FQDN) is not required for
each SIP domain as once each client is able to connect the original primary FQDNs for
all other services will be passed to the client in-band. Thus a user in the SIP domain of
@domain2.com would utilize the hostname sip.domain2.com to connect but
would be automatically provided an FQDN of webconf.mslync.net to connect to
the Web Conferencing Edge service.
As shown in the Complex Topology it is supported to utilize wildcard entries (e.g.
*.mslync.net) for the SimpleURLs (e.g. meet, dialin) as well as the
lyncdiscover FQDN. But not all clients supports wildcard entries for all usages. For
example, even though a recent update to Lync Phone Edition introduces wildcard support
there still exists the problem of how to upgrade devices on older firmware to the
supported version. Thus it is always recommended to plan for all potential client and
server versions which might need to register to Lync or participate in federated
communications. The key is to avoid placing the wildcard entry in the CN itself and
instead provide it as a SAN entry, making sure to still include specific entries for any and
all external web service FQDNs from Front End and Director servers. Then clients
which are still incompatible with wildcard entries can utilize the specific hostnames
provided in the SAN field as well. In the future there will probably come a time when
wildcards can be used for all communications, providing simple, cheaper certificate
options, especially for hosting providers which need to support a large variety of SIP
domains and large deployments.
Edge Pools
When dealing with multiple Edge servers in the same pool there are some specific requirements
which must be followed otherwise some or all functionality of the Edge servers can be
negatively impacted.
As stated earlier the internal Edge certificate cannot include a SAN entry, and this holds
true even in multiple server pools. The Edge Pool FQDN (e.g.
edgepool.schertz.local) must be defined as the Common Name and the
individual Edge server FQDN is not included in the certificate. The internal Lync
servers, clients, and devices will connect to the pool FQDN and not any of the individual
server FQDNs. For instances when connections need to be opened directly to a specific
Edge server, as in relaying a media session, these communications are not SIP-based and
often times are initiated directly via an IP address, as in ICE/STUN/TURN negotiation).
The exact same certificate must be used on all common interfaces across the pool,
regardless of whether DNS load balancing or hardware load balancing is utilized. This
means that the original certificate request must provide the ability to export the private
key as the exact same certificate and private key pair must be able to be exported from
one Edge server into all other Edge servers. This is required so that in the event of a
failover any existing sessions can be moved to another server in the pool and the data can
still be decrypted by the same certificate that was used to encrypt the session just prior to
the failover. Compare the serial numbers on each certificate to validate they are the same
certificate and not just duplicate requests with the same configuration. This requirement
applies to the internal interfaces as well as the external interfaces, so there will be a single
internal certificate shared across all internal Edge interfaces, and a second external
certificate shared across all external Edge interfaces. (Do not try to use the same
certificate on both internal and external interfaces.)