<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Windows Virtualization Team Blog</title><subtitle type="html" /><id>http://blogs.technet.com/b/virtualization/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/b/virtualization/atom.aspx" /><generator uri="http://telligent.com" version="5.6.50428.7875">Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><updated>2013-02-20T14:21:43Z</updated><entry><title>XenDesktop 7 Supports Windows Server 2012</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/05/23/xendesktop-7-supports-windows-server-2012.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/05/23/xendesktop-7-supports-windows-server-2012.aspx</id><published>2013-05-23T16:00:00Z</published><updated>2013-05-23T16:00:00Z</updated><content type="html">&lt;p&gt;We are excited to see &lt;a href="http://www.citrix.com/news/announcements/may-2013/citrix-extends-enterprise-mobility-strategy-with-xendesktop-7.html" target="_parent"&gt;the release of XenDesktop 7&lt;/a&gt; and support our partner Citrix.&amp;nbsp;XenDesktop 7 brings together both XenApp and XenDesktop functionality into a common release and now brings support for Windows Server 2012.&amp;nbsp; XenDesktop can easily be deployed on &lt;a href="http://www.microsoft.com/en-us/server-cloud/windows-server/server-virtualization.aspx?WT.mc_id=BlogVirt_HyperV_WS2012" target="_parent"&gt;Hyper-V&lt;/a&gt; and take full advantage of Windows Server 2012 to increase agility, reduce cost, and provide a scalable and robust platform for desktop virtualization.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3574263" width="1" height="1"&gt;</content><author><name>Microsoft Server and Cloud Platform Team</name><uri>http://blogs.technet.com/ServerAndCloudPlatformTeam/ProfileUrlRedirect.ashx</uri></author><category term="Citrix" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Citrix/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /><category term="XenDesktop 7" scheme="http://blogs.technet.com/b/virtualization/archive/tags/XenDesktop+7/" /></entry><entry><title>Hyper-V Replica Capacity Planner</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/05/23/hyper-v-replica-capacity-planner.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/05/23/hyper-v-replica-capacity-planner.aspx</id><published>2013-05-23T05:06:35Z</published><updated>2013-05-23T05:06:35Z</updated><content type="html">&lt;p align="justify"&gt;Customers have frequently asked us for capacity planning guidance before deploying Hyper-V Replica – e.g.: “How much network bandwidth is required between the primary and replica site”, “How much storage is required on the primary and replica site”, “What is the storage impact by enabling multiple recovery points” etc.&lt;/p&gt;  &lt;p align="justify"&gt;The answer to the above and many other capacity planning questions is “It depends” – it depends on the workload, it depends on the IOPS headroom, it depends on the available storage etc. While one can monitor every single perfmon counter to make an informed decision, it is sometimes easier to have a readymade tool.&lt;/p&gt;  &lt;p align="justify"&gt;The Capacity Planner for Hyper-V Replica which was released on 5/22, allows you to plan your Hyper-V Replica deployment based on the workload, storage, network and server characteristics. The guidance is based on results gathered through our internal testing across different workloads.&lt;/p&gt;  &lt;p align="justify"&gt;You can download the tool and it’s documentation from here - &lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=39057" href="http://www.microsoft.com/en-us/download/details.aspx?id=39057"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=39057&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Instructions:&lt;/p&gt;  &lt;p align="justify"&gt;1) Download the tool (exe) and documentation&lt;/p&gt;  &lt;p align="justify"&gt;2) Read the documentation first and then try out the tool. You should familiarize yourself with some nuances listed in the documentation before using the tool. &lt;/p&gt;  &lt;p align="justify"&gt;So go ahead, use the tool in your virtual infrastructure and share your feedback and questions through this blog post or in the community &lt;a href="http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/threads"&gt;forum&lt;/a&gt;. We would love to hear your comments! &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3574309" width="1" height="1"&gt;</content><author><name>Praveen Vijayaraghavan,MSFT</name><uri>http://blogs.technet.com/w8hvr_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="HVR" scheme="http://blogs.technet.com/b/virtualization/archive/tags/HVR/" /><category term="Hyper-V Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V+Replica/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /></entry><entry><title>Resynchronization of virtual machines in Hyper-V Replica</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/05/10/resynchronization-of-virtual-machines-in-hyper-v-replica.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/05/10/resynchronization-of-virtual-machines-in-hyper-v-replica.aspx</id><published>2013-05-10T14:27:00Z</published><updated>2013-05-10T14:27:00Z</updated><content type="html">&lt;h2&gt;What is resynchronization and why is it needed?&lt;/h2&gt;  &lt;p&gt;Hyper-V Replica provides protection to VMs by tracking and replicating changes to the virtual hard disks (VHDs) of the VM. Hyper-V Replica runs 24 hours, 365 days in a year; for any VM that has been enabled for replication it ensures that the data on the primary site and the Replica site are kept as closely in sync as supported. &lt;/p&gt;  &lt;p&gt;To begin with, Hyper-V Replica (HVR) requires that the data on the virtual hard disks (VHDs) of the primary and replica VMs be the same. This is achieved through the process of initial replication, and establishes a baseline on which replicated changes can be applied. However, due to factors beyond the control of the administrator – such as faulty hardware and OS bugchecks – it is possible that the primary and Replica VMs are not in sync.&lt;/p&gt;  &lt;p&gt;Thus in a rainy day scenario (details in following section), when HVR determines that the replica VM can no longer be kept in sync with the primary by applying the replicated changes then resynchronization is required. Resynchronization (or Resync) is the process of re-establishing the baseline – by ensuring that the primary and replica VHDs have exactly the same data stored.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;(NOTE: In this post we will use a VM named “RESYNC VM” in all examples and screenshots.)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;When does resynchronization happen?&lt;/h2&gt;  &lt;p&gt;It would become quite obvious after going through this table below that Resync is not expected to occur regularly. In fact, in the normal course of replication this is quite a rare event. The VM enters the &lt;em&gt;“Resynchronization Required”&lt;/em&gt; state when any one of the conditions are encountered:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="1" width="688" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="78"&gt;         &lt;h4&gt;Site&lt;/h4&gt;       &lt;/td&gt;        &lt;td valign="top" width="292"&gt;         &lt;h4&gt;Condition&lt;/h4&gt;       &lt;/td&gt;        &lt;td valign="top" width="316"&gt;         &lt;h4&gt;Scenario example&lt;/h4&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="81"&gt;         &lt;p&gt;Primary&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="291"&gt;         &lt;p&gt;Modify VHD when VM is turned off&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="315"&gt;         &lt;p&gt;Mount/modify VHD outside the VM, Edit disk, Offline patching&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="84"&gt;         &lt;p&gt;Primary&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="290"&gt;         &lt;p&gt;Size of tracking log files &amp;gt; 50% of total VHD size for a VM&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="314"&gt;         &lt;p&gt;Network outage causes logs to accumulate&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="87"&gt;         &lt;p&gt;Primary&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;         &lt;p&gt;Write failure to tracking log file&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="312"&gt;         &lt;p&gt;VHD and logs are on SMB and connectivity to the SMB storage is flaky.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="90"&gt;         &lt;p&gt;Primary&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="287"&gt;         &lt;p&gt;Tracking log file is not closed gracefully&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="311"&gt;         &lt;p&gt;Host crash with primary VM running. Applicable to VMs in a cluster also.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="92"&gt;         &lt;p&gt;Primary&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="286"&gt;         &lt;p&gt;Reverting the volume to an older point in time&lt;/p&gt;          &lt;p&gt;Reverting the VM to an older snapshot&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="310"&gt;         &lt;p&gt;Volume/snapshot backup and restore&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="94"&gt;         &lt;p&gt;Secondary&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="285"&gt;         &lt;p&gt;Out-of-sequence or Invalid log file is applied&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="309"&gt;         &lt;p&gt;Restoring a backed-up copy of the Replica VM&lt;/p&gt;          &lt;p&gt;Importing an older VM copy, when migration by using export-import&lt;/p&gt;          &lt;p&gt;Reverting volume to an older point in time using Volume backup and restore.&lt;/p&gt;          &lt;p&gt;Reverting the VM to an older snapshot&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&amp;#160;&amp;#160; &lt;p&gt;When the VM enters the &lt;em&gt;“Resynchronization Required”&lt;/em&gt; state, the replication health becomes “Critical” and the VM is scheduled for resynchronization. At the same time, HVR stops tracking the guest writes for the VM and nothing is replicated. &lt;/p&gt;  &lt;p&gt;The replication health will also show this message:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/3010.resync_2D00_002_5F00_45713E14.png"&gt;&lt;img title="resync 002" style="display: inline; background-image: none;" border="0" alt="resync 002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5516.resync_2D00_002_5F00_thumb_5F00_7BE1F016.png" width="512" height="87" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Initiating and scheduling resynchronization&lt;/h2&gt;  &lt;p&gt;Depending on the VM setting, the user might have to trigger the resynchronization operation explicitly. When that is required, follow the instructions as given in the replication health screen:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Right-click on the VM for the options&lt;/li&gt;    &lt;li&gt;Under &lt;b&gt;Replication&lt;/b&gt;, select the &lt;b&gt;Resume Replication&lt;/b&gt; option&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;You will be presented with the screen to schedule the resynchronization operation:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/4426.resync_2D00_003_5F00_3905AB9C.png"&gt;&lt;img title="resync 003" style="display: inline; background-image: none;" border="0" alt="resync 003" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/6355.resync_2D00_003_5F00_thumb_5F00_73833C21.png" width="700" height="323" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To start the resync operation from PowerShell, use the &lt;a href="http://technet.microsoft.com/en-us/library/hh848510.aspx" target="_blank"&gt;&lt;strong&gt;Resume-VMReplication&lt;/strong&gt;&lt;/a&gt; commandlet:&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;   &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;     &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Resume-VMReplication –VMName “RESYNC VM” -Resynchronize –ResynchronizeStartTime “04/15/2013 12:00:00”&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;User-initiated resynchronization is also possible, but unless absolutely necessary it should be avoided. In order to explicitly force resynchronization on a VM that is not in the &lt;em&gt;“Resynchronization Required”&lt;/em&gt; state, first suspend the replication and then initiate resync:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
  &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Suspend-VMReplication -VMName &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;RESYNC VM&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;Resume-VMReplication -VMName &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;RESYNC VM&amp;quot;&lt;/span&gt; -Resynchronize&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The scheduling of the resynchronization operation can be configured for each VM:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;On the primary site, open the Hyper-V Manager&lt;/li&gt;

  &lt;li&gt;Right-click on the desired VM, and select the &lt;b&gt;Settings…&lt;/b&gt; option&lt;/li&gt;

  &lt;li&gt;In the left hand pane under &lt;b&gt;Replication&lt;/b&gt;, select the &lt;b&gt;Resynchronization&lt;/b&gt; option&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/7713.resync_2D00_006_5F00_0EBE25D4.png"&gt;&lt;img title="resync 006" style="display: inline; background-image: none;" border="0" alt="resync 006" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/6622.resync_2D00_006_5F00_thumb_5F00_54D17398.png" width="551" height="521" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The default option is to schedule the resynchronization operation during off-peak hours. The resource intensive nature of the operation makes such scheduling useful, and aims to reduce the impact on running VMs. &lt;/p&gt;

