Microsoft Lync Server
Header
Portada Libro.jpgYa ha pasado algo más de un año desde que publiqué esta pequeña guía de Lync, con la intención de que fuese de ayuda para alguien al igual que otros documentos lo han sido para mi.  Desde la primera descarga  hasta la última hasta la fecha (5,837 times), ha sido un orgullo recibir algunos comentarios de gente que la ha utilizado para llevar a cabo sus implementaciones, tanto a nivel personal como profesional. Nunca pensé que tuviese la repercusión que ha tenido, y más siendo en Español y escrita por alguien desconocido …. Lo único que pretendía era poder llegar a las 1000 descargas y ahora estando casi en las 6000 no tengo mucho que decir, me parece increible.
 
No pondré los comentarios que me habéis enviado, porque creo que algunas cosas se deben quedar en la "intimidad" con la que me han llegado. Soy de los que piensa que no es necesario el reconocimiento "público dirigido", simplemente he contestado a todos los que me habéis enviado algún comentario y estoy muy agradecido por ello.
 
También quiero aprovechar para comentaros que mis articulos están a vuestra disposición, podéis hacer lo que queráis con ellos, porque sigo una máxima: El conocimiento no se copia, se adquiere con el esfuerzo y dedicación. Lo que quiero decir es que por mucho que la gente pueda copiar los artículos de otros y ponerlos en su nombre, esto no le copia lo más importante, que es el conocimiento de la persona que ha escrito el articulo. De ahí que cada uno puede hacer lo que considere con mis artículos o que los utilice como referencia para los suyos, si los expongo públicamente es porque quiero que sean públicos y que todos nos podamos aprovechar de ellos. Además, lo importante no es ser el primero en publicar algo, sino publicarlo y tener ganas de compartir el conocimiento y experiencias que uno va adquiriendo, eso es lo verdaderamente importante. Y esto lo comento sin saber si alguien utiliza mis artículos en su nombre, pero si es así, sin ningún problema por mi parte.
 
Y dicho esto, simplemente comentaros que espero seguir subiendo artículos que sean del interés de todos.

Seguramente a muchos de vosotros os suena esta situación, un cliente (o vosotros mismos en vuestros LABS) que únicamente tiene una IP Pública contratada o que simplemente tiene un hardware no profesional que no permite la configuración de un pool de direcciones IP en su interface WAN y nos encontramos que Lync utiliza el puerto 443 para varios servicios (Edge: Acceso, A/V, Conferencias Web). Aquí os muestro un esquema de cualquier empresa pequeña o mediana (sin comentarios, pero las hay ..) con una infraestructura similar a esta (pulsar en la imagen para verla a tamaño real):

EDGE con 1 IP Pública.png

Como podéis apreciar, tiene un router/firewall con una única dirección IP Pública (222.222.222.1) por lo que en este caso solo podemos publicar (Port Forwarding) el puerto 443 hacia una IP Interna y ahí el dilema si Lync necesita mínimo 4 publicaciones al puerto 443:

  • Edge
    • Acceso
    • AV
    • WebConf
  • Front-END
    • Servicios Web
      • Móviles
      • ABS

Además, no debemos olvidar que si tenemos Exchange (EWS: UM, UCS, etc … que sería lo suyo) y un servidor WAC debemos disponer de otra IP Pública más (o un reverse-proxy publicando todos los servicios Web necesarios: Lync Front-END, WAC y Exchange (EWS)). Llegado a este punto, muchos clientes o técnicos se preguntan entonces como solventar este problema que en sí tiene fácil solución si le damos unas vueltas a la arquitectura base. Si queremos publicar todos los servicios mediante una única IP Pública, debemos contar con los siguientes requisitos (Obligatio en Rojo, Opcional en Azul):

  • Reverse-Proxy: TMG, IIS ARR, F5, KEMP, etc..
  • Router / Firewall: con la posibilidad de configurar dos subredes en su interface LAN (si tiene más de una interface física mejor que mejor)

Como veis los requisitos son muy humildes, a día de hoy cualquier empresa puedes cumplirlos sin mayor problema. Ahora bien, veamos el porqué de estos requisitos:

Reverse-Proxy: Debemos poder publicar con una única redirección de puerto en el Firewall/Router (TCP 443) los distintos servicios web, y como solo podemos redireccionar el puerto 443 un única vez (publicaremos 3 servidores: Exchange, WAC y Front-END), tenemos que enviar las peticiones a algún dispositivo/servidor con capacidad para leer los encabezados de host de las peticiones y que las reenvíe a los servidores adecuados. Aquí os dejos un artículo sobre la necesidad de un reverse-proxy: Lync Server: Reverse-Proxy requisito indispensable

Router / Firewall: El requisitos no es tener el dispositivo (que esto lo damos por sentado), sino que pueda gestionar dos subredes IP internas. Siempre es recomendable separar lo máximo posible las subredes, simulando en la mayoría de los casos una DMZ.  Pensad que para el EDGE necesitamos declarar dos subredes diferentes, una para la interface Interna y la otra para las subred externa (aunque sean subredes de ámbito privado, puesto que estarán dentrás de un dispositivo que está haciendo NAT y PAT). Y para el reverse-proxy aunque no es obligatorio tener dos IP (en este caso), siempre es igual de recomendable tener dos interfaces disponibles (WAN y LAN).

