480 likes | 1.06k Views
EXL412. Lync Deep Dive: Edge Media Connectivity with ICE. Thomas Binder UC Voice Architect – MCS Voice Center of Excellence Microsoft Corporation. Session Objectives and Takeaways. What is A/V Edge Server actually doing? How do we find the optimal media path? How do I read client logs?
E N D
EXL412 LyncDeep Dive: Edge Media Connectivity with ICE Thomas Binder UC Voice Architect – MCS Voice Center of Excellence Microsoft Corporation
Session Objectives and Takeaways • What is A/V Edge Server actually doing? • How do we find the optimal media path? • How do I read client logs? • It’s interesting! • Understand call flows • It will help you troubleshoot!
AgendaMedia connectivity through Edge (ICE) • Problems for media connectivity • Protocols for establishing media • Establishing a media session • Call flows • Q&A
Thomas Binder • Thomas Binder • Austria, Vienna • Working on OCS/Lync since 2007 • MCS Voice Center of Excellence • tbinder@microsoft.com
Whatyoushouldalreadyknow • Scope • 400 level • Limited to media scenarios • Assumptions • Basic understanding of SIP and RTP • Basic understanding of the Lync server roles • Basic understanding of a typical Lync topology
Terms & Acronyms • Candidate • Possiblecombinationof IP addressandportformediachannel • ICE • Interactive Connectivity Establishment • TURN • TraversalUsing Relay NAT • STUN • Simple Traversal of UDP through NAT • Session Traversal Utilities for NAT
NAT • Network Address Translation • Translates one or more internal addresses to one external address • General NAT/Firewall behavior • Allow connections from the private network • Blocks connection from the Internet • Security/usability tradeoff • Blocks attackers from harming your system • PROBLEM: Also blocks incoming signaling and media Home Internet Home NAT
Corporate Firewalls • Though more scrutinized, goals are similar • Sharing of IP addresses • Controlling data traffic from the internet • Two firewalls isolate via perimeter network Work Internet Perimeter Network Outer FW Inner FW
Private Computer Access Edge Internet Computer Signaling Solution • SIP Proxy resides outside NAT/FW • On the Internet, so always reachable • Access Edge is found using SRV lookup Internet NAT/Firewall Private Network
Why is NAT Traversal a problem? • SIP signaling over TCP uses Access Edge • UDP media flows over separate channel • Pre-ICE endpoints uses local IPs & ports • No media can be sent between (a) and (w) INVITE m/c = a 200OK m/c = w Access Edge Home Work a w Outer FW Inner FW Home NAT
Solution – STUN, TURN, ICE UDP TCP • Add a Media Relay (aka A/V Edge Server) • STUN reflects NAT addresses (b) and (e) • TURN relays media packets (c) (d) (x) (y) • ICE exchanges candidates (cand) and determines optimal media path • All three protocols based IETF standards INVITE m/c = a 200OK m/c = w Access Proxy Home Work cand=a,b,c,d,e cand=w,x,y a b c w STUN TURN Server (AV Edge) e d x y Outer FW Inner FW Home NAT
ICE Reverse Proxy Remote, Federated and anonymous users Monitoring Edge Server Director Back End Front End SBA Archiving PSTN SBC Mediation Server Exchange UM AV Conferencing Gateway
ICE Details • There are five phases for establishing a media path • During login • TURN Provisioning and Credentials (MRAS) • When establishing a call • Address Discovery (Allocation) • Address Exchange (SIP Invite/200OK) • Connectivity Checks • Candidate Promotion
SIPRegister SIP Service MTLS MRAS A/V Edge Credentials for Remote Client 200 OK 200 OK Access Edge <hostName>edge.contoso.com <udpPort>3478 <tcpPort>443 <username> 77qq8yXccBc2lwOmFy <password> Wnujl0eo00YkV/5dg= <duration>480 ms-user-logon-data: RemoteUser <mrasUri>sip:Mras.contoso.com Lync FE Server <location>internet</location> Service 200OK Inner Firewall Outer Firewall Endpoint
SIP Invite Credentials for Conferencing 200 OK Access Edge <hostName>avedge.contoso.com <udpPort>3478 <tcpPort>443 <username> 77qq8yXccBc2lwOF <password> Wnujl0eo00YkV/5g= <duration>480 Lync FE Server Service MTLS 200OK MRAS A/V Edge Outer Firewall Inner Firewall Endpoint
Demo Log Analysis: MRAS
Allocate UDP Allocate TCP AddressDiscovery (AV) nic a c default MRAS a b b c candidate list c Media Relay d d e e UDP TCP local remote Endpoint NAT/Firewall
Allocate TCP Address Discovery Desktop Sharing, File Transfer nic a c default a MRAS b c candidate list Media Relay b c UDP TCP local remote Endpoint NAT/Firewall
UPNP: Add Port Map Other Address Discovery nic a b nic2 f d c default a g MRAS b c d c candidate list Media Relay e e f g local remote UDP TCP Endpoint NAT/Firewall
SIP INVITE c :: a,b,c,d 183 Session Progress y :: w,x,y,z 200 OK y :: w,x,y,z Edge Edge Address Exchange nic nic a b x w local remote remote local y y c c default default w a a w x b b x candidate list candidate list y c c y z d d z c y d z SIP NAT/Firewall Endpoint Endpoint NAT/Firewall 21
Demo Log Analysis: Candidates
Lync Candidates [---------]:1 2 [---3--] [----4---] [------5-----] [-6-] [---7---------] [-------8---------------] a=candidate:1 1 UDP 2130706431 192.168.0.103 50012 typ host a=candidate:1 2 UDP 2130705918 192.168.0.103 50013 typ host a=candidate:2 1 UDP 2130705919 192.168.0.100 50036 typ host a=candidate:2 2 UDP 2130705406 192.168.0.100 50037 typ host a=candidate:3 1 TCP-PASS 6556159 94.245.124.238 59782 typ relayraddr 10.166.24.59 rport 50023 a=candidate:3 2 TCP-PASS 6556158 94.245.124.238 59782 typ relayraddr 10.166.24.59 rport 50023 a=candidate:4 1 UDP 16648703 94.245.124.238 50570 typ relayraddr 84.112.158.142 rport 50016 a=candidate:4 2 UDP 16648702 94.245.124.238 56248 typ relayraddr 84.112.158.142 rport 50017 a=candidate:5 1 TCP-ACT 7076351 94.245.124.238 59782 typ relayraddr 10.166.24.59 rport 50023 a=candidate:5 2 TCP-ACT 7075838 94.245.124.238 59782 typ relayraddr 10.166.24.59 rport 50023 a=candidate:6 1 TCP-ACT 1684797439 10.166.24.59 50023 typ srflxraddr 192.168.0.103 rport 50023 a=candidate:6 2 TCP-ACT 1684796926 10.166.24.59 50023 typ srflxraddr 192.168.0.103 rport 50023 a=candidate:7 1 UDP 1694234111 84.112.158.142 50016 typ srflxraddr 192.168.0.103 rport 50016 a=candidate:7 2 UDP 1694233598 84.112.158.142 50017 typ srflxraddr 192.168.0.103 rport 50017
Connectivity Checks • Determine all possible UDP and TCP portpairings • STUN packetssentbetweenportpairs in order • STUN packet responseindicatesconnectivity • Stopcheckswhencandidate pair has bi-directionalconnectivity
Candidate Promotion • Select highest order candidate with validated connectivity • Directbeforerelay • UDP before TCP • Send SIP invite, indicating only candidate is in SDP • 200 OK also contains only one candidate in SDP • Note there will be two candidates, one RTP and one RTCP • Media is redirected to flow on optimal, validated path
Demo Log Analysis: Final Candidates
Topology Access Edge Work1 Lync A/V MCU Mediation ExchangeUM Home1 Lync UDP 3478 TCP 443 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 . . . Home2 Lync Work2 Lync Outer FW (no NAT) NAT/FW A/V Edge Inner FW
A/V Edge Inner FW Outer FW (no NAT) Inside / Inside Access Edge w1 Work1 Lync A/V MCU Mediation ExchangeUM UDP 3478 TCP 443 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 w1 w1 w2 Work2 Lync w2 w2
Inside / Outside Access Edge h1 Home1 Lync w1 Work1 Lync A/V MCU Mediation ExchangeUM UDP 3478 TCP 443 h1 h1 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 h1 h1 w1 w1 Outer FW (no NAT) A/V Edge Inner FW
Outside / Outside Access Edge h1 Home1 Lync UDP 3478 TCP 443 h1 h1 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 h2 h2 h2 Home2 Lync h2 h1 h2 h1 Outer FW (no NAT) A/V Edge Inner FW
A/V Edge Communication 2007-2007 Access Proxy Access Proxy Work1 Lync A/V MCU w1 w2 Work2 Lync A/V MCU UDP 3478 TCP 443 UDP 3478 TCP 443 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 w1 w2 w1 w2 2007 Edge 2007 Edge Outer FWs (no NAT) Inner FW Inner FW
A/V Edge Communication Tunnel Mode Access Proxy Access Proxy Work1 Lync A/V MCU w1 w2 Work2 Lync A/V MCU UDP 3478 TCP 443 UDP 3478 TCP 443 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 w1 w2 w1 w2 R2/Lync Edge R2/Lync Edge Outer FWs (no NAT) Inner FW Inner FW
A/V Edge Communication 2007 Interop Access Proxy Access Proxy Work1 Lync A/V MCU w1 w2 Work2 Lync A/V MCU UDP 3478 TCP 443 UDP 3478 TCP 443 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 UDP/TCP 50000 . . . . . . . . . UDP/TCP 59999 w1 w2 w1 w2 R2/Lync Edge 2007 Edge Outer FWs (no NAT) Inner FW Inner FW
50,000 Port Range Minimum Requirements • OCS 2007 A/V Edge • UDP 3478, TCP 443 inbound • UDP/TCP 50,000-59,999 inbound/outbound • R2/Lync A/V Edge • UDP 3478, TCP 443 inbound • UDP 3478 to UDP 3478 outbound • TCP 50,000-59,999 to TCP 443 • UDP/TCP 50,000-59,999 inbound/outbound • Interop with OCS 2007 Edges
50,000 Port RangeOptimalConfiguration • Port range open • Port rangeclosed 443 TCP 3478 UDP 443 TCP 3478 UDP 50,000 port range 50,000 port range 443 TCP 3478 UDP 443 TCP 3478 UDP 50,000 port range 50,000 port range
SIP Service SIP Register Allocate UDP Allocate TCP Load Balancer Usage Outside Access Edge Lync FE Server Issue A/V Auth A/V Edge A/V Auth Service UDP TCP TLS A/V Edge External Firewall Load Balancers Internal Firewall Lync
Troubleshoot? • Inbound provisioning without “MRAS” • AV Edge Server is not configuredatpool • “MRAS” credentials not provided • Noconnectivitybetween Front End Server andAv Edge Server internalinterface • Wrong AV Edge Server FQDN? • Firewall? • No STUN/TURN candidates • Noconnectivitybetweenclientand AV Edge Server on port 443 TCP and 3478 UDP • Wrong AV Edge Server FQDN? • Firewall? • TURN candidatesinternalNATed IP address • AV Edge Server not awareofofexternal IP address
Logs • Wheretogetlogsfrom • Lync/Office Communicator • Activate “Turn on logging in Lync” • Logs in “%userprofile%/tracing” • Live Meeting • HKEY_CURRENT_USER\Software\Microsoft\Tracing\uccp\LiveMeeting • "EnableFileTracing"= DWORD:00000001 • Logs in “%userprofile%/tracing”
In Review: Session Objectives and Takeaways • What is A/V Edge Server actually doing? • How do we find the optimal media path? • How do I read client logs? • Hopefully it was interesting! • Understand call flows • It will help you troubleshoot!
Related Content • EXL411: Best Practices in Securing Your Microsoft Lync Server 2010 Edge Servers EXL33-HOL: Deploying a Microsoft Lync Server 2010 Architecture Product Demo Stations: Friday 13:00-15:00 70-664: TS: Microsoft Lync Server 2010, Configuring 70-665: PRO: Microsoft Lync Server 2010, Administrator Find Me Later At…
Resources Learning TechNet • Connect. Share. Discuss. • Microsoft Certification & Training Resources http://europe.msteched.com www.microsoft.com/learning • Resources for IT Professionals • Resources for Developers • http://microsoft.com/technet http://microsoft.com/msdn
Evaluations Submit your evals online http://europe.msteched.com/sessions
tbinder@microsoft.com © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.