&lt;p&gt;The same can be configured in PowerShell using the &lt;a href="http://technet.microsoft.com/en-us/library/hh848543.aspx" target="_blank"&gt;&lt;strong&gt;Set-VMReplication&lt;/strong&gt;&lt;/a&gt; commandlet:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
  &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;# Manual resync&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;Set-VMReplication -VMName &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;RESYNC VM&amp;quot;&lt;/span&gt; -AutoResynchronizeEnabled 0&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;# Automatic resync&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Set-VMReplication –VMName &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;RESYNC VM&amp;quot;&lt;/span&gt; -AutoResynchronizeEnabled 1 -AutoResynchronizeIntervalStart 00:00:00 -AutoResynchronizeIntervalEnd 23:59:59&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;# Scheduled resync&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;Set-VMReplication –VMName &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;RESYNC VM&amp;quot;&lt;/span&gt; -AutoResynchronizeEnabled 1 -AutoResynchronizeIntervalStart 00:00:00 -AutoResynchronizeIntervalEnd 06:00:00&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;To see the resynchronization settings in PowerShell, use the &lt;a href="http://technet.microsoft.com/en-us/library/hh848570.aspx" target="_blank"&gt;&lt;strong&gt;Get-VMReplication&lt;/strong&gt;&lt;/a&gt; commandlet and look for the &lt;em&gt;AutoResynchronizeEnabled&lt;/em&gt;, &lt;em&gt;AutoResynchronizeIntervalStart&lt;/em&gt;, and &lt;em&gt;AutoResynchronizeIntervalEnd &lt;/em&gt;fields: &lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
  &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Get-VMReplication -VMname &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;RESYNC VM&amp;quot;&lt;/span&gt; | fl *&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;font style="background-color: rgb(255, 255, 0);"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font style="background-color: rgb(255, 255, 0);"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;h2&gt;The process of resynchronization&lt;/h2&gt;

&lt;p&gt;When the resync operation is triggered – either automatically or by the user – the following high-level sub-operations are executed in sequence:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Check the VHD characteristics of primary and replica VMs:&lt;/strong&gt;&amp;#160;&amp;#160; before resync can be done, these have to match. Hyper-V Replica checks the geometry and size of the disk before starting resync. Top on the list of exceptions to watch out for are size mismatches – caused by resizing either a primary or replica VHD without appropriately resizing the other one.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Start tracking the VHDs:&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt;

  &lt;ol&gt;
    &lt;li&gt;The guest writes are tracked into the log file, but these changes are not replicated until resync is completed.&lt;/li&gt;

    &lt;li&gt;It is important to note that if resync takes too long then you might hit the “50% of total VHD size for a VM” condition and end up sending the VM into the &lt;em&gt;“Resynchronization Required”&lt;/em&gt; state again. &lt;/li&gt;

    &lt;li&gt;Event number 29242 is logged that specifies the VM, VHDs, start block, and end block. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;li&gt;&lt;strong&gt;Create a diff disks for the replica VHDs:&lt;/strong&gt;&amp;#160;&amp;#160; this allows the resync operation to be cancelled without leaving the underlying VHD in an inconsistent state. The diff disk with all the resync-ed changes is then merged back into the VHD at the end of the resync operation.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Compare and sync the VHDs:&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; the comparison of the VHDs is done block-by-block and only the blocks that differ are sent across the network. This can reduce the data sent over the network, depending on how different the two VHDs are. While this operation is going on:&lt;/li&gt;

  &lt;ol&gt;
    &lt;li&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;Pause Replication&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;will stop the current resync operation. Doing &lt;em&gt;Resume Replication&lt;/em&gt; later will continue the resync comparisons from where it left off. &lt;/li&gt;

    &lt;li&gt;Planned failover or Test failover will not be possible.&lt;/li&gt;

    &lt;li&gt;At any point the user can always do Unplanned Failover, but this will cancel the resync operation.&lt;/li&gt;

    &lt;li&gt;Resync can be cancelled at any point. This will keep the VM in the &lt;em&gt;“Resynchronization Required”&lt;/em&gt; state, and the next time replication is resumed, it will start from the beginning.&lt;/li&gt;
  &lt;/ol&gt;

  &lt;li&gt;&lt;strong&gt;Completion of compare and sync:&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HVR logs event number 29244 once the compare and sync operation is done, and it specifies the VHD, VM, blocks sent, time taken, and result of the operation.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Merge the resync changes to the VHD:&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;after this operation completes, the resync operation cannot be cancelled or undone.&lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Delete the recovery points:&lt;/strong&gt;&amp;#160;&amp;#160; this is a significant side-effect of resync. The recovery points are built upon the VHD as a baseline. However, resync effectively changes that baseline and makes the data stored in those recovery points invalid. After resync completes, the recovery points are built again over a period of time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Resynchronization performance&lt;/h2&gt;

&lt;p&gt;Resynchronization performance was tested and compared against the performance of Online Initial Replication (IR). The setup consisted of a standalone server with 4 running VMs – 2 File Servers and 2 SQL servers running typical workloads. Two VMs were replicated to a standalone Replica server. The network bandwidth was varied to see the impact. Data size that was replicated during Online IR was approximately 80GB.&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="0" width="724" border="1"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="243"&gt;&amp;nbsp;&lt;/td&gt;

      &lt;td valign="top" width="108"&gt;&lt;strong&gt;Network speed&lt;/strong&gt;&lt;/td&gt;
      &lt;strong&gt;&lt;/strong&gt;

      &lt;td valign="top" width="98"&gt;&lt;strong&gt;Online IR size&lt;/strong&gt;&lt;/td&gt;
      &lt;strong&gt;&lt;/strong&gt;

      &lt;td valign="top" width="102"&gt;&lt;strong&gt;Online IR time&lt;/strong&gt;&lt;/td&gt;
      &lt;strong&gt;&lt;/strong&gt;

      &lt;td valign="top" width="86"&gt;&lt;strong&gt;Resync size&lt;/strong&gt;&lt;/td&gt;
      &lt;strong&gt;&lt;/strong&gt;

      &lt;td valign="top" width="85"&gt;&lt;strong&gt;Resync time&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="243"&gt;Resync – offline scheduling&lt;/td&gt;

      &lt;td valign="top" width="108"&gt;1 Gbps&lt;/td&gt;

      &lt;td valign="top" width="98"&gt;~80 GB&lt;/td&gt;

      &lt;td valign="top" width="102"&gt;~1.5 hrs&lt;/td&gt;

      &lt;td valign="top" width="86"&gt;~5.5 GB&lt;/td&gt;

      &lt;td valign="top" width="85"&gt;~2 hrs&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="243"&gt;Resync – immediate&lt;/td&gt;

      &lt;td valign="top" width="108"&gt;1 Gbps&lt;/td&gt;

      &lt;td valign="top" width="98"&gt;~80 GB&lt;/td&gt;

      &lt;td valign="top" width="102"&gt;~1 hr&lt;/td&gt;

      &lt;td valign="top" width="86"&gt;~100 MB&lt;/td&gt;

      &lt;td valign="top" width="85"&gt;~1 hr&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="243"&gt;&amp;nbsp;&lt;/td&gt;

      &lt;td valign="top" width="108"&gt;&amp;nbsp;&lt;/td&gt;

      &lt;td valign="top" width="98"&gt;&amp;nbsp;&lt;/td&gt;

      &lt;td valign="top" width="102"&gt;&amp;nbsp;&lt;/td&gt;

      &lt;td valign="top" width="86"&gt;&amp;nbsp;&lt;/td&gt;

      &lt;td valign="top" width="85"&gt;&amp;nbsp;&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="243"&gt;Resync – offline scheduling &lt;/td&gt;

      &lt;td valign="top" width="108"&gt;1.5 Mbps&lt;/td&gt;

      &lt;td valign="top" width="98"&gt;~80 GB&lt;/td&gt;

      &lt;td valign="top" width="102"&gt;4 days&lt;/td&gt;

      &lt;td valign="top" width="86"&gt;~10 GB&lt;/td&gt;

      &lt;td valign="top" width="85"&gt;~1 day&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td valign="top" width="243"&gt;Resync – immediate&lt;/td&gt;

      &lt;td valign="top" width="108"&gt;1.5 Mbps&lt;/td&gt;

      &lt;td valign="top" width="98"&gt;~80 GB&lt;/td&gt;

      &lt;td valign="top" width="102"&gt;4 days&lt;/td&gt;

      &lt;td valign="top" width="86"&gt;~ 78 MB&lt;/td&gt;

      &lt;td valign="top" width="85"&gt;~1 hour&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;The tests indicate that resync is preferable to Online IR in low speed networks. When the two sites are connected by a high speed network, resync works well for low churn workloads.&lt;/p&gt;