Teniendo esto más o menos claro, que más requisitos debemos cumplir para publicar los distintos servicios, pues como no los certificados digitales:

  • EDGE: Como solo tendremos una IP Pública, utilizaremos un único nombre para todos los servicios por lo que necesitaremos un certificado con un único nombre
  • Reverse-Proxy: Siempre recomiendo un certificado wildcard (Certificados SAN o Wildcard para nuestra implementación de Lync Server) y este caso no será la excepción si queremos publicar todos los servicios:
    • Lync: lyncdiscover.asirlab.com, lync.asirlab.com, meet.asirlab.com, dialin.asirlab.com (4 nombres)
    • WAC: office.asirlab.com (1 nombre)
    • Exchange: mail.asirlab.com (1 nombre)

En total serían 6 nombres, por lo que económicamente es viable que solicitéis un certificado Wildcard. Además, como siempre, es posible que queráis publicar algún servicio más (SharePoint, etc…) y ya no tendríais que cambiar el certificado por otro ni realizar otro gasto a mayores, etc.. simplemente configuráis el reverse-proxy con el mismo certificado y listo.

Inicialmente esto es todo lo que necesitamos para empezar la configuración, asi que ahora vamos a ello. No voy a explicar nuevamente como configurar el EDGE, simplemente me centrarén la configuración que vamos a necesitar para publicar el EDGE con una sola IP en la interface externa (estamos detrás de un dispositivo haciendo NAT/PAT) y con el mismo nombre para todos los servicios: Acceso, A/V y Conferencias Web. Lo primero es que vayamos al Generador de Topologías y demos de alta un nuevo EDGE desde la sección de Grupos de serivdores perimetralesNuevo grupo de servidores perimetrales

SRV-LYNC00-2014-03-25-07-38-26.png
Pulsamos en Siguiente

SRV-LYNC00-2014-03-25-07-38-36.png

En nuestro caso solo tendremos un EDGE (esto sería lo normal con una infraestructura tan humilde), por lo que elegimos la segunda opción (Grupo de un solo equipo) y escribimos el FQDN con el que lo vamos a identificar y pulsamos en SiguienteSRV-LYNC00-2014-03-25-07-38-56.png
Aquí es donde debemos empezar a prestar atención, lo primero es marcar la primera casilla  de forma obligatoria según lo que queremos configurar. Esto es justamente lo que queremos, publicar todos los servicios del EDGE con un único nombre y dirección IP. Las otras dos son opcionales si queremos federarnos otros sistemas Lync (Compañias con Lync, Skype o sistemas que utilicen XMPP (Google, etc..)) y pulsamos en Siguiente

SRV-LYNC00-2014-03-25-07-39-10.png

Elegimos habilitar las versiones de IPv4 o 6 en función de vuestra red y además indicamos que estamos detrás de un dispositivo NAT (pensad que solo tenemos una IP Pública y que estámos detrás de este dispositivo que gestiona la conexión WAN)
SRV-LYNC00-2014-03-25-07-39-30.png

Otro paso importante, definir el nombre que vamos a publicar (será el nombre que debemos tener en el certificado que compremos) y el puerto de los distintos servicios. Como solo tenemos una dirección IP Pública y algo que no podemos cambiar es el puerto de las federaciones (TCP 5061), lo vamos a configurar para utilizarlo para que los usuarios externos puedan iniicar sesión y además para las federaciones. Pensad que Microsoft utiliza el 5061 para federar Lync con Skype y además Lync a Lync entre organizaciones, por lo que no podemos definir nosotros este puerto de otra forma. Para el resto de servicios debemos elegir puertos que no se esté utilizando en el sistema y tampoco el puerto 443 que será el que utilicemos para publicar los servicios Web. Esto debemos tenerlo muy en cuanta, los servicios web debemos publicarlo vía HTTPS y no cambiarles el puerto por defecto, sino sí que podéis tener problemas con el acceso a los distintos servicios (porque no se conectarán por otro puerto alternativo, están prefijados a nivel de diseño). Teniendo esto claro, yo he elegido el siguiente nombre (sip.asirlab.com) y puertos (5061, 444 y 446) y pulsamos en Siguiente

SRV-LYNC00-2014-03-25-07-39-40-1.png
Escribimos la dirección IP Interna y pulsamos en Siguiente, de aquí la importancia de tener un router/Firewall con posibilidad de gestionar dos subredes en su interface(s) privada. Porque estoy seguro que la empresa tendrá más servidores y salen a Internet directamente por la subred Interna del Router/Firewall, pero con la otra subred IP del Router/Firewall simulamos una conexión WAN para el Reverse-Proxy y para la interface Externa del EDGE

SRV-LYNC00-2014-03-25-07-40-12.png
Aquí escribimos la dirección IP de la interface externa y se debe corresponder con la subred que tengáis configurada en el router/firewall para que pueda tener acceso a Internet. El concepto es simple, pero es posible que os pueda resultar algo lioso sino lo tenéis claro.
SRV-LYNC00-2014-03-25-07-40-56.png
Debemos especificar la IP Púlica que gestiona el Router/Firewall para que los usuarios externos puedan tener sesiones de A/V con el EDGE detrás de un dispositivo haciendo NAT. Por lo que especificamos la IP que tengáis como IP Pública, en uno LAB sería la 222.222.222.1 (mirad el esquema) y pulsamos en Siguiente

SRV-LYNC00-2014-03-25-07-41-01.png
Otro paso importante, elegir nuestro servidor o pool de servidores Front-END como siguiente salto, que serán los servidores a los cuales enviarán las peticiones el/los EDGE, simplemente lo elegimos y pulsamos en SiguienteSRV-LYNC00-2014-03-25-07-41-10.png
Nos muestra un resumen de la configuración y pulsamos en FinalizarSRV-LYNC00-2014-03-25-07-41-16.png

