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!!

Imagino que muchos de vosotros ya conocéis lo  que son las Carpetas de Trabajo (Work Folders), algo que ha llegado como novedad con Windows Server 2012 R2. Nos permite sincronizar carpetas y documentos en un concepto muy similar a OneDrive, pero por decirlo de alguna forma sería algo On-Premises, puesto que la infraestructura la administraremos nosotros puesto que sería sobre nuestra infraestructura. Aqui la idea es poder sincronizar carpetas de nuestra organización de forma bidireccional, lo que nos permitirá actualizar dicha información en cualquier momento y cuando tengamos conexión actualizarla hacia nuestros servidores. Esto resulta muy útil en los escenarios BYOD, puesto que podremos dar acceso a nuestros usuarios coporativos que utlicen sus propios dispostivos (ahora mismo solo soportado con Windows 8.1) y de forma segura. Para este LAB se ha necesitado la siguiente infraestructura:

  • Servidores Windows Server 2012
    • Controlador de Dominio y Entidad Certificadora
    • Servidor de Ficheros con el Rol de Carpetas de Trabajo
  • Windows 8.1 Pro
    • No Unido al Dominio

Con esta infraestructura podemos hacer un despliegue de las Carpetas de Trabajo, y para ello nos vamos al servidor de Ficheros y añadimos la característica necesaria

SRV-FS00-2014-03-22-22-27-39.png

Pulsamos en Siguiente

SRV-FS00-2014-03-22-22-27-52.png
Elegimo la opción Instalación basada en características o en roles y pulsamos en Siguiente
SRV-FS00-2014-03-22-22-27-57.png
SRV-FS00-2014-03-22-22-28-03.png
Seleccionamos Carpetas de Trabajo debajo de Servicios de archivos y almacenamiento – Servicios de iSCSI y archivo
SRV-FS00-2014-03-22-22-44-06.png
No debemos seleccionar característica alguna (de forma manual) y pulsamos en Siguiente
SRV-FS00-2014-03-22-22-44-23.png
Antes de comenzar el proceso de instalación nos muestra como siempre un resumen de las características o roles a instalar, pulsamos en Instalar
SRV-FS00-2014-03-22-22-44-30.png
Cuando finalice la instalación pulsamos en Cerrar para continuar con el proceso de configuración
SRV-FS00-2014-03-22-22-46-52.png
Ahora desde la consola de Administrador del Servidor, nos vamos a la sección de Servicios de Archivos y de almacenamiento – Carpetas de Trabajo y pulsamos sobre el texto que tenemos en pantalla: Para crear un recurso compartido de sincronización para Carpetas de trabajo, inicie el asistente para crear recursos compartidos de sincronización
SRV-FS00-2014-03-22-22-47-09.png
Pulsamos en Siguiente
SRV-FS00-2014-03-22-22-47-52.png
Ahora selccionamos el servidor y la ruta de acceso a los ficheros que vamos a configurar como sincronizables para las carpetas de trabajo, yo he creado previamente los recursos compartidos. Únicamente debemos seleccionar el recurso que queremo sincronizar o bien podemos elegir una carpeta local en el servidor el cual vamos a configurar, pulsamos en Siguiente
SRV-FS00-2014-03-22-22-49-47.png
Aqui debemos especificar el formato en cuanto a nomenclatura de la carpeta del usuario:

 

SRV-FS00-2014-03-23-13-25-44.pngEsto lo utilazará para crear una carpeta para cada usuario dentro de la carpeta raíz que hemos configurado en el paso anterior. Si tenéis usuarios de varios dominios siempre es recomendable hacerlo con la segunda opción. Luego tenemos la posibilidad de
SRV-FS00-2014-03-22-22-53-24.png
Escribimos un nombre para el recurso compartido y pulsamos en Siguiente
SRV-FS00-2014-03-22-22-53-28.png
Debemos agregar a un grupo de usuarios o usuarios para aplicar esta configuacion, desmarcaremos la casilla Deshabilitar permisos heredados y conceder a los usuarios acceso exclusivo a sus archivos si queremos que herede los permisos de la carpeta raíz (recomendado en la mayoría de las ocasiones), pulsamos en siguiente
SRV-FS00-2014-03-22-22-54-40.png
Ahora podemos especificar (recomendado) que se cifren las carpetas de trabajo (EFS) y bloquear pantalla automáticamente y requerir contraseña, pulsamos en SiguienteSRV-FS00-2014-03-22-22-54-47.png
Por último nos muestra un resumen de la configuración, si todo está según lo esperado pulsamos en CrearSRV-FS00-2014-03-22-22-54-54.png

 

 