&lt;p&gt;There is also a perfmon counter for measuring the resynchronized bytes:&amp;#160; &lt;strong&gt;\Hyper-V Replica VM\Resynchronized Bytes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;The disks going out of sync is a rainy-day event in Hyper-V Replica. However with the Resynchronization operation, this is handled gracefully within the product to optimize the administrative overhead and the resources used in bringing the disks back into sync. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3566803" width="1" height="1"&gt;</content><author><name>Aashish Ramdas [MSFT]</name><uri>http://blogs.technet.com/aashish.ramdas_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="Hyper-V" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V/" /><category term="HVR" scheme="http://blogs.technet.com/b/virtualization/archive/tags/HVR/" /><category term="Hyper-V Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V+Replica/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /></entry><entry><title>How to install integration services when the virtual machine is not running</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/04/19/how-to-install-integration-services-when-the-virtual-machine-is-not-running.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/04/19/how-to-install-integration-services-when-the-virtual-machine-is-not-running.aspx</id><published>2013-04-19T00:34:00Z</published><updated>2013-04-19T00:34:00Z</updated><content type="html">&lt;p&gt;We&amp;rsquo;ve been talking to a lot of people about deploying integration services (integration components) lately.&amp;nbsp; As it turns out, they&amp;rsquo;re pretty easy to patch offline with existing Hyper-V tools.&lt;/p&gt;
&lt;p&gt;First, why would you update integration services on a not-running (offline) VM?&lt;/p&gt;
&lt;p&gt;Offline VM servicing is valuable for VM templates places that create new VMs frequently since it allows you to keep VM templates up-to-date.&amp;nbsp; While this post targets exclusively integration service updates, the same update approach applies to many updates as well as any configurations specific to the environment.&amp;nbsp; Keeping the VM images fully up to date and configured before they are deployed saves significant setup time and support every time a new VM is created.&lt;/p&gt;
&lt;p&gt;Here is a detailed write-up about deploying and updating integration services on an offline VM &amp;ndash; both VHD/VHDX &amp;ndash; using out of box PowerShell tools and a cab (cabinet) file that comes bundled with Server 2008 or later Hyper-V hosts.&lt;/p&gt;
&lt;p&gt;Before you start, open a PowerShell console &lt;strong&gt;as administrator&lt;/strong&gt;.&amp;nbsp; Make sure Hyper-V is installed and you&amp;rsquo;re working from the management (host) OS. The management OS must be Server 2008R2 or newer and more recent than the VM OS you&amp;rsquo;re patching.&amp;nbsp; I tested this script with a Server 2012 host.&lt;/p&gt;
&lt;p&gt;For default Hyper-V installs, the CAB containing the up-to-date integration components will be located in [HostDrive]:\windows\vmguest\support.&amp;nbsp; From there, choose your architecture; for my machine, I choose amd64.&amp;nbsp; X86 people, you&amp;rsquo;re files are there too.&amp;nbsp; This file contains all of the components built into the VM Guest ISO. &amp;nbsp;To update integration components offline, we&amp;rsquo;re only interested in the two cab files highlighted below.&lt;/p&gt;
&lt;p&gt;There will be two files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows6.x-HyperVIntegrationServices-x64.cab corresponds with Windows 7 and earlier guests. Tested: Server 2008 R2, Windows 7 (enterprise and enterprise sp1).&lt;/li&gt;
&lt;li&gt;Windows6.2-HyperVIntegrationServices-x64.cab corresponds with windows 8 and Server 2012 guests. Tested: Server 2012, Windows 8.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Note: this process only works for Windows 2008R2 / Windows 7 and later operating systems. It works with both vhd and vhdx files.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You will need the path to this file.&amp;nbsp; From here on out I&amp;rsquo;ll refer to it as $integrationServicesCabPath.&amp;nbsp; If you pick the wrong one it will fail a version check without harming the guest.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;$integrationServicesCabPath="C:\Windows\vmguest\support\amd64\Windows6.2-HyperVIntegrationServices-x64.cab"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45/0250.shot1.png"&gt;&lt;img src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45/0250.shot1.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The next step is to apply the cab to the offline VM.&lt;/p&gt;
&lt;p&gt;First, you&amp;rsquo;ll need the path to your VM image, I&amp;rsquo;m going to refer to this as $virtualHardDiskToUpdate.&lt;/p&gt;
&lt;p class="Code"&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;$virtualHardDiskToUpdate="D:\client_professional_en-us_vl.vhd"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Next, mount the image as a pass-through disk (unprotected data and direct I/O) and keep track of the disk number returned.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;$diskNo=(Mount-VHD -Path $ virtualHardDiskToUpdate &amp;ndash;Passthru).DiskNumber&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Check to make sure the operational status is online and find the drive letter so we know which drive to patch.&lt;/p&gt;
&lt;p class="Code"&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;(Get-Disk $diskNo).OperationalStatus&lt;/span&gt;&lt;/p&gt;
&lt;p class="Code"&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;$driveLetter=(Get-Disk $diskNo | Get-Partition | Get-Volume).DriveLetter&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In my case this returned &amp;ldquo;online&amp;rdquo; and &amp;ldquo;E&amp;rdquo; (stored in $driveLetter).&amp;nbsp; If you mounted a VM with Windows fully installed, the chances are good it&amp;rsquo;ll mount more than one drive depending on the VMs particular setup.&amp;nbsp; If this is the case, find the drive with all of the Windows OS files &amp;ndash; apply the integration service update to that one.&amp;nbsp; If the status returns not online prepare the image by running:&lt;/p&gt;
&lt;p class="Code"&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;Set-Disk $diskNo -IsOffline:$false -IsReadOnly:$false&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now the mounted VHD is ready to be patched.&lt;/p&gt;
&lt;p class="Code"&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;Add-WindowsPackage -PackagePath $integrationServicesCabPath -Path ($driveLetter+":\")&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;You should see a blue progress bar at the top of PowerShell.&amp;nbsp; Enjoy watching the little yellow o&amp;rsquo;s fill your screen.&amp;nbsp; If the cab couldn&amp;rsquo;t apply, make sure you&amp;rsquo;re using the right version for your guest OS and the right drive.&amp;nbsp; If the VM is running, it will not patch.&lt;/p&gt;
&lt;p&gt;Finally, dismount the VHD.&amp;nbsp; Notice you dismount using the image path and not the mounted drive letter.&lt;/p&gt;
&lt;p class="Code"&gt;&lt;span style="font-family: 'courier new', courier; color: #0000ff;"&gt;Dismount-VHD -Path $virtualHardDiskToUpdate&lt;/span&gt;&lt;/p&gt;
&lt;p class="Code"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45/1121.shot2.png"&gt;&lt;img src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45/1121.shot2.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a more reasonable, consolidated, PowerShell Script:&lt;/p&gt;
&lt;p class="Code" style="padding-left: 30px;"&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$virtualHardDiskToUpdate="D:\client_professional_en-us_vl.vhd"&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$integrationServicesCabPath&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;"C:\Windows\vmguest\support\amd64\Windows6.2-HyperVIntegrationServices-x64.cab"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Code" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #339966;"&gt;#Mount the VHD&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$diskNo&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Mount-VHD&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;-Path&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$virtualHardDiskToUpdate&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &amp;ndash;Passthru).DiskNumber&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Code" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #339966;"&gt;#Get the driver letter associated with the mounted VHD, note this assumes it only has one partition if there are more use the one with OS bits&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$driveLetter&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;=&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Get-Disk&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$diskNo&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;|&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Get-Partition&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;)&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;.&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;DriveLetter&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Code" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #339966;"&gt;#Check to see if the disk is online if it is not online it&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;if&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; ((&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Get-Disk&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$diskNo&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;)&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;.&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;OperationalStatus &lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;-ne&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; 'Online')&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;{Set-Disk&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$MountedVHD&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;.&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Number &lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;-IsOffline:&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$false&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;-IsReadOnly:&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$false&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Code" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #339966;"&gt;#Install the patch&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Add-WindowsPackage&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;-PackagePath&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$integrationServicesCabPath&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; -Path&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; (&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$driveLetter&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;+&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;":\")&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Code" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #339966;"&gt;#Dismount the VHD&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Dismount-VHD&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;-Path&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$virtualHardDiskToUpdate&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thank you to Taylor Brown (&lt;a href="http://blogs.msdn.com/b/taylorb"&gt;http://blogs.msdn.com/b/taylorb&lt;/a&gt;), for the script!&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;Sarah Cooley&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3567772" width="1" height="1"&gt;</content><author><name>Ben Armstrong [MSFT]</name><uri>http://blogs.technet.com/benjamin.david.armstrong_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="Hyper-V" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V/" /></entry><entry><title>Updates for Hyper-V</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/04/16/updates-for-hyper-v.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/04/16/updates-for-hyper-v.aspx</id><published>2013-04-16T07:20:00Z</published><updated>2013-04-16T07:20:00Z</updated><content type="html">&lt;p&gt;A new article has appeared on the TechNet Wiki that provides a complete list of updates for Hyper-V on Windows Server 2012:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/15576.hyper-v-update-list-for-windows-server-2012.aspx"&gt;http://social.technet.microsoft.com/wiki/contents/articles/15576.hyper-v-update-list-for-windows-server-2012.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am really happy to see this online, as we have received lots of positive feedback about how useful the existing documentation is for updates that are available for Hyper-V on &lt;a title="http://social.technet.microsoft.com/wiki/contents/articles/1349.hyper-v-update-list-for-windows-server-2008-r2.aspx" href="http://social.technet.microsoft.com/wiki/contents/articles/1349.hyper-v-update-list-for-windows-server-2008-r2.aspx"&gt;Windows Server 2008 R2&lt;/a&gt; and on &lt;a title="http://technet.microsoft.com/en-us/library/dd430893(WS.10).aspx" href="http://technet.microsoft.com/en-us/library/dd430893(WS.10).aspx"&gt;Windows Server 2008&lt;/a&gt;.&amp;nbsp; Hopefully this will help everyone in planning and managing their Hyper-V deployments.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;Ben&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3566972" width="1" height="1"&gt;</content><author><name>Ben Armstrong [MSFT]</name><uri>http://blogs.technet.com/benjamin.david.armstrong_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="Hyper-V" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V/" /></entry><entry><title>Hyper-V Replica Certificate Based Authentication - makecert</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/04/13/hyper-v-replica-certificate-based-authentication-makecert.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/04/13/hyper-v-replica-certificate-based-authentication-makecert.aspx</id><published>2013-04-13T10:01:38Z</published><updated>2013-04-13T10:01:38Z</updated><content type="html">&lt;p align="justify"&gt;We have had a number of queries on how to enable replication using certificates created from makecert. Though the Understanding and Troubleshooting guide for Hyper-V Replica discusses this aspect, I am posting a separate article on this. The below steps are applicable for a simple lab deployment consisting of two standalone servers – &lt;strong&gt;PrimaryServer.domain.com&lt;/strong&gt; and &lt;strong&gt;ReplicaServer.domain.com&lt;/strong&gt;. This can be easily extended to clustered deployments with the Hyper-V Replica Broker. &lt;/p&gt;  &lt;p align="justify"&gt;Makecert is a certificate creation tool which generates certificates for testing purpose. Information on makecert is available here - &lt;a title="http://msdn.microsoft.com/en-us/library/bfsktky3.aspx" href="http://msdn.microsoft.com/en-us/library/bfsktky3.aspx"&gt;http://msdn.microsoft.com/en-us/library/bfsktky3.aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;1. Copy the &lt;b&gt;&lt;i&gt;makecert.exe&lt;/i&gt;&lt;/b&gt; tool to your primary server&lt;/p&gt;  &lt;p&gt;2. Run the following command from an &lt;b&gt;elevated command prompt&lt;/b&gt;, on the primary server. This command creates a self-signed root authority certificate. The command also installs a test certificate in the root store of the local machine and is saved as a file locally&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;   &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;     &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;makecert -pe -n &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;CN=MyTestRootCA&amp;quot;&lt;/span&gt; -ss root -sr LocalMachine -sky signature -r &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;MyTestRootCA.cer&amp;quot;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;3. Run the following command couple of times, from an elevated command prompt to create new certificate(s) signed by the test root authority certificate&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
  &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;makecert -pe -n &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;CN=&amp;lt;FQDN&amp;gt;&amp;quot;&lt;/span&gt; -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;MyTestRootCA&amp;quot;&lt;/span&gt; -&lt;span style="color: rgb(0, 0, 255);"&gt;is&lt;/span&gt; root -ir LocalMachine -sp &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;Microsoft RSA SChannel Cryptographic Provider&amp;quot;&lt;/span&gt; -sy 12 &amp;lt;MachineName&amp;gt;.cer &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Each time:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Replace &amp;lt;&lt;b&gt;FQDN&lt;/b&gt;&amp;gt; with FQDN of primary and replica servers&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
  &lt;li&gt;Replace &amp;lt;MachineName&amp;gt;.cer with any name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The command installs a test certificate in the Personal store of the local machine and is saved as a file locally. The certificate can be used for both Client and Server authentication &lt;/p&gt;

&lt;p&gt;4. The certificates can be viewed by mmc-&amp;gt;File-&amp;gt;Add/Remove Snap in…-&amp;gt;Certificates-&amp;gt;Add-&amp;gt;”Computer Account”-&amp;gt;Next-&amp;gt;Finish-&amp;gt;Ok&lt;/p&gt;

&lt;p&gt;You will find the Personal certificate (with the machine names) and the Root certificate (MyTestRootCA) in the highlighted folders:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/6052.clip_5F00_image002_5F00_3F00D933.jpg"&gt;&lt;img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/4278.clip_5F00_image002_5F00_thumb_5F00_69DBCDF6.jpg" width="248" height="290" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5. Export the replica server certificate &lt;b&gt;with the private key&lt;/b&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5707.image_5F00_18BAAD00.png"&gt;&lt;img title="image" style="margin: 0px; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/1464.image_5F00_thumb_5F00_63447B8B.png" width="523" height="257" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="2" width="591" border="0"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="251"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5226.image38_5F00_105BF90B.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/6505.image38_5F00_thumb_5F00_022010CC.png" width="367" height="257" /&gt;&lt;/a&gt;&lt;/td&gt;

      &lt;td valign="top" width="338"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/6278.image_5F00_2349699F.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5460.image_5F00_thumb_5F00_008831E2.png" width="340" height="257" /&gt;&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;6. Copy MyTestRootCA.cer and the above exported certificate (RecoveryServer.pfx) to the Replica server.&lt;/p&gt;

&lt;p&gt;7. Run the following command from an elevated prompt in ReplicaServer.domain.com&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
  &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;certutil -addstore -f Root &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;MyTestRootCA.cer&amp;quot;&lt;/span&gt; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;8. Open the certificate mmc in ReplicaServer.domain.com and import the certificate (RecoveryServer.pfx) in the Personal store of the server. Provide the pfx file and password as input:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/7282.image_5F00_388217AD.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/1200.image_5F00_thumb_5F00_4341FFB3.png" width="483" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9. By default, a certificate revocation check is mandatory and Self-Signed Certificates don’t support Revocation checks. To work around it, modify the following registry key on &lt;b&gt;Primary, Replica Servers&lt;/b&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
  &lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
    &lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;reg add &lt;span style="color: rgb(0, 96, 128);"&gt;&amp;quot;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication&amp;quot;&lt;/span&gt; /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3566615" width="1" height="1"&gt;</content><author><name>Praveen Vijayaraghavan,MSFT</name><uri>http://blogs.technet.com/w8hvr_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="HVR" scheme="http://blogs.technet.com/b/virtualization/archive/tags/HVR/" /><category term="Hyper-V Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V+Replica/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /><category term="Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Replica/" /><category term="Certificates" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Certificates/" /></entry><entry><title>Hyper-V Replica - Name Resolution of Internationalized Server/Domain names</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/04/08/hyper-v-replica-name-resolution-of-internationalized-server-domain-names.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/04/08/hyper-v-replica-name-resolution-of-internationalized-server-domain-names.aspx</id><published>2013-04-08T06:05:00Z</published><updated>2013-04-08T06:05:00Z</updated><content type="html">&lt;p align="justify"&gt;In a mixed language environment where the server name or domain name contains international characters, you might encounter an error at the time of enabling replication. The event viewer messages will tell you that “Hyper-V failed to enable replication for virtual machine” and “The server name or address could not be resolved (0x00002EE7)”. The problem could seem a little perplexing because pinging the same FQDN might work just fine. The problem occurs because of Hyper-V Replica’s dependency on HTTP.&lt;/p&gt;  &lt;p align="justify"&gt;To work around the issue, an exception rule needs to be added to the primary server’s name resolution policies. Follow these steps to create the rule:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open the Local Group Policy Editor (Gpedit.msc).&lt;/li&gt;    &lt;li&gt;Under &lt;strong&gt;Local Computer Policy&lt;/strong&gt;, expand &lt;strong&gt;Computer Configuration&lt;/strong&gt;, &lt;strong&gt;Windows Settings&lt;/strong&gt;, and then click &lt;strong&gt;Name Resolution Policy&lt;/strong&gt;.&lt;/li&gt;    &lt;li&gt;In the &lt;strong&gt;Create Rules&lt;/strong&gt; area, click &lt;strong&gt;FQDN&lt;/strong&gt;, and then enter the Replica server FQDN that was failing.&lt;/li&gt;    &lt;li&gt;On the &lt;strong&gt;Encoding&lt;/strong&gt; tab, select the &lt;strong&gt;Enable Encoding&lt;/strong&gt; check box, and make sure that &lt;strong&gt;UTF-8 with Mapping&lt;/strong&gt; is selected.&lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt;.       &lt;blockquote&gt;       &lt;p&gt;The rule appears in the &lt;strong&gt;Name Resolution Policy Table&lt;/strong&gt;.&lt;/p&gt;     &lt;/blockquote&gt;   &lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;Apply&lt;/strong&gt;, and then close the Local Group Policy Editor.&lt;/li&gt;    &lt;li&gt;From an elevated command prompt, run the command &lt;strong&gt;gpupdate&lt;/strong&gt; to update the policy. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5516.LocalPolicyGroupEditor2_5F00_6C9B210A.png"&gt;&lt;img title="Local Policy Group Editor 2" style="display: inline;" border="0" alt="Local Policy Group Editor 2" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/0677.LocalPolicyGroupEditor2_5F00_thumb_5F00_32AE6ECF.png" width="630" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3564020" width="1" height="1"&gt;</content><author><name>Aashish Ramdas [MSFT]</name><uri>http://blogs.technet.com/aashish.ramdas_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="Hyper-V" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V/" /><category term="HVR" scheme="http://blogs.technet.com/b/virtualization/archive/tags/HVR/" /><category term="Hyper-V Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V+Replica/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /></entry><entry><title>Multi-tenant disaster recover solution using Windows Server 2012</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/04/01/multi-tenant-disaster-recover-solution-using-windows-server-2012.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/04/01/multi-tenant-disaster-recover-solution-using-windows-server-2012.aspx</id><published>2013-04-01T19:54:00Z</published><updated>2013-04-01T19:54:00Z</updated><content type="html">&lt;p align="justify"&gt;&lt;strong&gt;Windows Server 2012&lt;/strong&gt; introduces fundamental improvements that make it a cloud-ready operating system. The capabilities provide a flexible and scalable solution which opens up a wide range of opportunities for hosting providers to build new cloud services.&lt;/p&gt;
&lt;p align="justify"&gt;This blog post is co-authored by &lt;strong&gt;Uma Mahesh&lt;/strong&gt;, Senior Program Manager and &lt;strong&gt;Yigal Edery&lt;/strong&gt;, Principal Program Manager in the Windows Server division. The blog article is based on Yigal&amp;rsquo;s TechEd talk on &amp;ldquo;&lt;a href="http://channel9.msdn.com/events/TechEd/Europe/2012/WSV301"&gt;Building Hosted Public and Private Clouds Using Windows Server 2012&lt;/a&gt;&lt;span style="color: #0000ff;"&gt;&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify"&gt;In this post, Contoso.com, a Washington DC based fictitious company, replicates its business critical VMs to a hosting provider offering DR as a cloud service.&amp;nbsp;&amp;nbsp; This article describes integration between different Windows Server 2012 features to enable a complete end to end service which hosting providers (or &amp;lsquo;hoster&amp;rsquo;) can offer. It uses &lt;strong&gt;Hyper-V Replica&lt;/strong&gt;, &lt;strong&gt;Network Virtualization&lt;/strong&gt; and &lt;strong&gt;Remote Access&lt;/strong&gt; (including both site-to-site (S2S) VPN&amp;nbsp; &amp;amp;&amp;nbsp; DirectAccess), which enables a hoster to build a complete, multi-tenant disaster recover (DR) service, using Windows Server 2012.&lt;/p&gt;
&lt;p align="justify"&gt;The technology building blocks are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;a href="http://technet.microsoft.com/en-us/library/jj134172"&gt;&lt;span style="color: #0000ff;"&gt;Hyper-V Replica&lt;/span&gt;&lt;/a&gt;: &lt;/strong&gt;Hyper-V Replica in Windows Server 2012 allows you to replicate multiple VMs from different tenants on single physical host.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;a href="http://technet.microsoft.com/en-us/library/jj134230"&gt;&lt;span style="color: #0000ff;"&gt;Hyper-V Network Virtualization&lt;/span&gt;&lt;/a&gt;: &lt;/strong&gt;Hyper-V Network Virtualization allows a multiple&amp;nbsp; tenant virtual networks with overlapping IP address space to be created on the same hoster physical network yet providing isolation between tenant network. A replicated VM of a tenant can be brought live in a dedicated virtual network&amp;nbsp; for the tenant in the hosting provider&amp;rsquo;s physical&amp;nbsp;&amp;nbsp; network.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;a href="http://technet.microsoft.com/en-us/library/hh831614(v=ws.11).aspx"&gt;&lt;span style="color: #0000ff;"&gt;Site-to-Site VPN support&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;: Using the S2S VPN solution which is available in Windows Server 2012 (which includes support for S2S VPN over IPsec), tenants can connect to their respective virtual network in the hoster premises.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;a href="http://technet.microsoft.com/en-us/library/hh831664"&gt;&lt;span style="color: #0000ff;"&gt;DirectAccess with multi-pathing&lt;/span&gt;&lt;/a&gt;: &lt;/strong&gt;Multi-Pathing enables employees of&amp;nbsp; each tenants to connect to the on-premises DA under normal operations. If the replicated VMs are brought up in the hosting provider premises (say, due to a disaster in the tenant&amp;rsquo;s site), employees smoothly failover to the hoster DA server and through it to the replicated VMs in their respective virtual network with the hoster.&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="justify"&gt;&lt;br /&gt;In this article, we will demonstrate the steps required to set up a deployment to replicate a mission critical app (which is hosted in a VM) from the customers premise to a hoster. When a disaster strikes the customer premises, the administrator fails over to the replicated VM (on the hosting provider premises) which comes up with the same IP address. Clients using DA can seamlessly be routed to the service that&amp;rsquo;s currently up and running in the hosting provider premises.&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;The topology is as follows:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/6472.image_5F00_5097697E.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/7558.image_5F00_thumb_5F00_56749DC8.png" alt="image" width="681" height="384" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Contoso.com&amp;rsquo;s Washington site consists of&amp;nbsp; an:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Edge Gateway&lt;strong&gt; (EDGE1)&lt;/strong&gt; is a Windows Server 2012 VM in which Remote Access is configured.&amp;nbsp; EDGE1 connects to Internet via a NIC&amp;nbsp; (131.107.0.2) which connects to the Internet Router (131.107.0.1). It also connects to rest of Contoso&amp;rsquo;s corporate network (10.0.0.0/24) via another NIC (10.0.0.2, 2001:db8:dc::1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Domain controller &lt;strong&gt;DC1&lt;/strong&gt; (10.0.0.1, 2001:db8:dc::1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Applications server &lt;strong&gt;APP1&lt;/strong&gt; ((10.0.0.1, 2001:db8:dc::1)&amp;nbsp; run as VMs on another&amp;nbsp; WS2012 Hyper-v Server (ContosoP1 &amp;ndash; also referred to as the &amp;ldquo;&lt;strong&gt;Primary Server&lt;/strong&gt;&amp;rdquo;).&amp;nbsp; Hyper-V Replica is enabled on this (APP1) VM and the VM is replicated to a Windows Server 2012 Hyper-V server on the hosting provide premises (HosterR1 &amp;ndash; also referred to as the &amp;ldquo;&lt;strong&gt;Replica Server&lt;/strong&gt;&amp;rdquo;) .&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Client&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;Client1&lt;/strong&gt; is a client VM of Contoso that is connected to Internet (131.107.0.200)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;DA is configured on Client1 which ensures that it can connect to&amp;nbsp; Contoso&amp;rsquo;s corporate&amp;nbsp; network and access&amp;nbsp; applications like APP1. Client1 is not concerned whether APP1 is physically present in Washington site or in hoster network as it accesses the application by it&amp;rsquo;s name&amp;nbsp; app1.corp.contoso.com using DireactAccess. Furthermore, it can connect to DA server in the enterprise viz, EDGE1 or connect to DA server of Contoso at the hoster premises 3-DAS1. If connectivity to any DA server is lost,&amp;nbsp; the DA connection automatically reconnects to other active DA server.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="justify"&gt;&lt;strong&gt;Hosting Provider:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;HosterGW, &lt;/strong&gt;which is running on Windows Server 2012,&amp;nbsp; is connected to &amp;ldquo;Internet&amp;rdquo; (131.107.0.101). The hoster&amp;rsquo;s internal network is 192.168.1.101.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;NAT is enabled on HosterGW so that applications/services (like Hyper-V Replica )&amp;nbsp; on&amp;nbsp; hoster internal network&amp;nbsp; (eg:HosterR1 ,192.168.1.101) are available over Internet.&amp;nbsp; HosterR1 can host VMs directly created on it or replicated to it using Hyper-v Replica.&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;HosterGW machine hosts GW VMs per tenant&amp;nbsp; so that&amp;nbsp; the hoster can provide connectivity&amp;nbsp; between the tenant&amp;rsquo;s virtual network and&amp;nbsp; tenant&amp;rsquo;s on-prem network. In this topology, &lt;strong&gt;ContosoCloudGW&lt;/strong&gt; VM is the S2S VPN GW for Contoso. This VM connects the contoso virtual network at hoster to the contoso corporate network. &lt;strong&gt;Hyper-V Network Virtualization &lt;/strong&gt;is used to create the Contoso&amp;rsquo;s virtual network of 10.0.0.0/24, 10.6.0.0/24, 2001:db8:dc::/48 and 2001:db8:dc::/48 (collectively called the Customer Address space or CA) over the hoster&amp;rsquo;s&amp;nbsp; address space&amp;nbsp; 192.168.1.0/24 (called Provider Address space&amp;nbsp; or PA).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;Building the above deployment&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;Step 1: &lt;strong&gt;Building Contoso&amp;rsquo;s environment&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;This step is similar to creating the base environment for DA. The &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29031"&gt;test lab guide&lt;/a&gt; which demonstrates Direct Access single server setup has detailed steps on creating the environment. Once the steps are completed, you will have a setup where Client1 from Internet (directly connected or behind NAT) can access APP1 over Direct Access as shown in the below diagram.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5707.image_5F00_48B039A0.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/7532.image_5F00_thumb_5F00_459DDBAB.png" alt="image" width="667" height="189" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; &lt;strong&gt;Building Hosters&amp;rsquo;s environment&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The objectives of the hosting provider are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allow Contoso.com to bring VMs with an IP of their choice&lt;/li&gt;
&lt;li&gt;Connect Contoso VMs back to their on-prem network.&lt;/li&gt;
&lt;li&gt;Allow customers to replicate their on-prem VMs to the hosting provider&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/7851.image_5F00_7078D06E.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/7838.image_5F00_thumb_5F00_368C1E33.png" alt="image" width="650" height="265" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2a) Steps required to &amp;ldquo;bring your own IP address&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Hyper-V Network Virtualization (HNV) allows Contoso to bring VMs with an IP address to the hoster. The following cmdlets demonstrate how HNV can be deployed on two hosts viz., &lt;strong&gt;HosterGW&lt;/strong&gt; &amp;amp; &lt;strong&gt;HosterR1&lt;/strong&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;In this example, HosterGW has two NICs one connected to &amp;ldquo;Internet&amp;rdquo; (131.107.0.101) and once connected to hoster internal network (192.168.1.101). HosterR1 has one NIC connected to hoster internal network(192.168.1.111). The following PS cmdlets need to be run on both&lt;strong&gt; HosterGW and HosterR1 &lt;/strong&gt;to configure HNV.&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;"&gt;
&lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;# Rename the NIC connected to &lt;span style="color: #0000ff;"&gt;internal&lt;/span&gt; network  &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;  &amp;ldquo;WnvNIC&amp;rdquo; and run the following cmdlets&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;$WnvNIC   = &lt;span style="color: #006080;"&gt;"WnvNIC"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;$WnvDRV   = &lt;span style="color: #006080;"&gt;"ms_netwnv"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Disable-NetAdapterBinding $WnvNIC -ComponentID $WnvDRV&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;Enable-NetAdapterBinding  $WnvNIC -ComponentID $WnvDRV&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;# Run the following cmdlets to enable Contoso &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt; network&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;# ContosoCloudGW 10.6.0.2&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"10.6.0.2"&lt;/span&gt;        -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.101"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d05df03"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"ContosoCloudGW-v4"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"0.0.0.0"&lt;/span&gt;         -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.101"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d05df03"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"wildcard v4"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"2001:db8:ba::2"&lt;/span&gt;  -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.101"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d05df03"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"ContosoCloudGW-v6"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"::"&lt;/span&gt;              -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.101"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d05df03"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"wildcard v6"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;#ContosoCloudDAServer&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"10.6.0.6"&lt;/span&gt;        -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d059701"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"ContosoCloudDAServer-v4"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"0.0.0.0"&lt;/span&gt;         -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d059701"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"wildcard v4"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"2001:db8:ba::6"&lt;/span&gt;  -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d059701"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"ContosoCloudDAServer-v6"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"::"&lt;/span&gt;              -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d059701"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"wildcard v6"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;#ContosoCloudDC&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"10.6.0.3"&lt;/span&gt;        -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d059700"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"ContosoCloudDC-v4"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"2001:db8:ba::3"&lt;/span&gt;  -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155d059700"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"ContosoCloudDC-v6"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;#Customer Routes &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; VSID 5001&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"10.6.0.0/24"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"0.0.0.0"&lt;/span&gt;  -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"0.0.0.0/0"&lt;/span&gt;   -NextHop &lt;span style="color: #006080;"&gt;"10.6.0.2"&lt;/span&gt; -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;#New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"10.0.0.0/24"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"10.6.0.2"&lt;/span&gt; -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;#New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"10.2.0.0/24"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"10.6.0.2"&lt;/span&gt; -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"2001:db8:ba::/48"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"::"&lt;/span&gt;  -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"2001:db8:dc::/48"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"2001:db8:ba::2"&lt;/span&gt; -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"2001:db8:fa::/48"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"2001:db8:ba::2"&lt;/span&gt; -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationCustomerRoute -RoutingDomainID &lt;span style="color: #006080;"&gt;"{11111111-2222-3333-4444-000000005001}"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5001"&lt;/span&gt; -DestinationPrefix &lt;span style="color: #006080;"&gt;"2001:db8:ba:1000::/64"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"2001:db8:ba::6"&lt;/span&gt;  -Metric 255 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;#App1&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"10.0.0.80"&lt;/span&gt;       -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5002"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155db1c505"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"APP1-v4"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationLookupRecord -CustomerAddress &lt;span style="color: #006080;"&gt;"2001:db8:dc::80"&lt;/span&gt; -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -VirtualSubnetID &lt;span style="color: #006080;"&gt;"5002"&lt;/span&gt; -MACAddress &lt;span style="color: #006080;"&gt;"00155db1c505"&lt;/span&gt; -Rule &lt;span style="color: #006080;"&gt;"TranslationMethodEncap"&lt;/span&gt; -VMName &lt;span style="color: #006080;"&gt;"APP1-v6"&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;*Replace the MAC addrersses  &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; required&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p align="justify"&gt;On the HosterGW, run the following cmdlets:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;"&gt;
&lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;$iface = Get-NetAdapter $WnvNIC&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationProviderAddress -InterfaceIndex $iface.InterfaceIndex -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.101"&lt;/span&gt; -PrefixLength 24 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;# Make sure the adapter name &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; correct  Rename-VMNetworkAdapter -vmname ContosoCloudGW -Name &lt;span style="color: #006080;"&gt;"Network Adapter"&lt;/span&gt; -NewName &lt;span style="color: #006080;"&gt;"Wnv-CA-NIC"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Set-VMNetworkAdapter &lt;span style="color: #006080;"&gt;"ContosoCloudGW"&lt;/span&gt;   -Name &lt;span style="color: #006080;"&gt;"Wnv-CA-NIC"&lt;/span&gt; -VirtualSubnetID 5001;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;Get-VMNetworkAdapter &lt;span style="color: #006080;"&gt;"ContosoCloudGW"&lt;/span&gt; | &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt; {$_.MacAddress -eq &lt;span style="color: #006080;"&gt;"808080808002"&lt;/span&gt;} | Set-VMNetworkAdapter -VirtualSubnetID 5002 &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;On HosterR1, run the following cmdlets:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;"&gt;
&lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;$iface = Get-NetAdapter $WnvNIC &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;New-NetVirtualizationProviderAddress -InterfaceIndex $iface.InterfaceIndex -ProviderAddress &lt;span style="color: #006080;"&gt;"192.168.1.111"&lt;/span&gt; -PrefixLength 24 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;New-NetVirtualizationProviderRoute -InterfaceIndex $iface.ifIndex -DestinationPrefix &lt;span style="color: #006080;"&gt;"0.0.0.0/0"&lt;/span&gt; -NextHop &lt;span style="color: #006080;"&gt;"192.168.1.101"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;# Make sure the adapter name &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; correct &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;Rename-VMNetworkAdapter -vmname ContosoCloudDAServer -Name &lt;span style="color: #006080;"&gt;"Network Adapter"&lt;/span&gt; -NewName &lt;span style="color: #006080;"&gt;"Wnv-CA-NIC"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Set-VMNetworkAdapter &lt;span style="color: #006080;"&gt;"ContosoCloudDAServer"&lt;/span&gt; -Name &lt;span style="color: #006080;"&gt;"Wnv-CA-NIC"&lt;/span&gt; -VirtualSubnetID 5001;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;# Make sure the adapter name &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; correct &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;Rename-VMNetworkAdapter -vmname 3-APP1 -Name &lt;span style="color: #006080;"&gt;"WnvNic"&lt;/span&gt; -NewName &lt;span style="color: #006080;"&gt;"Wnv-CA-NIC"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Get-VMNetworkAdapter &lt;span style="color: #006080;"&gt;"ContosoCloudDC"&lt;/span&gt; | &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt; {$_.MacAddress -eq &lt;span style="color: #006080;"&gt;"00155d059700"&lt;/span&gt;} | Set-VMNetworkAdapter -VirtualSubnetID 5001&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;Set-VMNetworkAdapter App1 -Name &lt;span style="color: #006080;"&gt;"Private Corpnet"&lt;/span&gt; -VirtualSubnetID 5002 &amp;ndash;Passthru&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Step 2b: Connect Contoso VMs back to their on-prem network.&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;While the above steps create the necessary network infrastructure to create Contoso virtual network the following steps are required to create the VMs and ensure that the VMs are able to connect to Contoso on-prem network.&lt;/p&gt;
&lt;p align="justify"&gt;On &lt;strong&gt;HosterGW:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Create a Windows Server 2012 VM ContosoCloudGW with 2 VM NICs&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Connect one VM NIC to the V-Switch connecting to Internet NIC (131.107.0.101)&amp;nbsp; and another VM NIC to V-switch connecting to Internal NIC.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Configure MAC address of internal VM NIC as 00155d05df03&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Configure the following IP address scheme:&lt;/div&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Assign IPv4 address 10.6.0.2/24 &amp;amp;2001:db8:6::2/64 to NIC connected to internal NI&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Create site-to-site VPN connections between&amp;nbsp; ContosoCloudGw &amp;amp; EDGE1 using the following cmdlets&lt;/li&gt;
&lt;/ul&gt;
&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;"&gt;
&lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;ipmo servermanger &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;add-windowsFeature -name routing -IncludeManagementTools &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;ipmo remoteaccess &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;install-remoteaccess -vpntype vpns2s &amp;ndash;IPv6Prefix 2001:db8:6:200::/64 -IPAddressRange (&lt;span style="color: #006080;"&gt;"10.6.0.200"&lt;/span&gt;,&lt;span style="color: #006080;"&gt;"10.6.0.210"&lt;/span&gt;) &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Add-VpnS2SInterface EDGE1 131.107.0.2 -Protocol IKEv2  -AuthenticationMethod PSKOnly -SharedSecret abc -IPv4Subnet10.2.0.0/24:100 &amp;ndash;IPv6Subnet2001:db8:2::/48:100 &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;##On EDGE1  : &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;Add-VpnS2SInterface 3-EDGE1 131.107.0.30 -Protocol IKEv2  -AuthenticationMethod PSKOnly -SharedSecret abc -IPv4Subnet &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;10.6.0.0/24:100 &amp;ndash;IPv6Subnet 2001:db8:6::/48:100&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The above steps ensure that&amp;nbsp; VMs of Contoso hosted @ the hoster are accessible from Contoso&amp;nbsp; Washington site and&amp;nbsp; Internet Via DirectAccesss from EDGE1.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/4705.image_5F00_2F033F77.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/2161.image_5F00_thumb_5F00_0BD5D4C5.png" alt="image" width="697" height="273" border="0" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;nbsp; Step 2c: Configure Hyper-V Replica&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;This replica server is &amp;lsquo;published&amp;rsquo; using the hoster&amp;rsquo;s GW via regular HTTPS (customers use cert-based authentication to replicate).&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/3644.image_5F00_323A48C1.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/6862.image_5F00_thumb_5F00_517F8045.png" alt="image" width="542" height="309" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;The following links illustrate on how to achieve this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Create certificates using makecert &amp;ndash; Appendix C of the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29016"&gt;Understanding and Troubleshooting guide for Hyper-V Replica&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;(or) Create certificates from a &lt;a href="http://blogs.technet.com/b/virtualization/archive/2012/07/02/requesting-certificates-for-hyper-v-replica-from-cas.aspx"&gt;standalone CA&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;(or) Create certificates from an &lt;a href="http://blogs.technet.com/b/virtualization/archive/2012/07/10/requesting-hyper-v-replica-certificates-from-an-enterprise-ca.aspx"&gt;Enterprise CA&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Setup replication for the virtual machine &lt;a href="http://blogs.technet.com/b/virtualization/archive/2012/07/18/hyper-v-replica-certificate-based-authentication-in-windows-server-2012-rc.aspx"&gt;using&lt;/a&gt; the certificate based authentication.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Since EDGE1 is acting as DA server it will not allow any non-IPsec traffic thru it. In general customer deployment there would be an IPS device in front of EDGE1. In the above topology to allow HTTPS HVR traffic thru EDGE1, we need to disable IPsec dosp with the following cmdlet&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;"&gt;
&lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;netsh ipsecdosprotection set miscellaneous defaultblock=disable&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;As Hyper-V Replica takes on the end-server name (not IP address) as input, you could resolve the server name by making an entry in the host file of ContosP1. To achieve this, add an entry in %systemdrive%\drivers\etc\hosts&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;131.107.0.101 HosterR1&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Similarly on HosterR1, add the following entry in hosts file&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;131.107.0.101 ContosP1&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Step 3: &lt;strong&gt;Configuring Cloud DA site on top of Hyper-v Network Virtualization:&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Now that&amp;nbsp; we have ensured the the VMs are replicated to the hoster we need to provide and option to Contoso employees&amp;nbsp; to connect&amp;nbsp; to their&amp;nbsp; replicated VMs&amp;nbsp; from Internet even if Washington DA server is not available.&amp;nbsp; This is done by deploying a DA server in Contoso cloud. Since DA in WS 2012 supports multiple DA sites, all that&amp;rsquo;s required here is to enable&amp;nbsp; a new&amp;nbsp; Cloud DA entry point.&amp;nbsp; Following diagram&amp;nbsp; describes the topology.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/1588.image_5F00_77E3F441.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/3247.image_5F00_thumb_5F00_621C9C95.png" alt="image" width="727" height="408" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Here are the steps to configure DA cloud site:&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Configure NAT on 3-EDG1&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open rrasmgmt.msc&lt;/li&gt;
&lt;li&gt;Right click on IPv4 general node&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/3618.clip_5F00_image002_5F00_5C18C30A.gif"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/8461.clip_5F00_image002_5F00_thumb_5F00_1459CAD4.gif" alt="clip_image002" width="583" height="413" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3. Click new Routing Protocol&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/2548.image11_5F00_5426420A.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/8787.image11_5F00_thumb_5F00_712EF0D2.png" alt="image" width="563" height="406" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4. Select NAT&lt;/p&gt;
&lt;p&gt;5. Right click on NAT node.&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="93"&gt;&amp;nbsp;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/2783.image41_5F00_02A1E25C.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/1680.image41_5F00_thumb_5F00_2FB95FDB.png" alt="image" width="562" height="395" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;6. Select New Interface.&lt;/p&gt;
&lt;p&gt;7. Select the interface connected to Internet.&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="92"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5633.image7_5F00_46C688AB.png"&gt;&lt;img style="display: inline;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/4743.image7_5F00_thumb_5F00_0D460965.png" alt="image" width="389" height="484" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;8. In NAT tab, select Public Interface connected to private network and check &amp;ldquo;Enable NAT on this interface&amp;rdquo; option.&lt;/p&gt;
&lt;p&gt;9. Select services and ports tab, select &amp;ldquo;Secure web server (HTTPS) option&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/8037.image101_5F00_03146EF8.png"&gt;&lt;img style="display: inline;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/1513.image101_5F00_thumb_5F00_677273B2.png" alt="image" width="411" height="484" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="205"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Enter the IP address of 3-DAS1, 10.6.0.6 in Private address.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configure 3-DAS1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Configure IP address 10.6.0.6/24 (default route 10.6.0.2) &amp;amp; 2001:db8:2::/64 (default route 2001:db8:6::/64) with DNS server as 10.0.0.1/24, 10.2.0.1/24 &amp;amp; 2001:db8:1::1/64, 2001:db8:2::1/64 respectively.&lt;/p&gt;
&lt;p&gt;1. In the Server Manager console, click Local Server, and then in the Properties area, next to Avez-CA-NIC , click the link.&lt;/p&gt;
&lt;p&gt;2. Right-click Avez-CA-NIC, and then click Properties.&lt;/p&gt;
&lt;p&gt;3. Click Internet Protocol Version 4 (TCP/IPv4), and then click Properties.&lt;/p&gt;
&lt;p&gt;4. Click Use the following IP address. In IP address, type 10.6.0.6, in Subnet mask, type 255.255.255.0.&lt;/p&gt;
&lt;p&gt;5. Click Use the following DNS server addresses. In Preferred DNS server, type 10.0.0.1, and in Alternate DNS server, type 10.2.0.1.&lt;/p&gt;
&lt;p&gt;6. Click Advanced, and then click the DNS tab.&lt;/p&gt;
&lt;p&gt;7. In DNS suffix for this connection, type corp.contoso.com, and then click OK twice.&lt;/p&gt;
&lt;p&gt;8. Click Internet Protocol Version 6 (TCP/IPv6), and then click Properties.&lt;/p&gt;
&lt;p&gt;9. Click Use the following IPv6 address. In IPv6 address, type 2001:db8:6::6, in Subnet prefix length, type 64. Click Use the following DNS server addresses, and in Preferred DNS server, type 2001:db8:1::1, in Alternate DNS server, type 2001:db8:2::1&lt;/p&gt;
&lt;p&gt;10. Click Advanced, and then click the DNS tab.&lt;/p&gt;
&lt;p&gt;12. In DNS suffix for this connection, type corp.contoso.com, and then click OK twice.&lt;/p&gt;
&lt;p&gt;13. On the 2-Corpnet Properties dialog box, click Close.&lt;/p&gt;
&lt;p&gt;Join 3-DAS1 to corp.contoso.com.. Configure 3-DAS1 as 3&lt;sup&gt;rd&lt;/sup&gt; entry point (similar to step 12).&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
&lt;p&gt;&lt;strong&gt;Obtain certificates on 3-DAS1&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="552"&gt;
&lt;p&gt;1. Click Start, type mmc, and then press ENTER.&lt;/p&gt;
&lt;p&gt;2. In the MMC console, on the File menu, click Add/Remove Snap-in.&lt;/p&gt;
&lt;p&gt;3. On the Add or Remove Snap-ins dialog box, click Certificates, click Add, click Computer account, click Next, click Local computer, click Finish, and then click OK.&lt;/p&gt;
&lt;p&gt;4. In the console tree of the Certificates snap-in, open Certificates (Local Computer)\Personal.&lt;/p&gt;
&lt;p&gt;5. Right-click Personal, point to All Tasks, and then click Request New Certificate.&lt;/p&gt;
&lt;p&gt;6. Click Next twice.&lt;/p&gt;
&lt;p&gt;7. On the Request Certificates page, select the Client-Server Authentication and the Web Server 2008 check boxes, and then click More information is required to enroll for this certificate.&lt;/p&gt;
&lt;p&gt;8. On the Certificate Properties dialog box, on the Subject tab, in the Subject name area, in Type, select Common name.&lt;/p&gt;
&lt;p&gt;9. In Value, type 3-DAS1.contoso.com, and then click Add.&lt;/p&gt;
&lt;p&gt;10. In the Alternative name area, in Type, select DNS.&lt;/p&gt;
&lt;p&gt;11. In Value, enter 3-DAS1.contoso.com, and then click Add.&lt;/p&gt;
&lt;p&gt;12. On the General tab, in Friendly name, type IP-HTTPS Certificate.&lt;/p&gt;
&lt;p&gt;13. Click OK, click Enroll, and then click Finish.&lt;/p&gt;
&lt;p&gt;14. In the details pane of the Certificates snap-in, verify that new certificates with the names 3-DAS1.contoso.com and nls.corp.contoso.com were enrolled with Intended Purposes of Server Authentication, and a new certificate with the name 3-DAS1.corp2.corp.contoso.com was enrolled with Intended Purposes of Client Authentication and Server Authentication.&lt;/p&gt;
&lt;p&gt;15. Close the console window. If you are prompted to save settings, click No.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
&lt;p&gt;&lt;strong&gt;Install the Remote Access role on 3-DAS1&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="590"&gt;
&lt;p&gt;1. Click Start, click Server Manager, and in the Dashboard, click add roles.&lt;/p&gt;
&lt;p&gt;2. Click Next three times to get to the server role selection screen.&lt;/p&gt;
&lt;p&gt;3. On the Select Server Roles dialog, select Remote Access, click Add Required Features, and then click Next.&lt;/p&gt;
&lt;p&gt;4. On the Select features dialog, expand Remote Server Administration Tools, expand Role Administration Tools, and then select Remote Access Management Tools, and then click Next.&lt;/p&gt;
&lt;p&gt;5. Click Next four times.&lt;/p&gt;
&lt;p&gt;6. On the Confirm installation selections dialog, click Install.&lt;/p&gt;
&lt;p&gt;7. On the Installation progress dialog, verify that the installation was successful, and then click Close.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
&lt;p&gt;&lt;strong&gt;To add 3-DAS1 as third entry-point&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="590"&gt;
&lt;p&gt;1. In the Remote Access Management Console of Edge-1, in the Tasks pane, click Add an Entry Point.&lt;/p&gt;
&lt;p&gt;2. In the Add an Entry Point Wizard, on the Entry Point Details page, in Remote Access server, type 3-DAS1.corp.contoso.com, in Entry point name, type 3-Edge1-Site, and then click Next.&lt;/p&gt;
&lt;p&gt;3. On the Network Topology page, click Behind NAT, and then click Next.&lt;/p&gt;
&lt;p&gt;4. On the Network Name/IP Address page, in Type the public name or IP address to which remote access clients connect, type 3-Das1.contoso.com, and then click Next.&lt;/p&gt;
&lt;p&gt;5. On the Network Adapters page, make sure that the External adapter is Internet, and the Internal adapter is 2-Corpnet, and then click Next.&lt;/p&gt;
&lt;p&gt;6. On the Prefix Configuration page, in IPv6 prefix assigned to client computers, type 2001:db8:2:2000::/64, and then click Next.&lt;/p&gt;
&lt;p&gt;7. On the Client Support page, click Allow client computers running Windows 7 to access this entry point, and click Add.&lt;/p&gt;
&lt;p&gt;8. On the Select Groups dialog box, in Enter the object names to select, type Win7_Clients_Site2, click OK, and then click Next.&lt;/p&gt;
&lt;p&gt;9. On the Client GPO Settings page, click Next.&lt;/p&gt;
&lt;p&gt;10. On the Server GPO Settings page, click Next.&lt;/p&gt;
&lt;p&gt;11. On the Network Location Server page, click Browse. On the Windows Security dialog box, click the nls.corp.contoso.com certificate, click OK, and then click Next.&lt;/p&gt;
&lt;p&gt;12. On the Summary page click Commit.&lt;/p&gt;
&lt;p&gt;13. On the Applying Server Configuration dialog box, click Close and then on the Add an Entry Point Wizard, click Close.&lt;/p&gt;
&lt;p&gt;14. Manually Add subnet 20.6.0/24 &amp;amp; 2001:db8:6::/48 in AD site on DC1.&lt;/p&gt;
&lt;p&gt;Open Active Directory sites and serices UI from Server Manger on DC1:&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="16"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/7457.image131_5F00_0DD6E7AF.png"&gt;&lt;img style="border-width: 0px; display: inline; background-image: none;" title="image131" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/1184.image131_5F00_thumb_5F00_3362F5C1.png" alt="image131" width="557" height="484" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configure 3-DC1:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Deploy 3-DC1 as&amp;nbsp; replica DC VM .&amp;nbsp; Configure IP address 10.6.0.3/24 &amp;amp; 2001:db8:6::3/64 with DNS server as 10.0.0.1/24 &amp;amp; 2001:db8:1::1/64 respectively. Join 3-DC1 to corp.contoso.com.&lt;/p&gt;
&lt;p&gt;Now employees of Contoso could connect to either EDGE1 or 3-DAS1 via DirectAccess and access VMs in Washington site or VMs hosted&amp;nbsp; in&amp;nbsp; Contoso virtual network @ hoster.&lt;/p&gt;
&lt;p&gt;In case of a disaster at Washington site, managed machines (laptops) of Contoso connect to 3-DAS1, DirectAccess Server hosted in Contoso virtual network @ hoster and access application&amp;nbsp; VMs like APP1 that are recovered using Hyper-V Replica.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Step 5: Validating Disaster Recover as a service&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The Hoster&amp;nbsp; infrastructure in place to replicate the apps. In our case,&amp;nbsp; Hyper-V server is also running a per-customer DA server and domain controller.&lt;/p&gt;
&lt;p&gt;Now that everything is setup lets simulate failover of Washington site and see how it works:&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5126.image_5F00_00957FFE.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-45-metablogapi/5314.image_5F00_thumb_5F00_4B1F4E89.png" alt="image" width="711" height="293" border="0" /&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Bring down Contoso Washington site by shutting down EDGE1 &amp;amp; ContosoP1 hosts&lt;/li&gt;
&lt;li&gt;Use Hyper-V Replica to failover the VM on Hoster&lt;/li&gt;
&lt;li&gt;VM APP1 now comes up with same IP address as it had @ Washington site&lt;/li&gt;
&lt;li&gt;Clients of Contoso are now redirected automatically to 3-DAS1 by DA configuration.&lt;/li&gt;
&lt;li&gt;Clients can now access APP1 VMs.&lt;/li&gt;
&lt;li&gt;Validate&amp;nbsp; that clients can continue to work with minimal service interruption.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The convergence of these platform technologies in Windows Server 2012 provides a big &amp;amp; seamless opportunity for hosters to build powerful services such as Disaster Recovery. Try it out and let us know your experience!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3554387" width="1" height="1"&gt;</content><author><name>Praveen Vijayaraghavan,MSFT</name><uri>http://blogs.technet.com/w8hvr_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="HVR" scheme="http://blogs.technet.com/b/virtualization/archive/tags/HVR/" /><category term="Hyper-V Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V+Replica/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /><category term="Remote Access" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Remote+Access/" /><category term="Network virtualization" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Network+virtualization/" /><category term="WNV" scheme="http://blogs.technet.com/b/virtualization/archive/tags/WNV/" /></entry><entry><title>Hyper-V Replica and Riverbed</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/03/11/hyper-v-replica-and-riverbed.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/03/11/hyper-v-replica-and-riverbed.aspx</id><published>2013-03-11T16:51:00Z</published><updated>2013-03-11T16:51:00Z</updated><content type="html">&lt;p align="justify"&gt;As part of setting up a replication relationship, Hyper-V Replica transfers the initial VHDs over the network – depending on the size of the VHD, this operation can be time consuming and also impacts your production network. Once initial replication is completed, Hyper-V Replica tracks the changes to the virtual machine and frequently sends the changes to the replica site. This can also impact the network as well based on the workload characteristics. &lt;/p&gt;  &lt;p align="justify"&gt;While Hyper-V Replica has an inbuilt compression engine, customers have repeatedly asked about the product’s co-existence with WAN optimizers. Many organizations have WAN optimizers between their two sites and are curious to understand impact of WAN optimizers on the replication traffic. We partnered with the &lt;strong&gt;Microsoft Enterprise Engineering Center (&lt;/strong&gt;&lt;a href="http://www.microsoft.com/en-us/eec/default.aspx"&gt;&lt;strong&gt;EEC&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt; and &lt;a href="http://www.riverbed.com/us/"&gt;&lt;strong&gt;Riverbed&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;®&lt;/strong&gt; WAN optimizers to run a series of experiments which captures the network bandwidth optimization delivered by Riverbed in a Hyper-V Replica deployment. The results of these runs is captured in a whitepaper which is available here - &lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=36786" href="http://www.microsoft.com/en-us/download/details.aspx?id=36786"&gt;&lt;strong&gt;http://www.microsoft.com/en-us/download/details.aspx?id=36786&lt;/strong&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Key Takeaways:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Hyper-V Replica and the Riverbed devices did not require any specialized/extra configuration to interact with each other. Each component “just-worked” out of the box!&lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;The bandwidth optimizations are a function of the VHD size, sparseness etc. When HVR’s inbuilt compression was turned off, the Riverbed devices were able to optimize the network traffic significantly across different VHDs, VMs. Even after enabling HVR’s inbuilt compression, the Riverbed devices were able to further optimize the compressed traffic. &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3557862" width="1" height="1"&gt;</content><author><name>Praveen Vijayaraghavan,MSFT</name><uri>http://blogs.technet.com/w8hvr_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="Hyper-V" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V/" /><category term="HVR" scheme="http://blogs.technet.com/b/virtualization/archive/tags/HVR/" /><category term="Hyper-V Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V+Replica/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /><category term="Riverbed" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Riverbed/" /></entry><entry><title>Hyper-V Replica Runbooks</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/b/virtualization/archive/2013/02/20/hyper-v-replica-runbook.aspx" /><id>http://blogs.technet.com/b/virtualization/archive/2013/02/20/hyper-v-replica-runbook.aspx</id><published>2013-02-20T14:21:43Z</published><updated>2013-02-20T14:21:43Z</updated><content type="html">&lt;p align="justify"&gt;System Center 2012 Orchestrator provides a powerful workflow management solution which allows IT administrators to automate different tasks exposed by the platform. At the heart of the Orchestrator is a set of &lt;b&gt;Runbooks&lt;/b&gt; which outline the sequence of activities for a given task. A number of resources are available on Technet which explain the concept and provide guidance on building these Runbooks.&amp;#160; &lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Charles Joy &lt;/strong&gt;is a Senior Program Manager with the Windows Server &amp;amp; System Center group in Microsoft who has authored a set of Hyper-V Replica sample Runbooks which can be downloaded for free from &lt;a href="http://gallery.technet.microsoft.com/Orchestrated-HVR-Planned-5ebecfc1"&gt;TechNet Galleries&lt;/a&gt;. In his blog post &lt;a title="http://blogs.technet.com/b/building_clouds/archive/2013/02/11/automation-orchestrating-hyper-v-replica-with-system-center-for-planned-failover.aspx" href="http://blogs.technet.com/b/building_clouds/archive/2013/02/11/automation-orchestrating-hyper-v-replica-with-system-center-for-planned-failover.aspx"&gt;http://blogs.technet.com/b/building_clouds/archive/2013/02/11/automation-orchestrating-hyper-v-replica-with-system-center-for-planned-failover.aspx&lt;/a&gt; he explains the high level concepts and also shows a Planned Failover in action. &lt;/p&gt;  &lt;p&gt;Download the runbook and share your experience with us – we would love to hear your feedback!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3553815" width="1" height="1"&gt;</content><author><name>Praveen Vijayaraghavan,MSFT</name><uri>http://blogs.technet.com/w8hvr_4000_live.com/ProfileUrlRedirect.ashx</uri></author><category term="HVR" scheme="http://blogs.technet.com/b/virtualization/archive/tags/HVR/" /><category term="Hyper-V Replica" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Hyper_2D00_V+Replica/" /><category term="Windows Server 2012" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Windows+Server+2012/" /><category term="Runbook" scheme="http://blogs.technet.com/b/virtualization/archive/tags/Runbook/" /></entry></feed>