Para completar la configuración de nuestra topología, únicamente debemos publciarla y configurar los disintos servicios del EDGE. Pero antes de publicarla revisaremos que la asignación de rutas de federaciones están bien, para ello seleccionamos el nombre nuestro sitio y nos fijamos en la sección de Asignación de ruta de federación del sitio, sino está configurado pulsamos encima del nombre del sitio con el botón secundario del ratón y pulsamos en Editar propiedades

SRV-LYNC00-2014-03-25-07-41-55.png

Vamos a la sección de Ruta de Fedración y habilitamos las rutas de federación que consideremos oportuno
SRV-LYNC00-2014-03-25-07-42-06.png
Ahora si vemos que tenemos todo configurado según lo que queremos y únicamente quedaría publicar la topologíaSRV-LYNC00-2014-03-25-07-43-25.png

SRV-LYNC00-2014-03-25-07-43-33.png
SRV-LYNC00-2014-03-25-07-43-39.png
SRV-LYNC00-2014-03-25-07-44-26.png
Por último quedaría exportar la configuración para que en el EDGE podamos importarla y temrinar su configuración. Para ello utilizamos el siguiente cmdlet: Export-CsConfiguration -FileName <ruta_fichero_exportado>

SRV-LYNC00-2014-03-25-07-45-15.png
El proceso de configuración del EDGE ya no lo voy a volver a comentar, lo tenéis descrito en la Guía de Lync publicada hace casi ya un año: Primera Guía de Instalación de Lync Server 2013 en Español.

Hasta aquí el artículo no tiene nada de especial, simplemente hemos configurado el EDGE detrás de un dispositivo NAT y hemos configurado los puertos para los distintos servicios. Para los servicios Web hemos dejado libre el 443, por lo que lo podremos "abrir" (Port Forwarding) hacia el Reverse-Proxy (TMG, IIS ARR, F5, KEMP, etc…) y con un certificado Wildcard o SAN tendremos todo los servicios disponibles. Aquí os dejo algunos artículos publicado anteriormente para que podáis volver a repasarlos, teniendo en cuenta que estos servicios se publican de forma "normal", porque no hemos cambiado el puerto por defecto (443):

En cuanto al certificado del EDGE, tendremos como siempre uno interno y otro externo. El nombre interno es edge.asirlab.com, por lo que ese será el nombre que tendrá en el certifidado. Y como para los servicios externos hemos configurado un único nombre y es el siguiente: sip.asirlab.com únicamente debe contener ese nombre el certificados externo:

 

EDGE-2014-03-29-13-26-03.png
Si queremos federarnos con Skype, sabéis que debemos cumplir varios requisitos aquí descritos:

En este caso, tenemos lo que necesitamos en cuanto a conectividad que es tener publicado el puerto 5061 (que además lo compartimos con el servicio de acceso), por lo que únicamente debemos crear el registro DNS de tipoo SRV con la siguiente configuración:

_sipfederationtls._tcp.asirlab.com       SRV service location:
          priority       = 0
          weight         = 0
          port           = 5061
          svr hostname   = sip.asirlab.com

Y debemos tener el registro DNS de tipo A sip.asirlab.com para que se pueda resolver la dirección IP Pública que tenemos asociada a ese registro: 222.222.222.1 y el puerto redirigido  la IP externa declarada en el EDGE: 192.168.250.120. Con esto y un certificado público (obligatorio para federarse con sistemas públicos (Skype, Google, etc..) y opcional con otras organizaciones con Lync porque les podemos enviar nuestro certificado raíz de nuestra CA Interna).

Con todo esto ya tenemos toda nuestra infraestructura funcionando sin problemas, estarían todos los servicios publicados con el mínimo coste ( Hardware y Certificados). Pero visto esto también quisiera comentar varios errores que he visto cuando alguna gente ha tratado de realizar esta configuración. La principal es la de utilizar puertos en el EDGE que se están utilzando en los servidores, por ejemplo utilizar para los servicios de Conferencias o A/V el puerto 445:

SRV-LYNC00-2014-03-25-07-39-59.png
Una vez configurado, tendréis el problema que el servicio no se inicia y os volveréis locos sino tenéis claro el concepto:

EDGE-2014-03-25-09-06-19.png

Si revisáis el Visor de Eventos os lo dejará claro
EDGE-2014-03-25-08-58-07.png
EDGE-2014-03-25-08-58-10.png

Si ejecuto el comando netstat -an | find ":445" puedo ver que el puerto está a la escucha  (disponble vamos para recibir perticiones) y en cualquier IP  (interface) del equipo: 0.0.0.0

