Skype 4 Business Edge and Hybrid Configuration–Part 2

    Configuring Edge Server

    Edge prerequisites

    Install Prerequisites

    • Microsoft .Net Framework 3.5, HTTP Activation, Windows Identity foundation, Telnet Client.

    Add-WindowsFeature NET-Framework-Core, NET-Framework-45-Core, NET-Framework-45-ASPNET,  Web-Net-Ext45, NET-WCF-HTTP-Activation45, Windows-Identity-Foundation, Telnet-Client -Source X:\sources\sxs

    Setup NETBIOS

    In order to configure Skype 4 Business Edge, we’ll have to change the Netbios to give it the name of our Domain but we won’t join it to the domain.

    clip_image001

    clip_image002

    Setup NICs

    Edge Server must have 2 NICs, one Local NIC will point out to the Front end server but must not have Default gateway so traffic can only flow through the DMZ out to the internet and back in. but still it must be able to ping to the FE from Edge and vice versa.

    DMZ network can have 1 DMZ address (Public Address to be NATTED to) or 3 DMZ addresses for public IP addresses with standard HTTPS ports.

    clip_image003

    clip_image004

    Configure Hostnames

    Edit the Edge server’s host file to include Lync FE and DC’s IP addresses and Hostname

    clip_image005

    clip_image006

    Now I will go back to Skype for Business FE server, I’ll launch the topology builder and add new Edge server

    I will add the first Edge pool which contains of a single Edge server

    clip_image007

    Next, you will have to choose if you want to enable federation with partners or other service providers …e.g. (Google)

    clip_image008

    I am intending to use a single Public IP address with a different ports (nonstandard) since this is a lab. For production it’s recommended to use 3 public IP addresses for Access Edge, AV and WebConf services.

    clip_image009

    Next I will choose the last option which says that the Edge pool is translated by NAT. I will configure my firewall to NAT ports to the Edge’s DMZ IP addresses from the Public so I am choosing this option.

    clip_image010

    clip_image011

    This is the FQDN’s the default configuration .. It’ll only use a single FQDN for all services if you’re going to use a single public IP address with a different ports.

    IMPORTANT NOTE

    When you use a single IP address with a different ports, the Access Edge port will normally change to 5061 (Not 443 like in the _sip._tls.domain.com) SRV record which will cause failure if you forgot to change this port to match the one in your Topology’s Access Edge settings.

    Next I’ll have to enter my Edge server’s Local IP address.

    clip_image012

    clip_image013

    Next I will be asked to enter the DMZ’s IP address which the wizard calls (Private External IP address)

    clip_image014

    Here I am going to place the NAT IP address which is my Public IP address.

    clip_image015

    Next I’ll have to choose which Lync FE pool will be used as the next hop to the Edge pool. In this case I’ll be choosing my main pool since the second is only for resilience purpose.

    clip_image016

    Then I’ll associate the mediation pool for Edge server for external media traffic. I can assign both in this case.

    clip_image017

    Now I’ll click on Finish and right click on the Site name’s properties to enable the SIP federation and XMPP federation then Publish the topology.

    clip_image018

    clip_image019

    clip_image020

    clip_image021

    Now I will setup Azure Active Directory Sync on my DC server in order to sync the required users for the test purpose.

    My domain is adeo.local so I want to change the UPN for users to match the synced domain. (Adeo-office365.ga) and moh10ly.com

    clip_image022

    Installing Azure Active Directory Sync

    Now I will install the prerequisites which consist of the following

    clip_image023

    Net framework 4.5.2 is required for AADS but it’s already installed on my server

    clip_image024

    Next I will install Microsoft Online Service Sign in assistant

    clip_image025

    Next I will install Azure AD Module

    clip_image026

    Finally Azure AD Sync

    clip_image027

    Before moving forward, I’ll have to go to the Office 365 portal and activate DirSync

    clip_image028

    Then use a global admin credentials from O365.

    clip_image029

    Adding the forest using an enterprise admin user account

    clip_image030

    clip_image031

    Due to the fact that my domain adeo-office365.ga’s public dns host doesn’t have SRV configuration because it’s hosted by the famous free domain service (Freenom) so I’ll have to add my original domain moh10ly.com as Lync (S4B) requires SRV records to point to the on-premises lync.

    clip_image032

    clip_image033

    clip_image034

    clip_image035

    clip_image036

    I will only sync one OU, so I will untick the Sync now box and click on Finish

    clip_image037

    I will go to the following path

    “C:\Program Files\Microsoft Azure AD Sync\UIShell” and create a shortcut for the GUI application of AADS on the desktop

    “C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe”

    clip_image038

    To get this GUI app to work, you will have to sign out of your account and sign back in as your username will be added to the local administrators and have the authority to open it

    Log off, log back in

    clip_image039

    Next I will go to the connectors tab and double click on the ADDS connector (Adeo.local)

    clip_image040

    I will go to the Configure Directory Partitions and under Credentials I’ll choose “Alternate credentials for this directory partition” then enter my on-premises AD Enterprise admin credentials

    clip_image041

    I’ll click on Containers

    clip_image042

    I’ll untick the DC=Adeo,Dc=Local box and only choose Dirsync OU then click OK and apply

    clip_image043

    Before I start syncing my AD , I will go to Skype for Business Server and add my domain moh10ly.com as a SIP domain

    clip_image044

    Next I am going to change the FQDN of the SIP access edge for public domain to moh10ly.com and the default port for the Access Edge to 443 and publish the topology

    clip_image045

    clip_image046

    I needed to finally check if all my FE servers are replicating. So then I can move to Edge server to install Lync components

    clip_image047

    On the Edge server, I’ll use ISO for Skype 4 business to install the setup

    clip_image048

    clip_image049

    First thing I’ll install the local Configuration Store

    I’ll click on Run and then I’ll be asked to import the configuration file which I’ll must export from Lync FE (Skype 4 b FE) server

    clip_image050

    In this case, I’ll go to Lync FE and open Lync Management shell and enter the following Cmdlet

    Export-CsConfiguration -FileName c:\top.zip

    clip_image051

    This cmdlet will export a file to the root C drive . I’ll copy this file to the edge server.

    clip_image052

    I’ll click next to continue, this should start installing the local store

    clip_image053

    clip_image054

    clip_image055

    Next I’ll request a certificate for Internal NIC For edge server

    clip_image056

    clip_image057

    clip_image058

    I’ll take the CSR (Certificate sign request) code and get a certificate from my local CA

    clip_image059

    I’ll open MMC and add Certificates console and import the PKCS certificate

    clip_image060

    clip_image061

    After importing the certificate I’ll assign it to the internal NIC by clicking on Assign to the Edge Internal

    clip_image062

    clip_image063

    clip_image064

    clip_image065

    Once we assign the certfiicate to the internal edge. The replication service for Edge and FE will start working

    clip_image066

    Now I’ll import my Public Certificate to Edge Server’s DMZ NIC

    I already imported my public certificate, now I’ll go to the S4B wizard and assign it there

    clip_image067

    clip_image068

    Unlike IN lync 2013 when you Click on Start service in the Wizard all services start on their own but on Skype for business you ‘ll have to start the services manually by yourself.

    clip_image069

    So Instead I used the service console to start the services.

    Now I’ll go back to the FE And enable remote connectivity to Skype for Business from outside and make sure that replication works fine by checking the Topology or from cmdlet

    clip_image070

    clip_image071

    clip_image072

    clip_image073

    Setting up Hybrid integration with Skype online for Business (O365)

    NOTE:

    In order for Skype for Business Hybrid configuration to work successfully for users homed on cloud and on-prem .. Users must be created first on-premises, enabled on Skype for Business on-premises and from the Skype for Business on-prem Control panel moved to Office 365 Skype for Business online.

    Otherwise users will not be able to see each other’s presence information due to missing attributes if users were to be created directly online or on Active Directory and not enabled on-premises first.

    https://technet.microsoft.com/en-us/library/jj205126.aspx

    https://technet.microsoft.com/en-us/library/jj204669.aspx

    In order to allow Hybrid environment to function properly, we’ll have to federate our Skype for Business on-premises’s Edge server as microsoft says below

    Federation allows users in your on-premises deployment to communicate with Office 365 users in your organization. To configure federation, run the following cmdlets in the Skype for Business Server Management Shell:

    From <https://technet.microsoft.com/en-us/library/jj205126.aspx>

    On the front end server, we’ll run the following CMDlet

    Set-CSAccessEdgeConfiguration -AllowOutsideUsers 1 -AllowFederatedUsers 1 -UseDnsSrvRouting -EnablePartnerDiscovery $true

    clip_image074

    Next cmdlet will create a new public federated provider for skype for business online.. However it already exists so we must delete it from control panel or the cmdlet will fail with the following message

    New-CsHostingProvider -Identity SkypeforBusinessOnline -ProxyFqdn “sipfed.online.lync.com” -Enabled $true -EnabledSharedAddressSpace $True -HostsOCSUsers $True -VerificationLevel UseSourceVerification -IsLocal $false -AutodiscoverUrl https://webdir.online.lync.com/Autodiscover/Autodiscoverservice.svc/root

    clip_image075

    I’ll delete the hosted provider “Skype for Business Online”

    clip_image076

    I’ll try the cmdlet again after deleting the provider ..

    New-CSHostingProvider -Identity SkypeforBusinessOnline -ProxyFqdn “sipfed.online.lync.com” -Enabled $true -EnabledSharedAddressSpace $true -HostsOCSUsers $true -VerificationLevel UseSourceVerification -IsLocal $false -AutodiscoverUrl https://webdir.online.lync.com/Autodiscover/AutodiscoverService.svc/root

    clip_image077

    Since it worked already, I will go back to the control panel and make sure it is enabled

    clip_image078

    Next is : Configure your Skype for Business Online tenant for a shared SIP address space

    Note:

    To configure a shared SIP address space, establish a remote PowerShell session with Skype for Business Online, and then run the following cmdlet:

    We’ll have to download skype for business online powershell

    https://onedrive.live.com/redir?resid=82488EABA4ACDB15!38849&authkey=!AKW6Ln4Rkn6QuUI&ithint=file{308b10a016e19a1cd6a208cbc3961927e16fc6766a4020d3c4ef54ea17925f0f}2cexe

    After launching the PowerShell module as an administrator I’ll run the following cmdlet

    clip_image079 (Connect to Skype for Business online (Lync Online) Powershell)

    Import-Module SkypeOnlineConnector

    clip_image080

    Now I’ll connect to my Office 365 tenant

    clip_image081

    $cred = Get-Credential

    $CSSession = New-CsOnlineSession -Credential $cred

    Import-PSSession $CSSession -AllowClobber

    clip_image082

    Now I’ll configure the shared sip address

    Set-CsTenantFederationConfiguration -SharedSipAddressSpace $true

    From <https://technet.microsoft.com/en-us/library/jj205126.aspx>

    clip_image083

    To double check my configuration I will see if the SharedSipAddresSpace is enabled or not

    Get-CsTenantFederationConfiguration

    clip_image084

    To double check that the hybrid configuration is setup properly we can use the Skype for business on-premises Hybrid UI wizard from the Home Menu under “Connection to Skype for Business Online”

    clip_image085

    Using the Skype for Business 2015 User interface to setup Hybrid configuration:

    After you sign in it does automatically logs you in and configure the three following options

    1. Federation for the Edge server
    2. Federation with Office 365.
    3. Shared SIP address space.

    clip_image086

    clip_image087

    Now I will configure my DNS Settings as recommended by Microsoft for the Hybrid Integration scenario

    DNS Settings

    When creating DNS SRV records for hybrid deployments, the records, _sipfederationtls._tcp.<domain> and _sip._tls.<domain>, should point to the on-premises Access Proxy.

    From <https://technet.microsoft.com/en-us/library/jj205403.aspx>

    1. Update some DNS records to direct all SIP traffic to Skype for Business on-premises:
    • Update the lyncdiscover.contoso.com A record to point to the FQDN of the on-premises reverse proxy server.
    • Update the _sip._tls.contoso.com SRV record to resolve to the public IP or VIP address of the Access Edge service of Skype for Business on-premises.
    • Update the _sipfederationtls._tcp.contoso.com SRV record to resolve to the public IP or VIP address of the Access Edge service of Skype for Business on-premises.
    • If your organization uses split DNS (sometimes called “split-brain DNS”), make sure that users resolving names through the internal DNS zone are directed to the Front End Pool.

    From <https://support.office.com/en-us/article/Configure-Skype-for-Business-Server-2015-Hybrid-b06ee805-4349-4519-82fb-b06ed57c0bd0>

    According to Microsoft’s configuration of the Public DNS, you will have to configure only the SRV records to point to your edge server however, running a simple wireshark on your Skype for business client machine you can notice the following:

    clip_image088

    Microsoft Lync / Skype client first requires the Lyncdiscover / Lyncdiscoverinternal record in order to see where the user is located… then gets redirected to webdir.online.lync.com which is the Cname value to the Lyncdiscover Cname in the public DNS and tries to login the user through Login.microsoftonline.com then finds no user there and logs in using the SRV eventually in the end as in the below snapshot which I’ve used Wireshark for to monitor the DNS traffic that the Lync Client requests upon login request.

    clip_image089

    NOTE:

    What have me confused here is that Microsoft says only SRV records must be pointing to your On-premises Lync/Skype for Business Edge server.. So you must enter something else other than SIP.domain.com (Which in normal cases might be the common name of your Edge certificate) for the value of the SRV Record since the SIP.domain.com and Lyncdiscover.domain.com must be pointing to Office 365.

    I tried using the Public IP address of my Edge server just to check if my on-premises user will connect without any issue however I did have an issue with the Certificate saying “There was a problem verifying the certificate from the server”.

    clip_image090

    Luckily the Public certificate that I had on my edge server had multiple SANs (Subject Alternative Names) and one of them was WAC.moh10ly.com which I was intending to use for the WAC Server (Office Web Apps Server) and then I created an A record on my public DNS WAC.moh10ly.com that points to my Edge server’s Public IP address…. although the Wac.moh10ly.com is not a common name but it worked and I was able to federate with Office 365 users and was able to move users from on-premises to office 365 and back to on-premises as demonstrated later in the article.

    “When creating DNS SRV records for hybrid deployments, the records, _sipfederationtls._tcp.<domain> and _sip._tls.<domain>, should point to the on-premises Access Proxy.”

    From <https://support.office.com/en-us/article/Configure-Skype-for-Business-Server-2015-Hybrid-b06ee805-4349-4519-82fb-b06ed57c0bd0>

    clip_image091

    Now I have changed all the SRV records to direct to the new A record

    clip_image092

    And finally deleted the A sip record and created a new CNAME record that points to sipdir.online.lync.com

    clip_image093

    clip_image094

    I have already a user synced from my local AD to the cloud (office 365) that’s not enabled for Skype for business on-premises .. Once this user is synced and have been assigned a license it should be directly enabled for Skype for Business Online and I should be able to sign in to it without any issue.

    Note:

    In order for both users (homed online and On-premises) to see eachother’s presence the synced user must be enabled on the On-premises Server before moved to the cloud or else the presence and M will fail.

    Time to test, I was able to sign in to the Online homed user (admin) and now I’ll be adding the on-premises homed user to the list to check the presence, IM ..etc

    clip_image095

    Here I added the user admin to my other account Mohammed.hamada and vice versa.

    clip_image096

    The Presence appears to be working fine for user homed on-premises as it shows when I changed it to “busy, be right back..etc” on the cloud user’s Client however the Office 365 homed user’s presence takes time to change on the on-premises user’s list and the IM doesn’t seem to work properly as messages sometimes doesn’t go through and fail.

    Sending a message from the on-premises User (Mohammed Hamada) to (ADMIN)

    clip_image097

    Now sending an IM from Admin to Mohammed Hamada

    clip_image098

    To make sure that the issue is not within my on-premises server, I will use a different Skype for Business online account and see if IM work both ways.

    This is my other user.. The presence information seems to work properly and now I’ll test the IM

    clip_image099

    IM between my On-premises and another user on another Office 365 tenant seems to be working fine back and forth as in the below snapshots so the issue might be related to Office 365 tenant which I am using for this test (could be related to trial version)

    I am going to open a case with MS and see why this issue happens since my on-premises work fine with other tenants.

    clip_image100

    clip_image101

    Now It’s time to move users from and to cloud and on-premises to check how easy, flexible or hard this process is.

    I currently have 2 users, one on cloud and one synced and homed online (Office365)

    clip_image102

    In order to move users, you can go to Users tab after the hybrid config is finished and find the user you want to move then click on Actions and chose to move the users to the Skype for Business Online as in the below snapshot

    Note:

    Before you move the user to Office 365, you must assign license to the user or else the move will fail.

    clip_image103

    clip_image104

    clip_image105

    clip_image106

    clip_image107

    You can move the user back from Office 365 to your on-premises Skype for Business server with the same process exactly except that you’ll have to choose which pool you need to move the user to.

    Checking where the user is hosted from Skype for business Management shell

    The Hosting Provider will show you where the user is working from now.

    clip_image108

    clip_image109

    clip_image110

    Hope this has been helpful

    References:

    https://technet.microsoft.com/en-us/library/jj204967.aspx

    https://technet.microsoft.com/en-us/library/jj205403.aspx

    https://technet.microsoft.com/en-us/library/jj205126.aspx

    https://technet.microsoft.com/en-us/library/jj204669.aspx

    https://support.office.com/en-us/article/Configure-Skype-for-Business-Server-2015-Hybrid-b06ee805-4349-4519-82fb-b06ed57c0bd0

    https://channel9.msdn.com/Events/Ignite/2015/BRK4129

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.