Cuando finalice el proceso únicamente debemos pulsar en Cerrar
SRV-FS00-2014-03-22-22-54-59.png

 

 

Ahora se nos muestra el resumen de la configuración y los usuarios (miembro del grupo que hemos añadido antes) que tienen acceso a esta carpeta de trabajo
SRV-FS00-2014-03-22-22-55-12.png
Si nos desplazamos al final de la pantalla, podemos ver  la información del volumen (% espacio utilizado, etc..) y también tenemos la posibilidad de configurar las cuotas de disco
SRV-FS00-2014-03-22-22-55-14.png

 

Ya hemos finalizado la primera parte de la configuración, ahora debemos crear un registro DNS, solicitar un certificado y asignarlo para el tráfico HTTPS el cual utilizarán los clientes para conectarse al servicio de carpetas de trabajo. Lo primero es crear un registro CNAME en nuestro servidor DNS (Interno y Externo) para que los usuarios puedan encontar el servicio de forma automática (autodiscover). Para ello debemos crear un registro CNAME (también de tipo A) formado con el FQDN workflow.nombre_dominio, de tal forma que cuando los usuarios quieran configurar sus carpetas de trabajo no tengan que conocer la URL del servicio, sino que simplemente con una consulta DNS puedan localizar dicho servidor. Si queremos que los usuarios se conecten interna y externamente a este servicio, debemos crear el registro DNS en ambos servidores. Al configurarlo en el servidor interno configuraremos un registro CNAME, puesto que el registro de tipo A ya se ha creado cuando el servidor se ha unido al dominio para ello abrimos la consola de administración del servidor DNS y en la zona correspondiente crearemos el registro de tipo CNAME:
SRV-DC00-2014-03-22-23-04-12.png
El registro es muy sencillo, en el nombre de alias escribimos workfolders y pulsamos en examinar para buscar el nombre FQDN del servidor para que se pueda resolver workfolder.asirlab.com y pueda resolver la IP del registro del propio servidor: SRV-FS00.ASIRLAB.COM. Como en el servidor DNS Público no tenemos la necesidad de creare el FQDN del servidor, únicamente crearemos un registro de tipo A con el nombre workfolders.asirlab.com (cada uno sustituye el nombre del dominio por el suyo propio) y la IP Pública correspondiente en donde tengáis alojado estes servicio (o reverse-proxy)
SRV-DC00-2014-03-22-23-05-05.png
 
Con esto ya hemos logrado que cuando los usuarios traten de configurar las Carpetas de Trabajo, únicamente introduzcan su nombre de usuario y se conecten al servidor sin que para ello tengan que introducir de forma manual la URL del mismo. Por último y no menos importante, es solicitar un certificado digital (plantilla de Servidor Web) y asignarlo al listener adecuado. El cómo solicitar un nuevo certificado no lo voy a comentar en este artículo por no repetirme, así que aquí os dejo algunos artículos relacionados con los certificados:
Aunque no son explícitamente artículos sobre certificados para las Carpetas de Trabajo, los procesos de solicitud e instalación son los mismos. En este caso el certificado es basado en una plantilla de certificado de Servidor Web y poco más que tenerlo instalado es el requisito. Una vez que lo tenemos instalado en el Contenedor de Certificados del Equipo Local, debemos ver cual es su Huella Digital, porque lo necesitaremos para idenfiticar el certificado que queremos asignar al servicio de las Carpetas de Trabajo. Para ello vamos a Inicio – Ejecutar – y escribimos certlm.msc  una vez que hemos abierto el almacén de certificados de equipo local, expandimos la opción de Personal – Certificados y ahí encontraremos (debería estar ahí, sino revisar el proceso de instalación del certificado) el certificado que hemos instalado. En mi caso he solicitado un certificado wildcard, porque está perfectamente soportado y así lo puedo utilizar para varios serviciosSRV-FS00-2014-03-22-23-18-57.png
 
Por último debemos ejecutar el siguiente comando desde una línea de comandos (CMD) con privilegios:

netsh http add sslcert ipport=0.0.0.0:443 certhash=<Huella Digital del Certificado> appid={CE66697B-3AA0-49D1-BDBD-A25C8359FD5D} certstorename=MY

SRV-FS00-2014-03-22-23-26-51.png
Si queréis ampliar más información sobre el comando ejecutado aquí tenéis la fuente: http://msdn.microsoft.com/es-es/library/ms733791(v=vs.110).aspx.  Este proceso también se puede completar de forma gráfica, pero para ello deberíamos instalar la consola del IIS (si podéis evitarlo una cosa menos). En cuanto a la configuración del servidor, estaría todo listo ahora nos quedaría la parte del cliente. Si bien es cierto, que si queréis publicarlo a Internet es recomendable hacerlo siempre mediante un reverse-proxy, el proceso es muy sencillo por lo que no voy a comentarlo (tenéis varios artículos en el blog de como publicar distintos servicios web vía reverse-proxy).
 
El paso siguiente será configurar el clidente (de momento tiene que ser un Windows 8.1, en breve MSFT sacará soporte para iPad, Windows 7, etc…). Si los equipos Windows 8.1 pertenecen al dominio, podemos hacerlo vía GPO (Directiva de Equipo y Usuario, en mi caso lo veré solo a nivel de usuario): Configuración de usuario – Directivas – Plantillas administrativas – Componentes de Windows – Carpetas de Trabajo – Especificar configuración de carpetas de trabajo
SRV-DC00-2014-03-23-00-10-37.png
Debemos especificar la URL de las carpetas de trabajo y podemos especificar si Forzamos configuración automática
SRV-DC00-2014-03-23-00-12-38.png

Y como segunda opción de configuración, lo haremos sobre equipos que no están unidos al dominio. Para ello nos vamos al Panel de Control – Carpetas de Trabajo

WIN8.1PRO-2014-03-22-23-30-40.png

 

Pulsamos en Configurar carpetas de trabajo
WIN8.1PRO-2014-03-22-23-30-47.png

 

Podemos utilizar el autodiscover (recordad lo del registro DNS workfolders.nombredominnio creando anteriormente) o introducir de forma manual la URL del servidor en donde tenemos nuestro servidor de Carpetas de Trabajo. En nuestro caso como la utilización de la URL es algo más que obvio, vamos a configurarlo con el autodiscover. Para ello debemos introducir nuestra dirección de correo o login de usuario que tenemos, para que funcione  se debe corresponder el nombre del dominio de nuestra cuenta de correo o login con el dominio publicado, puesto que la parte del dominio la utilizará para buscar el registro DNS workfolder.dominio.com, de tal forma que  si existe el registro DNS no solicitará las credenciales para autenticarnos: jrodriguez@asirlab.com
WIN8.1PRO-2014-03-22-23-31-04.png
 Si analizamos el tráfico de red con Wireshark (o cualquier otro sniffer) veremos que se lanza una consulta al servidor DNS para resolver la IP de workfolders.asirlab.com, por lo que previamente debemos tener el registro DNS creado:
WIN8.1PRO-2014-03-23-20-49-05.png
Una vez que ha resuelto la IP del servidor lanzará la conexión vía HTTPS
WIN8.1PRO-2014-03-23-21-05-27.png
Es posible que si nos conectamos desde un equipo fuera del dominio nos encontremos con el siguiente error antes de poder introducir las credenciales, pero como podemos observar en el mensaje el problema es que como hemos utilizado certificados privados no tenemos instalado el certificado raíz de la CA que ha emitido el certificado del servidor al que nos queremos conectar (Servidor de las Carpetas de Trabajo).
WIN8.1PRO-2014-03-22-23-31-16.png
Esto tiene fácil solución, instalamos el certificado raiz de la entidad certificadora que ha emitido el certificado para el servidor y habremos solucionado el problema (en el Contenedor de Certificados del Equipo Local)
WIN8.1PRO-2014-03-22-23-50-02.png
 