EDGE-2014-03-25-08-58-07-1.png
No podéis elgir un puerto que el sistema ya está utlizando, y el 445 es utilizado por el servicio de SMB (http://es.wikipedia.org/wiki/Server_Message_Block), y sirve para compartir archivos e impresoras en sistemas Microsoft. Esto es muy común e imagino que será por inercia de no utilizar el 443 y utilizar los siguientes: 444 y 445

SRV-LYNC00-2014-03-25-07-39-59.png

Pero no debemos caer en este erro, debemos conocer los puertos estándar que utiliza nuestros servidor, sino no podemos levantar nunca el servicio. Cada servicio de red utiliza una combinación de Dirección IP y Puerto para estar a la "escucha", si alguien ya tiene ese puerto cogido no podremos iniciar el servicio. Esto es factible cuando tenemos nuestro EDGE con tres IP, entonces cada una de ellas podrá estar a la escucha por el mismo puerto, pero no podría haber otro servicio igualmente tratando de "escuchar" por el mismo puerto e IP. En todos los sistemas operativos de Microsoft, existe un fichero llamado Services con los nombres de los servicios y puertos que utiliza y está ubicado en la sigiuente ruta: C:\Windows\System32\drivers\etc.

EDGE-2014-03-25-08-06-48.png
En este fichero podemos encontrar los llamadas puertos "bien conocidos"

# Copyright (c) 1993-2004 Microsoft Corp.
#
# This file contains port numbers for well-known services defined by IANA
#
# Format:
#
# <service name>  <port number>/<protocol>  [aliases…]   [#<comment>]
#
echo                7/tcp
echo                7/udp
discard             9/tcp    sink null
discard             9/udp    sink null
systat             11/tcp    users                  #Active users
systat             11/udp    users                  #Active users
daytime            13/tcp
daytime            13/udp
qotd               17/tcp    quote                  #Quote of the day
qotd               17/udp    quote                  #Quote of the day
chargen            19/tcp    ttytst source          #Character generator
chargen            19/udp    ttytst source          #Character generator
ftp-data           20/tcp                           #FTP, data
ftp                21/tcp                           #FTP. control
ssh                22/tcp                           #SSH Remote Login Protocol
telnet             23/tcp
smtp               25/tcp    mail                   #Simple Mail Transfer Protocol
time               37/tcp    timserver
time               37/udp    timserver
rlp                39/udp    resource               #Resource Location Protocol
nameserver         42/tcp    name                   #Host Name Server
nameserver         42/udp    name                   #Host Name Server
nicname            43/tcp    whois
domain             53/tcp                           #Domain Name Server
domain             53/udp                           #Domain Name Server
bootps             67/udp    dhcps                  #Bootstrap Protocol Server
bootpc             68/udp    dhcpc                  #Bootstrap Protocol Client
tftp               69/udp                           #Trivial File Transfer
gopher             70/tcp
finger             79/tcp
http               80/tcp    www www-http           #World Wide Web
hosts2-ns          81/tcp                           #HOSTS2 Name Server
hosts2-ns          81/udp                           #HOSTS2 Name Server
kerberos           88/tcp    krb5 kerberos-sec      #Kerberos
kerberos           88/udp    krb5 kerberos-sec      #Kerberos
hostname          101/tcp    hostnames              #NIC Host Name Server
iso-tsap          102/tcp                           #ISO-TSAP Class 0
rtelnet           107/tcp                           #Remote Telnet Service
pop2              109/tcp    postoffice             #Post Office Protocol – Version 2
pop3              110/tcp                           #Post Office Protocol – Version 3
sunrpc            111/tcp    rpcbind portmap        #SUN Remote Procedure Call
sunrpc            111/udp    rpcbind portmap        #SUN Remote Procedure Call
auth              113/tcp    ident tap              #Identification Protocol
uucp-path         117/tcp
sqlserv           118/tcp                           #SQL Services
nntp              119/tcp    usenet                 #Network News Transfer Protocol
ntp               123/udp                           #Network Time Protocol
epmap             135/tcp    loc-srv                #DCE endpoint resolution
epmap             135/udp    loc-srv                #DCE endpoint resolution
netbios-ns        137/tcp    nbname                 #NETBIOS Name Service
netbios-ns        137/udp    nbname                 #NETBIOS Name Service
netbios-dgm       138/udp    nbdatagram             #NETBIOS Datagram Service
netbios-ssn       139/tcp    nbsession              #NETBIOS Session Service
imap              143/tcp    imap4                  #Internet Message Access Protocol
sql-net           150/tcp
sqlsrv            156/tcp
pcmail-srv        158/tcp                           #PCMail Server
snmp              161/udp                           #SNMP
snmptrap          162/udp    snmp-trap              #SNMP trap
print-srv         170/tcp                           #Network PostScript
bgp               179/tcp                           #Border Gateway Protocol
irc               194/tcp                           #Internet Relay Chat Protocol       
ipx               213/udp                           #IPX over IP
rtsps             322/tcp
rtsps             322/udp
mftp              349/tcp
mftp              349/udp
ldap              389/tcp                           #Lightweight Directory Access Protocol
https             443/tcp    MCom                   #HTTP over TLS/SSL
https             443/udp    MCom                   #HTTP over TLS/SSL
microsoft-ds      445/tcp
microsoft-ds      445/udp
kpasswd           464/tcp                           # Kerberos (v5)
kpasswd           464/udp                           # Kerberos (v5)
isakmp            500/udp    ike                    #Internet Key Exchange
crs               507/tcp                           #Content Replication System
crs               507/udp                           #Content Replication System
exec              512/tcp                           #Remote Process Execution
biff              512/udp    comsat
login             513/tcp                           #Remote Login
who               513/udp    whod
cmd               514/tcp    shell
syslog            514/udp
printer           515/tcp    spooler
talk              517/udp
ntalk             518/udp
efs               520/tcp                           #Extended File Name Server
router            520/udp    route routed
ulp               522/tcp   
ulp               522/udp   
timed             525/udp    timeserver
tempo             526/tcp    newdate
irc-serv          529/tcp
irc-serv          529/udp
courier           530/tcp    rpc
conference        531/tcp    chat
netnews           532/tcp    readnews
netwall           533/udp                           #For emergency broadcasts
uucp              540/tcp    uucpd
klogin            543/tcp                           #Kerberos login
kshell            544/tcp    krcmd                  #Kerberos remote shell
dhcpv6-client     546/tcp                           #DHCPv6 Client
dhcpv6-client     546/udp                           #DHCPv6 Client
dhcpv6-server     547/tcp                           #DHCPv6 Server
dhcpv6-server     547/udp                           #DHCPv6 Server
afpovertcp        548/tcp                           #AFP over TCP
afpovertcp        548/udp                           #AFP over TCP
new-rwho          550/udp    new-who
rtsp              554/tcp                           #Real Time Stream Control Protocol
rtsp              554/udp                           #Real Time Stream Control Protocol
remotefs          556/tcp    rfs rfs_server
rmonitor          560/udp    rmonitord
monitor           561/udp
nntps             563/tcp    snntp                  #NNTP over TLS/SSL
nntps             563/udp    snntp                  #NNTP over TLS/SSL
whoami            565/tcp
whoami            565/udp
ms-shuttle        568/tcp                           #Microsoft shuttle
ms-shuttle        568/udp                           #Microsoft shuttle
ms-rome           569/tcp                           #Microsoft rome
ms-rome           569/udp                           #Microsoft rome
http-rpc-epmap    593/tcp                           #HTTP RPC Ep Map
http-rpc-epmap    593/udp                           #HTTP RPC Ep Map
hmmp-ind          612/tcp                           #HMMP Indication
hmmp-ind          612/udp                           #HMMP Indication
hmmp-op           613/tcp                           #HMMP Operation
hmmp-op           613/udp                           #HMMP Operation
ldaps             636/tcp    sldap                  #LDAP over TLS/SSL
doom              666/tcp                           #Doom Id Software
doom              666/udp                           #Doom Id Software
msexch-routing    691/tcp                           #MS Exchange Routing
msexch-routing    691/udp                           #MS Exchange Routing
kerberos-adm      749/tcp                           #Kerberos administration
kerberos-adm      749/udp                           #Kerberos administration
kerberos-iv       750/udp                           #Kerberos version IV
mdbs_daemon       800/tcp
mdbs_daemon       800/udp
ftps-data         989/tcp                           #FTP data, over TLS/SSL
ftps              990/tcp                           #FTP control, over TLS/SSL
telnets           992/tcp                           #Telnet protocol over TLS/SSL
imaps             993/tcp                           #IMAP4 protocol over TLS/SSL
ircs              994/tcp                           #IRC protocol over TLS/SSL
pop3s             995/tcp    spop3                  #pop3 protocol over TLS/SSL (was spop3)
pop3s             995/udp    spop3                  #pop3 protocol over TLS/SSL (was spop3)
kpop             1109/tcp                           #Kerberos POP
nfsd-status      1110/tcp                           #Cluster status info
nfsd-keepalive   1110/udp                           #Client status info
nfa              1155/tcp                           #Network File Access
nfa              1155/udp                           #Network File Access
activesync       1034/tcp                           #ActiveSync Notifications
phone            1167/udp                           #Conference calling
opsmgr           1270/tcp                           #Microsoft Operations Manager
opsmgr           1270/udp                           #Microsoft Operations Manager
ms-sql-s         1433/tcp                           #Microsoft-SQL-Server
ms-sql-s         1433/udp                           #Microsoft-SQL-Server
ms-sql-m         1434/tcp                           #Microsoft-SQL-Monitor
ms-sql-m         1434/udp                           #Microsoft-SQL-Monitor               
ms-sna-server    1477/tcp
ms-sna-server    1477/udp
ms-sna-base      1478/tcp
ms-sna-base      1478/udp
wins             1512/tcp                           #Microsoft Windows Internet Name Service
wins             1512/udp                           #Microsoft Windows Internet Name Service
ingreslock       1524/tcp    ingres
stt              1607/tcp
stt              1607/udp
l2tp             1701/udp                           #Layer Two Tunneling Protocol
pptconference    1711/tcp
pptconference    1711/udp
pptp             1723/tcp                           #Point-to-point tunnelling protocol
msiccp           1731/tcp
msiccp           1731/udp
remote-winsock   1745/tcp
remote-winsock   1745/udp
ms-streaming     1755/tcp
ms-streaming     1755/udp
msmq             1801/tcp                           #Microsoft Message Queue
msmq             1801/udp                           #Microsoft Message Queue
radius           1812/udp                           #RADIUS authentication protocol
radacct          1813/udp                           #RADIUS accounting protocol
msnp             1863/tcp
msnp             1863/udp
ssdp             1900/tcp
ssdp             1900/udp
close-combat     1944/tcp
close-combat     1944/udp
nfsd             2049/udp    nfs                    #NFS server
knetd            2053/tcp                           #Kerberos de-multiplexor
mzap             2106/tcp                           #Multicast-Scope Zone Announcement Protocol
mzap             2106/udp                           #Multicast-Scope Zone Announcement Protocol
qwave            2177/tcp                           #QWAVE
qwave            2177/udp                           #QWAVE Experiment Port
directplay       2234/tcp                           #DirectPlay
directplay       2234/udp                           #DirectPlay
ms-olap3         2382/tcp                           #Microsoft OLAP 3
ms-olap3         2382/udp                           #Microsoft OLAP 3
ms-olap4         2383/tcp                           #Microsoft OLAP 4
ms-olap4         2383/udp                           #Microsoft OLAP 4
ms-olap1         2393/tcp                           #Microsoft OLAP 1
ms-olap1         2393/udp                           #Microsoft OLAP 1
ms-olap2         2394/tcp                           #Microsoft OLAP 2
ms-olap2         2394/udp                           #Microsoft OLAP 2
ms-theater       2460/tcp
ms-theater       2460/udp
wlbs             2504/tcp                           #Microsoft Windows Load Balancing Server
wlbs             2504/udp                           #Microsoft Windows Load Balancing Server
ms-v-worlds      2525/tcp                           #Microsoft V-Worlds
ms-v-worlds      2525/udp                           #Microsoft V-Worlds
sms-rcinfo       2701/tcp                           #SMS RCINFO
sms-rcinfo       2701/udp                           #SMS RCINFO
sms-xfer         2702/tcp                           #SMS XFER
sms-xfer         2702/udp                           #SMS XFER
sms-chat         2703/tcp                           #SMS CHAT
sms-chat         2703/udp                           #SMS CHAT
sms-remctrl      2704/tcp                           #SMS REMCTRL
sms-remctrl      2704/udp                           #SMS REMCTRL
msolap-ptp2      2725/tcp                           #MSOLAP PTP2
msolap-ptp2      2725/udp                           #MSOLAP PTP2
icslap           2869/tcp
icslap           2869/udp
cifs             3020/tcp
cifs             3020/udp
xbox             3074/tcp                           #Microsoft Xbox game port
xbox             3074/udp                           #Microsoft Xbox game port
ms-dotnetster    3126/tcp                           #Microsoft .NET ster port
ms-dotnetster    3126/udp                           #Microsoft .NET ster port
ms-rule-engine   3132/tcp                           #Microsoft Business Rule Engine Update Service
ms-rule-engine   3132/udp                           #Microsoft Business Rule Engine Update Service
msft-gc          3268/tcp                           #Microsoft Global Catalog
msft-gc          3268/udp                           #Microsoft Global Catalog
msft-gc-ssl      3269/tcp                           #Microsoft Global Catalog with LDAP/SSL
msft-gc-ssl      3269/udp                           #Microsoft Global Catalog with LDAP/SSL
ms-cluster-net   3343/tcp                           #Microsoft Cluster Net
ms-cluster-net   3343/udp                           #Microsoft Cluster Net
ms-wbt-server    3389/tcp                           #MS WBT Server
ms-wbt-server    3389/udp                           #MS WBT Server
ms-la            3535/tcp                           #Microsoft Class Server
ms-la            3535/udp                           #Microsoft Class Server
pnrp-port        3540/tcp                           #PNRP User Port
pnrp-port        3540/udp                           #PNRP User Port
teredo           3544/tcp                           #Teredo Port
teredo           3544/udp                           #Teredo Port
p2pgroup         3587/tcp                           #Peer to Peer Grouping
p2pgroup         3587/udp                           #Peer to Peer Grouping
ws-discovery     3702/udp                           #WS-Discovery
ws-discovery     3702/tcp                           #WS-Discovery
dvcprov-port     3776/tcp                           #Device Provisioning Port
dvcprov-port     3776/udp                           #Device Provisioning Port
msfw-control     3847/tcp                           #Microsoft Firewall Control
msdts1           3882/tcp                           #DTS Service Port
sdp-portmapper   3935/tcp                           #SDP Port Mapper Protocol
sdp-portmapper   3935/udp                           #SDP Port Mapper Protocol
net-device       4350/tcp                           #Net Device
net-device       4350/udp                           #Net Device
ipsec-msft       4500/tcp                           #Microsoft IPsec NAT-T
ipsec-msft       4500/udp                           #Microsoft IPsec NAT-T
llmnr            5355/tcp                           #LLMNR
llmnr            5355/udp                           #LLMNR
wsd              5357/tcp                           #Web Services on devices
wsd              5358/tcp                           #Web Services on devices
rrac             5678/tcp                           #Remote Replication Agent Connection
rrac             5678/udp                           #Remote Replication Agent Connection
dccm             5679/tcp                           #Direct Cable Connect Manager
dccm             5679/udp                           #Direct Cable Connect Manager
ms-licensing     5720/tcp                           #Microsoft Licensing
ms-licensing     5720/udp                           #Microsoft Licensing
directplay8      6073/tcp                           #DirectPlay8
directplay8      6073/udp                           #DirectPlay8
man              9535/tcp                           #Remote Man Server
rasadv           9753/tcp
rasadv           9753/udp
imip-channels   11320/tcp                           #IMIP Channels Port
imip-channels   11320/udp                           #IMIP Channels Port
directplaysrvr  47624/tcp                           #Direct Play Server
directplaysrvr  47624/udp                           #Direct Play Server

Y que el sistema utlizará para identificarlo, pero NO UTILICEMOS ESTO PARA CAMBIAR NADA, simplemente utilicemos otro puerto para el servicio y cambiémoslo en el generador de topologías, porque mediante la replicación entre el Front-END y el EDGE (vía puerto 4443) se le enviarán los cambios al EDGE y los servicios de iniciarán sin problema. En mi caso he elegido el puerto 446  (si lo buscáis en la lista no lo encontraréis, por lo que a menos que tengáis alguna aplicacion propietaría no está asignado a ningún servicio estándar)

SRV-LYNC00-2014-03-25-07-39-40-1.png
Y una vez recibido el cambio en el EDGE mediante la replicación ya podemos iniciar sin problemas el servicio en el puerto 446

EDGE-2014-03-25-09-11-06.png
EDGE-2014-03-25-09-34-59.png

Ahora que los servicios se han iniciado correctamente, podemos verificar que el puerto está a la escucha con el siguiente comando: netstat -an | find ":446" y solo por la IP externa (192.168.192.120) que debe estar asignado este puerto:

EDGE-2014-03-29-13-53-16.png
Por lo que no os dejéis llevar por la "inercia" del querer terminar sin más y analizar con cuidado antes estas cosas. Porque sino como podéis apreciar, los servicios no se iniciarán nunca a pesar de que "pensemos" que teemos todo "bien configurado".

Y por último como comentario, deciros que sino utilizamos el puerto 443 para los servicios del EDGE o servicios Web a publicar, podemos tener problemas de conexión en algunos entornos. Por ejemplo, hoteles, redes inalámbricas públicas o privadas (empresas), porque si tienen una sistema de control de internet lo normal es que se permitan únicamente ciertos protocolos:

  • DNS
  • HTTP
  • HTTPS: el puerto es el 443, por lo que podríamos conectarnos por lo menos a Lync vía IM (por que podemos tener acceso al 443 pero luego tener bloqueados los puertos del RTP: 50.000-59.999)
  • FTP
  • POP (cada vez menos, viva Exchange)
  • SMTP Cliente (cada vez menos, viva Exchange)

Que podemos publicar todos los servicios con una IP Pública es cierto, con la mínima inversión, etc… pero así es posible que tengamos algún problema de conectividad por filtrado de puertos en muchas redes.

EDGE con 1 IP Pública-1.png

El puerto 5061 cada día es más habitual, por lo que es posible que para iniciar sesión no tengáis problemas, pero para uniros a conferencias con el cliente Lync e iniciar una sesión de A/V  será más complicado. Aquí la cuestión es utilizar puertos que podamos tener disponibles y que estén habilitados en los firewalls de las redes desde las cuales nos conectemos, pero si tenemos vía libre por parte del "firewall", Lync (y servicios adyacentes) se puede implementar sin problemas con una sola IP. Como los servicios Web (Lync Móvil, Exchange (EWS), WAC) van todos mediante el puerto 443 y lo hemos dejado libre, únicamente debemos configurarlo en el reverse-proxy con su certificado correspondiente y poco más.

Espero que os esa de utilidad!!

Excelente esquema de Microsoft sobre la gestión de la calidad de llamadas en Lync (pulsar en la imagen para verla a tamaño completo)

CQM-final.jpg

 

Aquí os dejo los enlaces de descargar:

 

Microsoft ha publicado una actualización para el cliente Lync 2013, únicamente para recogir algunos problemas y ganar en estabilidad:

Cliente_Lynclyncloc2013-kb2863908-fullfile-x64-glb.png

Update
Update

 

Microsoft has released an update for Microsoft Lync 2013 64-Bit Edition. This update provides the latest fixes to Microsoft Lync 2013 64-Bit Edition. Additionally, this update contains stability and performance improvements.
FREE
Release Date:
3/7/2014
Update
Update
Microsoft has released an update for Microsoft Lync 2013 32-Bit Edition. This update provides the latest fixes to Microsoft Lync 2013 32-Bit Edition. Additionally, this update contains stability and performance improvements.
FREE
Release Date:
3/7/2014

 

La información relacionada con estas actualizaciones la podéis encontra aquí: http://support.microsoft.com/kb/2863908

 

After you install this update, you may experience the issues that are described in the following Microsoft Knowledge Base (KB) articles:

 

  • 2898357

    Screen readers cannot read aloud keystrokes during a Lync 2013 application or desktop sharing session in Windows

  • 2932389

    Persistent Chat file transfer fails between an external user and an internal user in Lync 2013

Todos los que tenéis implementaciones de Lync es posible que se os plantee la duda de que reverse-proxy debéis utilizar​, si es o no necesario (Lync Server: Reverse-Proxy requisito indispensable) y como deberíamos configurarlo. Para estas preguntas hay múltiples respuestas, pero en este artículo vamos a centranos en IIS ARR ya que TMG 2010 se ha descontinuado por parte de Microsoft:

IIS_ARR_Proxy_Lync.png
Ahora debemos descarganos el IIS ARR 2.5 (cuando he realizado esta instalación la versioón 3.0 era una versión Beta y he visto por algunos  foros que la gente tenia bastante problemas con ella así que …), para ello podemos hacerlo desde la siguiente URL: http://www.microsoft.com/web/gallery/install.aspx?appid=ARRv2_5, una vez descargada el proceso de instalación es muy sencillo:
Pulsamos en Get the Web Plataform Installer
 
IIS_ARR_Proxy_Lync_7.png
Pulsamos en Ejecutar (si preferís descargarla pues pulsar en Guardar)
IIS_ARR_Proxy_Lync_8.png
IIS_ARR_Proxy_Lync_10.png
Pulsamos en Instalar

IIS_ARR_Proxy_Lync_9.png
Antes de iniciar el proceso de instalación el instalador verificará si cumplimos con los requisitos previos y nos avisará que necesitaremos más complementos que debemos tener previamente instalados pero con pulsar en Acepto ya se encargará el asistente de realizar las descargas e instalaciones necesarias:
IIS_ARR_Proxy_Lync_41.png
IIS_ARR_Proxy_Lync_42.png
IIS_ARR_Proxy_Lync_43.png
Una vez que hemos pulsado en Finalizar podemos ir al IIS ya podemos ver que tenemos el IIS ARR instalado porque ya tenemos disponible la opción de Server Farms. Además, si queremos "asegurarnos" de que está instalado, pulsamos en Instalador de plataforma web (que también podéis hacer la instalación del IIS ARR desde aquí)
IIS_ARR_Proxy_Lync_44.png
Y como vemos lo tenemos disponible pero ya instalado
IIS_ARR_Proxy_Lync_45.png
Una vez que tenemos todo instalado, debemos crear distintas granjas de servidores pero en este articulo solo nos centraremos en tener un servidor de Lync únicamente. Para ello pulsamos con el botón secundario del ratón encioma de Server Farms y pulsamos en Create Server Farm…
IIS_ARR_Proxy_Lync_46.png
Escribimos un nombre descriptivo y pulsamos en Siguiente
IIS_ARR_Proxy_Lync_47.png
Escribimos el nombre del servidor o  su dirección IP, además pulsamos en Show Avanced settings para modificar los puertos de destino de las peticiones enviadas a dicho servidor (8080 y 444) a los servicios Web del Front-END y pulsamos en Add
IIS_ARR_Proxy_Lync_48.png
y pulsamos en Finalizar
IIS_ARR_Proxy_Lync_49.png
Se nos abre una ventana informativa que nos comunica que se crearán las rutas entrantes para esta regla, debemos pulsar en
IIS_ARR_Proxy_Lync_50.png

Lo siguiente que debemos hacer es configurar algunas de las siguientes opciones que tenemos disponibles (las marco en verde):

IIS_ARR_Proxy_Lync_52.png
Estas opciones las podéis encontrar documentadas por Microsoft aquí: http://technet.microsoft.com/es-es/library/gg429712.aspx
 
Caching
IIS_ARR_Proxy_Lync_53.png
Proxy
IIS_ARR_Proxy_Lync_54.png
 
Routing Rules
IIS_ARR_Proxy_Lync_55.png
Una vez que hemos configurado las distintas opciones para la granja de servidores, debemos ver las reglas que se han creado de forma automática cuando se hemos creado la granja de servidores para Lync
IIS_ARR_Proxy_Lync_56.png
Como podemos observar tenemos reglas para HTTP y HTTPS, yo solo quiero permitir el tráfico HTTPS por lo que debemos borrar la configuración de HTTP
IIS_ARR_Proxy_Lync_57.png
IIS_ARR_Proxy_Lync_58.png
De esta forma ya solo tenemos HTTPS en la configuración de ruteo de las peticiones entrantes
IIS_ARR_Proxy_Lync_59.png
Lo primero que haremos será configurar los nombres públicos (similitud con TMG) para los que esta regla estará disponible, por lo que en la sección de condiciones  pulsamos en agregar y añadimos como Entrada de condición {JHTTP_HOST} y como Patrón *.asirsl.com. De esta forma responderá a todas las solicitudes que en el encabezado de la petrición tenga cualquier URL con el dominio especificado. Esto nos serviría si solo vamos a publicar los servicios de un servidor, pero si tenemos más servicios para publicar en distintos servidores debemos introducir las URL o patrones que identifique a las URL de Lync (en este caso)
 
IIS_ARR_Proxy_Lync_60.png
Si lo dejásemos así configurado y pulsásemos en Probar Patrón podemos observar que responderá a cualquier petición:
IIS_ARR_Proxy_Lync_69.png
Y como las peticiones se  enviarán a la granja de servidores de Lync, tendríamos un problema porque la petición mail.asirsl.com debería ir a otra granja de servidores que se corresponda con el servidor de Exchange.
IIS_ARR_Proxy_Lync_70.png
Por lo que para evitar este problema debemos añadir los siguientes patrones que se corresponderán con las URL que publicaremos en Lync:
  • lyncdiscover.asirsl.com: Servicios Web Mobile
  • meet.asirsl.com: Reuniones en línea
  • dialin.asirsl.com: Conferencia Telefónica
  • pool.asirsl.com: Servicios Web Externos
IIS_ARR_Proxy_Lync_66.png
Sí ahora probásemos nuevamente a realizar una comprobación de alguno de los patrones, veremos que no coindirá nunca con la URL del correo (mail.asirsl.com)
IIS_ARR_Proxy_Lync_71.png
Para finalizar la configuración debemos especificar a que granja de servidores enviarmos las peticiones que tengan como encabezado de host las anteriormente configuradas, en nuestro caso elegiremos LyncServer (la granja que hemos creado anteriormente)
IIS_ARR_Proxy_Lync_72.png
 
Y ahora nos queda la última parte (o primera) y que no hemos visto que ese la de configurar el certificado, que sin el no haremos nada. En el TMG se configura sobre el Listener y en el IIS ARR  se debe configurar sobre un sitio web, debemos configurar el listerner para el puerto 443 (recordad que antes hemos elegido el 4443 pero ese es el puerto por el que escucha las peticiones de los servicios Web Externos el Lync) y el certificado correspondiente:
IIS_ARR_Proxy_Lync_67.png
Me repito, en mi caso solo tengo Lync pero si tuviésemos más servicios a publicar por le mismo puerto (443) utilizaría también esta configuración. A todos los efectos es el listerner del TMG (con las limitaciones del IIS claro). Por lo que podríamos tener un certificado wildcard igualmente, porque podremos utilizarlo para publicar Exchange, Lync, SharePoint, WAC, etc.. para cada servicio que esté en un servidor difeernte debéis crear una granja de servidores y configurar las URL de estos servicios en las opciones de Reescritura de dirección URL. En mi caso (me vuelvo a repetir) solo tengo Lync, pero perfectamente puedo publicar WAC, SharePoint, Exchange, etc.. solo tendría que ajusta los
IIS_ARR_Proxy_Lync_73.png

La configuración se puede extender y parametrizar algo más, pero esto es lo esencial para publicar los distintos servicios de Lync. Si habéis manejado en alguna ocasión TMG 2010 tiene muchísimas similitudes pero con diferentes nombres y opciones, pero también es cierto que es un producto muy muy simple y  con muchas limitaciones con respecto a TMG u otras soluciones pero bueno, cumple el objetivo:

IIS_ARR_Proxy_Lync_74.png

Algo que no he comentado, es que los servidores publicados no tienen que tener como puerta de enlace el servidor en donde tengamos el IIS ARR ni tampoco el IIS ARR debe tener de forma obligatoria más de una tarjeta de red. Yo he publicado Lync, Exchange y SharePoint con un servidor con una única tarjeta de red y funciona todo sin problmeas. Lo recomendable, claramente dos tarjetas de red, etc… pero  funciona sin problema con los mínimos recursos de los que dispongáis.

 
Si aún sois de los que tenéis TMG 2010, igualmente aquí tenéis las configuraciones en algunos artículos que había subido hace algún tiempo:

 Espero que os sea de utilidad!!!