{"id":105,"date":"2024-04-30T07:52:00","date_gmt":"2024-04-30T12:52:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=105"},"modified":"2024-04-29T21:20:35","modified_gmt":"2024-04-30T02:20:35","slug":"dnn-sql-server-azure","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=105","title":{"rendered":"The DNN Listener: Guide to Distributed Network Names (DNNs) for SQL Server VMs"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>This comprehensive guide explores Distributed Network Names (DNNs), an essential concept for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It delineates the differences between DNNs and Virtual Network Names (VNNs), outlines the advantages of using DNNs, and provides a detailed walkthrough for setting them up using PowerShell.<\/p>\n<h3>Understanding DNNs and Their Role<\/h3>\n<h4>What is a DNN?<\/h4>\n<p>A DNN, or Distributed Network Name, is a specialized listener designed for AlwaysOn Availability Groups deployed on SQL Server VMs in Azure. It serves as a unified entry point for client applications, facilitating connection to the availability group regardless of the primary replica. This feature simplifies client configurations by obviating the need to manage individual IP addresses or DNS entries for each replica.<\/p>\n<h4>DNN vs. VNN: Key Differences<\/h4>\n<p>While both DNNs and Virtual Network Names (VNNs) facilitate connections to AlwaysOn Availability Groups, their methodologies differ:<\/p>\n<ul>\n<li><strong>VNN:<\/strong> A Virtual Network Name is associated with a specific IP address within a subnet, requiring clients to connect using this IP. This traditional approach necessitates managing DNS entries, which must be updated during failovers to reflect the new primary replica.<\/li>\n<li><strong>DNN:<\/strong> Unlike a VNN, a DNN does not require a dedicated IP address. Clients connect directly using the DNN, which automatically routes connections to the current primary replica, eliminating the need for managing DNS updates or individual IP addresses.<\/li>\n<\/ul>\n<h3>Benefits of DNN Listeners<\/h3>\n<ul>\n<li><strong>Simplified Configuration:<\/strong> Reduced Dependencies: By eliminating the need for Cluster Network Names (CNO) and VNNs, DNNs streamline the setup and maintenance of AlwaysOn Availability Groups.<\/li>\n<li><strong>Streamlined Networking:<\/strong> DNNs operate without dedicated IP addresses, simplifying network configuration and reducing error potentials.<\/li>\n<li><strong>Enhanced Flexibility:<\/strong> Multi-Subnet Support: DNNs are ideal for hybrid and cloud deployments across multiple subnets, requiring no additional client connectivity configurations.<\/li>\n<li><strong>Containerized Environments:<\/strong> The simplicity of DNNs makes them suitable for environments like Kubernetes, where traditional configurations may be cumbersome.<\/li>\n<li><strong>Improved Availability:<\/strong> Seamless Failover: DNNs enhance failover smoothness by eliminating dependencies on DNS and IP updates, which can delay reconnections.<\/li>\n<li><strong>Load Balancing Integration:<\/strong> Although not load balancers themselves, DNNs work seamlessly with SQL Server&#8217;s read-only routing and secondary replica read capabilities, facilitating connections to read-scale replicas without complex configurations.<\/li>\n<\/ul>\n<h3>Setting Up a DNN: A Step-by-Step Guide<\/h3>\n<h4>Prerequisites:<\/h4>\n<ul>\n<li>Supported SQL Server Versions: SQL Server 2019 CU8 or later, SQL Server 2017 CU25 or later, or SQL Server 2016 SP3 and later on Windows Server 2016 or subsequent versions.<\/li>\n<li>HA\/DR Suitability: Confirm that a DNN aligns with your High Availability Disaster Recovery (HADR) strategy.<\/li>\n<li>Configured Availability Group: Ensure your AlwaysOn Availability Group is already set up.<\/li>\n<li>PowerShell Installation: Have the latest version of PowerShell installed on your system.<\/li>\n<li>Unique Listener Port: Designate a unique port specifically for your DNN listener, ensuring it is not shared across your availability group replicas or failover cluster instance.<\/li>\n<\/ul>\n<h4>Configuration Steps:<\/h4>\n<ol>\n<li>\n<p>Open a text editor, such as Notepad.<\/p>\n<\/li>\n<li>\n<p>Copy and paste the following script:<\/p>\n<\/li>\n<\/ol>\n<p><span class=\"hljs-keyword\">param<\/span> ( [Parameter(Mandatory=<span class=\"hljs-literal\">$true<\/span>)][string]<span class=\"hljs-variable\">$Ag<\/span>, [Parameter(Mandatory=<span class=\"hljs-literal\">$true<\/span>)][string]<span class=\"hljs-variable\">$Dns<\/span>, [Parameter(Mandatory=<span class=\"hljs-literal\">$true<\/span>)][string]<span class=\"hljs-variable\">$Port<\/span> ) <span class=\"hljs-pscommand\">Write-Host<\/span> <span class=\"hljs-string\">&#8220;Add a DNN listener for availability group <span class=\"hljs-variable\">$Ag<\/span> with DNS name <span class=\"hljs-variable\">$Dns<\/span> and port <span class=\"hljs-variable\">$Port<\/span>&#8220;<\/span> <span class=\"hljs-variable\">$ErrorActionPreference<\/span> = <span class=\"hljs-string\">&#8220;Stop&#8221;<\/span><\/p>\n<p><span class=\"hljs-comment\"># create the DNN resource with the port as the resource name<\/span> <span class=\"hljs-pscommand\">Add-ClusterResource<\/span><span class=\"hljs-parameter\"> -Name<\/span> <span class=\"hljs-variable\">$Port<\/span><span class=\"hljs-parameter\"> -ResourceType<\/span> <span class=\"hljs-string\">&#8220;Distributed Network Name&#8221;<\/span><span class=\"hljs-parameter\"> -Group<\/span> <span class=\"hljs-variable\">$Ag<\/span><\/p>\n<p><span class=\"hljs-comment\"># set the DNS name of the DNN resource<\/span> <span class=\"hljs-pscommand\">Get-ClusterResource<\/span><span class=\"hljs-parameter\"> -Name<\/span> <span class=\"hljs-variable\">$Port<\/span> | <span class=\"hljs-pscommand\">Set-ClusterParameter<\/span><span class=\"hljs-parameter\"> -Name<\/span> DnsName<span class=\"hljs-parameter\"> -Value<\/span> <span class=\"hljs-variable\">$Dns<\/span><\/p>\n<p><span class=\"hljs-comment\"># start the DNN resource<\/span> <span class=\"hljs-pscommand\">Start-ClusterResource<\/span><span class=\"hljs-parameter\"> -Name<\/span> <span class=\"hljs-variable\">$Port<\/span> <span class=\"hljs-variable\">$Dep<\/span> = <span class=\"hljs-pscommand\">Get-ClusterResourceDependency<\/span><span class=\"hljs-parameter\"> -Resource<\/span> <span class=\"hljs-variable\">$Ag<\/span> <span class=\"hljs-keyword\">if<\/span> ( <span class=\"hljs-variable\">$Dep<\/span>.DependencyExpression<span class=\"hljs-nomarkup\"> -match<\/span> <span class=\"hljs-string\">&#8216;\\s*\\((.*)\\)\\s*&#8217;<\/span> ) { <span class=\"hljs-variable\">$DepStr<\/span> = <span class=\"hljs-string\">&#8220;$(<span class=\"hljs-variable\">$Matches<\/span>.1) or [<span class=\"hljs-variable\">$Port<\/span>]&#8221;<\/span> } <span class=\"hljs-keyword\">else<\/span> { <span class=\"hljs-variable\">$DepStr<\/span> = <span class=\"hljs-string\">&#8220;[<span class=\"hljs-variable\">$Port<\/span>]&#8221;<\/span> } <span class=\"hljs-pscommand\">Write-Host<\/span> <span class=\"hljs-string\">&#8220;<span class=\"hljs-variable\">$DepStr<\/span>&#8220;<\/span><\/p>\n<p><span class=\"hljs-comment\"># add the Dependency from availability group resource to the DNN resource<\/span> <span class=\"hljs-pscommand\">Set-ClusterResourceDependency<\/span><span class=\"hljs-parameter\"> -Resource<\/span> <span class=\"hljs-variable\">$Ag<\/span><span class=\"hljs-parameter\"> -Dependency<\/span> <span class=\"hljs-string\">&#8220;<span class=\"hljs-variable\">$DepStr<\/span>&#8220;<\/span> <span class=\"hljs-comment\">#bounce the AG resource<\/span> <span class=\"hljs-pscommand\">Stop-ClusterResource<\/span><span class=\"hljs-parameter\"> -Name<\/span> <span class=\"hljs-variable\">$Ag<\/span> <span class=\"hljs-pscommand\">Start-ClusterResource<\/span><span class=\"hljs-parameter\"> -Name<\/span> <span class=\"hljs-variable\">$Ag<\/span><\/p>\n<ol>\n<li>\n<p>Save the script as a\u00a0<code>.ps1<\/code>\u00a0file, such as\u00a0<code>add_dnn_listener.ps1<\/code>.<\/p>\n<\/li>\n<li>execute c:\\Documents&gt; .\\add_dnn_listener.ps1 ag1 dnnlsnr 6789<\/li>\n<\/ol>\n<h4>Verifying DNN Creation:<\/h4>\n<p>Check the creation of your DNN listener with which should return details about the listener including its name and port number.<\/p>\n<pre><code>select * from <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/system-catalog-views\/sys-availability-group-listeners-transact-sql?view=sql-server-ver16\" data-linktype=\"relative-path\">sys.availability_group_listeners<\/a><\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>Distributed Network Names offer a robust solution for managing AlwaysOn Availability Groups in Azure SQL Server VMs. By leveraging DNNs, DBAs can optimize their setups for better scalability, simplified network management, and enhanced overall availability, making them a pivotal tool in modern cloud environments.<\/p>\n\n\n<p>Further Reading: <br><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-sql\/virtual-machines\/windows\/availability-group-distributed-network-name-dnn-listener-configure?view=azuresql\">Configure DNN listener for availability group &#8211; SQL Server on Azure VMs | Microsoft Learn<\/a><br><a href=\"https:\/\/www.sqltabletalk.com\/?p=66\">The Art of Resolving HADR_SYNC_COMMIT Waits in SQL Server &#8211; SQL Table Talk<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide explores Distributed Network Names (DNNs) for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It explains how DNNs differ from Virtual Network Names (VNNs), highlights the benefits of DNNs (simplified configuration, enhanced flexibility, improved availability), and provides a step-by-step walkthrough for setting up a DNN listener using PowerShell.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[36,101,116,21],"tags":[38,122],"class_list":["post-105","post","type-post","status-publish","format-standard","hentry","category-availability-groups","category-azure","category-connectivity","category-tutorial","tag-availability-groups","tag-distributed-network-names"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Simplify AlwaysOn Availability Groups with Distributed Network Names (DNNs) on Azure SQL Server VMs<\/title>\n<meta name=\"description\" content=\"This guide explores Distributed Network Names (DNNs) for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It explains how DNNs differ from Virtual Network Names (VNNs), highlights the benefits of DNNs (simplified configuration, enhanced flexibility, improved availability), and provides a step-by-step walkthrough for setting up a DNN listener using PowerShell.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqltabletalk.com\/?p=105\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simplify AlwaysOn Availability Groups with Distributed Network Names (DNNs) on Azure SQL Server VMs\" \/>\n<meta property=\"og:description\" content=\"This guide explores Distributed Network Names (DNNs) for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It explains how DNNs differ from Virtual Network Names (VNNs), highlights the benefits of DNNs (simplified configuration, enhanced flexibility, improved availability), and provides a step-by-step walkthrough for setting up a DNN listener using PowerShell.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=105\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-30T12:52:00+00:00\" \/>\n<meta name=\"author\" content=\"Yvonne Vanslageren\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yvonne Vanslageren\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=105#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=105\"},\"author\":{\"name\":\"Yvonne Vanslageren\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\"},\"headline\":\"The DNN Listener: Guide to Distributed Network Names (DNNs) for SQL Server VMs\",\"datePublished\":\"2024-04-30T12:52:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=105\"},\"wordCount\":727,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"availability groups\",\"Distributed Network Names\"],\"articleSection\":[\"Availability Groups\",\"Azure\",\"Connectivity\",\"Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=105#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=105\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=105\",\"name\":\"Simplify AlwaysOn Availability Groups with Distributed Network Names (DNNs) on Azure SQL Server VMs\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-04-30T12:52:00+00:00\",\"description\":\"This guide explores Distributed Network Names (DNNs) for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It explains how DNNs differ from Virtual Network Names (VNNs), highlights the benefits of DNNs (simplified configuration, enhanced flexibility, improved availability), and provides a step-by-step walkthrough for setting up a DNN listener using PowerShell.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=105#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=105\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=105#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The DNN Listener: Guide to Distributed Network Names (DNNs) for SQL Server VMs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\",\"url\":\"https:\/\/www.sqltabletalk.com\/\",\"name\":\"SQL Table Talk\",\"description\":\"Breaking Down SQL Server, One Post at a Time.\",\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqltabletalk.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\",\"name\":\"Stephen Planck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"caption\":\"Stephen Planck\"},\"logo\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/dexterwiki.com\",\"https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI\",\"https:\/\/www.youtube.com\/linuxmate\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\",\"name\":\"Yvonne Vanslageren\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"caption\":\"Yvonne Vanslageren\"},\"url\":\"https:\/\/www.sqltabletalk.com\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Simplify AlwaysOn Availability Groups with Distributed Network Names (DNNs) on Azure SQL Server VMs","description":"This guide explores Distributed Network Names (DNNs) for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It explains how DNNs differ from Virtual Network Names (VNNs), highlights the benefits of DNNs (simplified configuration, enhanced flexibility, improved availability), and provides a step-by-step walkthrough for setting up a DNN listener using PowerShell.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqltabletalk.com\/?p=105","og_locale":"en_US","og_type":"article","og_title":"Simplify AlwaysOn Availability Groups with Distributed Network Names (DNNs) on Azure SQL Server VMs","og_description":"This guide explores Distributed Network Names (DNNs) for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It explains how DNNs differ from Virtual Network Names (VNNs), highlights the benefits of DNNs (simplified configuration, enhanced flexibility, improved availability), and provides a step-by-step walkthrough for setting up a DNN listener using PowerShell.","og_url":"https:\/\/www.sqltabletalk.com\/?p=105","og_site_name":"SQL Table Talk","article_published_time":"2024-04-30T12:52:00+00:00","author":"Yvonne Vanslageren","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yvonne Vanslageren","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=105#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=105"},"author":{"name":"Yvonne Vanslageren","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082"},"headline":"The DNN Listener: Guide to Distributed Network Names (DNNs) for SQL Server VMs","datePublished":"2024-04-30T12:52:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=105"},"wordCount":727,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["availability groups","Distributed Network Names"],"articleSection":["Availability Groups","Azure","Connectivity","Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=105#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=105","url":"https:\/\/www.sqltabletalk.com\/?p=105","name":"Simplify AlwaysOn Availability Groups with Distributed Network Names (DNNs) on Azure SQL Server VMs","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-04-30T12:52:00+00:00","description":"This guide explores Distributed Network Names (DNNs) for managing AlwaysOn Availability Groups on Azure SQL Server VMs. It explains how DNNs differ from Virtual Network Names (VNNs), highlights the benefits of DNNs (simplified configuration, enhanced flexibility, improved availability), and provides a step-by-step walkthrough for setting up a DNN listener using PowerShell.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=105#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=105"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=105#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"The DNN Listener: Guide to Distributed Network Names (DNNs) for SQL Server VMs"}]},{"@type":"WebSite","@id":"https:\/\/www.sqltabletalk.com\/#website","url":"https:\/\/www.sqltabletalk.com\/","name":"SQL Table Talk","description":"Breaking Down SQL Server, One Post at a Time.","publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqltabletalk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0","name":"Stephen Planck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","caption":"Stephen Planck"},"logo":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/dexterwiki.com","https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI","https:\/\/www.youtube.com\/linuxmate"]},{"@type":"Person","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082","name":"Yvonne Vanslageren","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","caption":"Yvonne Vanslageren"},"url":"https:\/\/www.sqltabletalk.com\/?author=2"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=105"}],"version-history":[{"count":7,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/105\/revisions"}],"predecessor-version":[{"id":532,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/105\/revisions\/532"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}