Ahora volvemos lanzar la conexión y nos solicitará las credenciales que nos permitirán conectarnos a los servicios Web de las Carpetas de Trabajo
WIN8.1PRO-2014-03-22-23-50-36.png
Introducimos el nombre de usuario y contraseña del dominio y pulsamos en Aceptar
WIN8.1PRO-2014-03-22-23-51-10.png
Esperamos a que se complete el proceso de configuración
WIN8.1PRO-2014-03-22-23-51-45.png
Una vez que se ha completado la conexión con el servidor, nos muestra la carpeta local por defecto (%userprofile%\Work Folders) en donde se almacenarán los ficheros sincronizados. Si queremos cambiar la ubicación por defecto, debemos pulsar en cambiar
WIN8.1PRO-2014-03-22-23-51-59.png
 
Ahora debemos aceptar las directivas de Seguridad que se hemo configurado desde el servidor (Cifrados de Ficheros (EFS) , Bloqueo de Pantalla y Contraseña al usuario del equipo. Una vez que aceptemos estas directivas se iniciará el proceso de sincronización de los ficheros y carpetas:
WIN8.1PRO-2014-03-22-23-52-07.png
Una vez aceptadas las directivas se aplicarán las directivas en el equipo local
WIN8.1PRO-2014-03-22-23-52-27.png
 
Ya hemos finalizado la configuración de la configuración de las Carpetas de Trabajo y pulsamos en Cerrar
WIN8.1PRO-2014-03-22-23-52-32.png
 
Ahora se nos abre la configuración de la carpetas de trabajo que hemos configurados, tenemos algunas opciones más coo la posibilidad de sincronizarse a través de conexiones de uso medido (3G, etc…) y que se sincronice incluso cuando somos usuarios itinerantes.
WIN8.1PRO-2014-03-22-23-52-39.png
Lo primero que haremos será crear algún fichero y/o carpeta en la carpeta Work Folders que tenemos en nuestro perfil para realizar una primera prueba de sincronización. Para ello pulsamos en Sincronizar ahora y se sincronizará el directorio local Work Folders con la carpeta especificada en el servidor
WIN8.1PRO-2014-03-23-00-00-06.png
 
Esta es la carpeta sincronizada en el servidor
SRV-FS00-2014-03-23-00-01-20.png
Imagino que os habréis dado cuenta que los ficheros y carpetas del equipo están de color verde, eso es que se han cifrado vía EFS
WIN8.1PRO-2014-03-23-00-00-27.png
 
Por último vamos a ver como podemos establecer cuotas de disco sobre las Carpetas de Trabajo, desde el Administrador del Servidor en la sección de Carpetas de Trabajo en la parte inferior derecha tenemos las opciones de Cuota. 
SRV-FS00-2014-03-23-00-07-51.png
Si queremos hacer algo sencillo, simplemente pulsamos encima del texto Para establecer una cuota, abra el cuadro de diálogo Configurar Cuota. y se nos abrirá la siguiente ventana en donde podemos seleccionar algunas de las plantillas de cuota disponibles, si con esto tenemos suficiente elgimos alguna de ellas y pulsamos en Agregar
SRV-FS00-2014-03-23-00-08-05.png
Con esto ya tenemos una cuota de disco asignada a la Carpeta de Trabajo que hemos anteriormente (Supervisar 500MB de recurso)
SRV-FS00-2014-03-23-00-08-09.png
 
Por último comentarios de forma explícita que si queremos publicar este servicio vía Internet (que es lo suyo también), debemos publicar este servicio vía HTTPS y un Reverse-Proxy (no obligatorio). De tal forma que cualquier usuario pueda tener acceso a los datos corporativos desde cualquier lugar.
 
Como podemos observar es muy sencillo de implementar y seguro que dará mucho juego en  muchas organizaciones en donde están implementando BYOD. Pero desde luego llegará su uso masivo cuando MSFT libere su utilización en sistemas NO Microsoft y Windows 7.
 
Espero que os sea 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:

 

En este artículo no mostraré como configurar un servidor DCHP, únicamente me centraré en una de las opciones del servidor DHCP (121 Rutas Estáticas Sin Clase) muy interesante a mi entender y que he visto que se utiliza muy poco. La finalidad de utilizar esta opción es la posibilidad crear rutas estáticas a los clientes desde el servidor DHCP, es especialmente útil en redes pequeñas con hardware L3 con opciones reducidas. Si vemos el siguiente esquema de red, podemos apreciar una red que tiene dos enrutadores y que ambos nos llevarán a redes diferentes: Internet y Sedes remotas conectada por VPN (Cisco VPN IPSec Site-to-Site con Certificados Digitales)

Rutas_Estáticas_DHCP.png

Cuando configuramos un servidor DHCP siempre pensamos en los parámetros básicos:

  • Dirección IP
  • Máscara de Subred
  • Puerta de Enlace
  • DNS Primario
  • DNS Secundario
  • Etc….

Lógicamente con estos parámetros podemos conectarnos a la red y tener acceso a resolución DNS por lo que a buen seguro tendremos acceso a los recursos de la compañia e Internet. Pero es posible que entornos más pequeños en vez de tener un sistema en HA a nivel de comunicaciones, tengamos dos routers/firewalls que estén funcionando de forma independiente cada uno con su conexión a Internet y cada uno de ellos con servicios diferentes (Internet y VPN). Según el esquema anterior, estos serían los datos de nuestra redes:

  • Servidor DHCP
    • Pool 10.100.100.5010.100.100.80
    • DNS: 10.100.100.x
    • Gateway: 10.100.100.1
  • Sedes Remotas
      • 192.168.250.0/24
      • 192.168.251.0/24
  • Router 1 (Servicio de Internet): 10.100.100.1
  • Router 2 (Servicio de VPN): 10.100.100.10

Todos los equipos de la red están configurados mediante DHCP, facilitando así la configuración de los parámetros de red. Como el router 1 solo nos ofrece la conexión a Internet, este será el que configuraremos como puerta de enlace (10.100.100.1) en  los equipos, para que todo el tráfico para el cual el equiop no tenga ruta conocida (rutas estáticas o red local) lo envié al router y este enrute la petición hacia Internet (por que es lo único que tiene configurado este dispositivo). Esto nos vale para conectarnos a destinos "no conocidos" previamente, por ejemplo Internet. El Router 2 (10.100.100.10) es un router en el cual hemos configurado nuestras VPN, y solo lo utilizaremos para esto. Este router es el que "sabe" como llegar a las subredes de las otras sedes, y será el encargado de conectarnos con ellas. Llegado a este punto podemos realizar varias configuraciones:

  • Configurar rutas estáticas en todos los equipos de forma manual: route add 192.168.250.0 mask 255.255.255.0 10.100.100.10 -p y route add 192.168.251.0 mask 255.255.255.0 10.100.100.10 -p
  • Configura rutas estáticas en el router 1: de esta forma los equipos enviarán las peticiones dirigidas a su puerta de enlace (10.100.100.1) y el router 1 (10.100.100.1) se las enviará al router 2 (10.100.100.10), de tal forma que el enrutamiento lo harán entre los routers 1 y 2
  • Configurar rutas estáticas vía DHCP: podemos enviar actualizaciones a la tabla local de ruteo de los equipos a través del DHCP

De estas tres opciones, me quedo con la tercera y os comento el porqué. La primera opción es viable si tenemos 5 equipos, si tenemos 30 lo complicamos y si tenemos 100 no tiene sentido. El proceso es manual (aunque podamos configurar GPO para actualizar las rutas o automatizar el proceso de alguna forma), no dejará de ser un sistema manual siempre muy propenso a fallos. El segundo sistema funciaría perfectamente, podríamos tener un problema de rendimiento, puesto que añadimos un salto más (aunque sea una red local) de una interface LAN del Router 1 al Router 2, puesto que la comunicación sería de la siguiente forma (pulsar en la imagen para verlo a tamaño original):

Rutas_Estáticas_DHCP_Router_1.png
Con esta configuración, cuando algún equipo necesite conectarse a algún recurso de las sedes remotas (192.168.250.0/24 y 192.168.251.0/24) se conectarál Router 1 (10.100.100.1) y este al Router 2 (10.100.100.10) y de ahí  las sedes. El tráfico de retorno se le devolverá de igual forma, porque es el gateway por donde los equipos pueden conectarse a las sedes (esto también es discutible, pero dejémoslo así). Ahora bien, si logramos que todos los equipos tengan una ruta estática definiendo que para llegar a las sedes conectar por VPN se conectarán mediante el Router 2 (10.100.100.10) el tráfico será directo entre los clientes y el router, esto evitará latencias indeseadas y menos puntos de falla, este seria el esquema (pulsar en la imagen para verlo a tamaño original):

Rutas_Estáticas_DHCP_Router_2.png

Como podéis apreciar en el esquema anterior, vemos que por defecto el tráfico dirigido a las sedes se envirá directamente al Router 2 (10.100.100.10), esto evitará pasar por la interface del Router 1 (10.100.100.1) y añadiendo latencia en el enlace hacia el Router 2 (10.100.100.10). Siendo esta la configuración deseada, ahora debemos ver como configurarlo de forma automática y para ello vamos a utilizar la opción 121 de nuestro servidor DHCP (en este caso un Windows Server). Para ello configuramos nuestro ámbito DHCP y luego añadimos la opción 121 desde las Opciones de ámbito:

Rutas_EstEticas_vIa_DHCP_1.png

Esta opción debemos buscarla en las Opciones del Ámbito, está al final de la lista (por defecto) y habilitamos la casilla de 121 Rutas estáticas si clase

Rutas_EstEticas_vIa_DHCP_3.png
 
Ahora únicamente debemos configurar las rutas que queramos enviar a los clientes DHCP, debemos especificar la red de destino, la máscara y la puerta de enlace  por la que queremos llegar a esa subred:
  • Destino: 192.168.250.0
  • Máscara de red: 255..255.255.0
  • Puerta de Enlace: 10.100.100.10
Rutas_EstEticas_vIa_DHCP_4.png
Debemos agregar tantas rutas como necesitamos
Rutas_EstEticas_vIa_DHCP_5.png
 
Como podemos apreciar ya tenemos una ruta agregada, si  queremos más rutas estáticas pues las agregamos
Rutas_EstEticas_vIa_DHCP_7.png
 
Antes de aplicar esta configuración en el DHCP, veamos que tabla de ruteo tenía un equipo sin la opción 121 del DHCP, para ello desde una línea de comandos escribimos route print:

Rutas_EstEticas_vIa_DHCP_8.png

Y sí analizamos los distintos paquetes del DHCP vía WiresHark podemos ver como nos entrega los parámetros que hemos configurado en el DHCP Server y el número de opción

Rutas_EstEticas_vIa_DHCP_12.png
Como vemos no tiene ruta alguna para la red 192.168.250.0/24 y  la puerta de enlac es la 10.100.100.1 (este router no tendría configuración alguna de ruteo hacia las sedes conectadas por VPN, únicamente local (LAN) E internet (WAN).  Si ahora aplicamos la configuración al DHCP con la opción 121 vemos que el equipo recibe la ruta estática en su tabla de ruteo, no está como permanente porque la recibe del servidor cada vez que solicite una IP.  Como vemos ya tenemos una ruta hacia la red 192.168.250.0/24 y la puerta de enlace para el tráfico sin destino conocido (0.0..0.0 0.0.0.0) tiene para nosotros la la IP del Router 1 (10.100.100.1)

 

Rutas_EstEticas_vIa_DHCP_11.png

Si ahora abrimos una traza de Wireshark nos encontramos lo siguiente, vemos que tenemos la opción 121 con la ruta estática creada y que con el route print podemos ver en el equipo. En mi caso yo he utilizado la IP 10.100.100.1 como servidor DHCP  pero este sería la del router por el cual salimos a Internet (es un LAB y hay que aprovechar recursos). Pero a todos los efectos es operativo, por lo que la IP 10.100.100.1 es nuestra puerta de enlace para el tráfico de Internet, y sin embargo ahora teenemos una ruta hacia la red 192.168.250.0/24 a través del Router 2 (10.100.100.10). Lo que está claro que es la interface LAN de ambos routers debe estar en la misma subred que los clientes, sino … no podremos llegar directamente sin otro enrutador de por medio. En este caso hablamos siempre de un escenario muy simple, un switch y dos routers con una interface LAN y WAN.

Rutas_EstEticas_vIa_DHCP_13.png
 
Pues con esto tenemos todo configurado, como vemos es muy sencillo configurar "rutas estáticas" en los equipos de nuestra red desde nuestro servidor DHCP. Ya os digo que es muy útil para muchos entornos en donde no tengamos un hardware de L3 adecuado, puesto que si tenemos un switch L3 ya podemos hacer el ruteo a nivel de este switch y no tocamos el DHCP, etc… 
 
Espero que haya quedado mas o menos claro el concepto, y el porqué elegir una opción y no otra, cuestión de optimización, automatización y simplicidad. En un servidor DHCP tenemos muchas opciones de configuración muy interesantes, así que ahora os toca explorarlas a vosotros …