<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Brettcr</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/brettcr/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/brettcr/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:27:31 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>TMG sources outgoing packets with Secondary IP addresses</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/tmg-sources-outgoing-packets-with-secondary-ip-addresses</link>
      <pubDate>Fri, 28 Dec 2012 08:15:00 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2012/12/28/tmg-sources-outgoing-packets-with-secondary-ip-addresses/</guid>
      <description><![CDATA[Hello Everyone! We&rsquo;ve seen a few cases lately dealing with TMG servers sourcing outgoing...]]></description>
      <content:encoded><![CDATA[<p>Hello Everyone! We&rsquo;ve seen a few cases lately dealing with TMG servers sourcing outgoing packets with secondary IP addresses that have been added to the NICs. This could cause issues in communications between nodes or possibly other issues. One such example that I have seen come across is where a customer had a TMG server being utilized as an internal firewall behind a 3<sup>rd</sup> party Edge firewall. Clients were utilizing the TMG server as their proxy server. When the http requests left the external interface of the TMG server the packets were sourced with a secondary IP address of the External NIC on the TMG instead of the primary address of that NIC. When the Edge firewall received the packets it dropped them because its rules were configured to only allow packets out when sourced with the primary IP address of the TMG&rsquo;s external interface. This of course broke internet connectivity for all internal clients.</p>
<p>&nbsp;</p>
<p>The question at hand is&hellip; <em>&ldquo;Why is the TMG server sourcing packets with a secondary address instead of the primary address of the NIC?&rdquo;</em></p>
<p>&nbsp;&nbsp;&nbsp;</p>
<p>The answer to that question deals with the differentiation between the Network Stack in Server 2008 and above and Server 2003 and below. Server 2003\XP and below were based off the Weak Host Model. Basically, in a Weak Host Model the primary address of the adapter with a route that most closely matches the target IP address is used as the Source IP Address.</p>
<p>&nbsp;</p>
<p>In server 2008\Vista and above we re-architectured the Network stack. It is based on the Strong Host Model. In the Strong Host Model the concept of a Primary IP Address doesn&rsquo;t exist. To determine the IP address that is utilized it looks at the routing table to decide the proper NIC to utilize, then uses the process defined in RFC 3484 to choose the source IP for outbound packets. Here is a basic breakdown of how the windows implementation of RFC 3484 chooses an IP address:</p>
<p>&nbsp;</p>
<p>Windows Source IP V4 address selection:</p>
<p>- Rule 1 Prefer same address (applies)</p>
<p>- Rule 2 Prefer appropriate scope (applies)</p>
<p>- Rule 3 Avoid deprecated addresses (applies)</p>
<p>- Rule 4 - Prefer home addresses - does not apply to IP v4</p>
<p>- Rule 5 Prefer outgoing Interfaces (applies)</p>
<p>- Rule 6 Prefer matching label - does not apply to IP v4</p>
<p>- Rule 7 Prefer public addresses - does not apply to IP v4</p>
<p>- Rule 8a: Use longest matching prefix with the next hop IP address. (not in RFC!)</p>
<p>"If CommonPrefixLen(SA, D) &gt; CommonPrefixLen(SB, D), then prefer SA. Similarly, if CommonPrefixLen(SB, D) &gt; CommonPrefixLen(SA, D), then prefer SB. " <em></em></p>
<p><em>*This says that the IP with the most high order bits that match the destination of the next hop will be used. </em></p>
<p>&nbsp;</p>
<p><strong><em>Note:</em></strong> Rule 8 - Use longest matching Prefix is similar to rule 8a except the match is with the destination IP address rather than the next hop IP address.</p>
<p>&nbsp;</p>
<p>For example, use the following addresses as an example of choosing the longest matching prefix:</p>
<p><br /><strong><span style="text-decoration: underline;">TMG Servers External IP Addresses:</span></strong></p>
<p>192.168.1.14/24 <br />&amp; <br />192.168.1.68/24</p>
<p><strong><span style="text-decoration: underline;">Default Gateway:</span></strong></p>
<p>192.168.1.127</p>
<p>&nbsp;</p>
<p>Convert these addresses into binary:</p>
<p>192.168.1.14&nbsp;&nbsp; = 11000000 10101000 00000001 00001110 <br />192.168.1.68&nbsp;&nbsp; = 11000000 10101000 00000001 01000100 <br />192.168.1.127 = 11000000 10101000 00000001 01111111</p>
<p>&nbsp;</p>
<p>The 192.168.1.68 address has more matching high order bits with the gateway address 192.168.1.127. This would cause the server to utilize what was originally defined as the &ldquo;secondary&rdquo; as the Source IP address of outgoing packets.</p>
<p>&nbsp;</p>
<p><em>*For more information on RFC 3484 please refer to the following link: </em><a href="https://www.ietf.org/rfc/rfc3484.txt">https://www.ietf.org/rfc/rfc3484.txt</a> . <em>Please note that IPv6 is referenced in RFC. Windows utilize the same process for IPv4 sourcing.&nbsp; </em><em>You can also review the following TechNet article for supported document details on the above information:</em></p>
<p>&nbsp;&nbsp;</p>
<p><strong>The functionality for source IP address selection in Windows Server 2008 and in Windows Vista differs from the corresponding functionality in earlier versions of Windows <br /></strong><a href="https://support.microsoft.com/kb/969029">https://support.microsoft.com/kb/969029</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>So now we know why your TMG server may be sourcing your packets with what you call your &ldquo;Secondary IP Address&rdquo;. It isn&rsquo;t TMG at all. It is the default behavior of the server itself. Your server version is Server 2008 or above. The question is&hellip;</p>
<p>&nbsp;</p>
<p><em>&ldquo;Can I configure my Server 2008 or above in a way that it will only utilize the first IP address as a Source address?&rdquo;</em></p>
<p>&nbsp;&nbsp;</p>
<p>The answer to that is YES! There is actually a Netsh command that can be utilized to add IP addresses. In that command you use the <strong>&ldquo;SkipAsSource&rdquo; </strong>flag and it will no longer use the IP address you are adding as a Source IP Address. This means that you will have to temporarily remove the IP Address you are having the issues with then re-add them utilizing the Netsh command (This means you will have to have a maintenance window!). Here are examples of the command lines you will use:</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">Server 2008:</span></strong> <br /><em>Netsh int ipv4 add address &lt;Interface Name&gt; &lt;ip address&gt; &lt;subnet mask&gt; skipassource=true</em></p>
<p>&nbsp;&nbsp;</p>
<p><strong><span style="text-decoration: underline;">Server 2008 R2:</span></strong></p>
<p><em>Netsh int ipv4 add address &lt;Interface Name&gt; &lt;ip address&gt; skipassource=true</em></p>
<p>&nbsp;</p>
<p><br /><em>* For details and prerequisites to utilize these commands please refer to the following articles:</em></p>
<p>&nbsp;</p>
<p><strong>All IP addresses are registered on the DNS servers when the IP addresses are assigned to one network adapter on a computer that is running Windows Server 2008 SP2 or Windows Vista SP2</strong> <br /><a href="https://support.microsoft.com/default.aspx?scid=kb;EN-US;975808">https://support.microsoft.com/default.aspx?scid=kb;EN-US;975808</a></p>
<p>&nbsp;</p>
<p><strong>IP addresses are still registered on the DNS servers even if the IP addresses are not used for outgoing traffic on a computer that is running Windows 7 or Windows Server 2008 R2 <br /></strong><a href="https://support.microsoft.com/default.aspx?scid=kb;en-US;2386184">https://support.microsoft.com/default.aspx?scid=kb;en-US;2386184</a></p>
<p>&nbsp;&nbsp;</p>
<p>Keep in mind that I gave only one specific example where this may be causing an issue.&nbsp; There may be other problems you run into where the Netsh entry I listed may help you out.&nbsp; No telling&hellip; it may not even be on your TMG servers.&nbsp; Maybe you see the issue on your UAG servers, or any other server for that fact.&nbsp;</p>
<p>&nbsp;</p>
<p>I hope the information provided helps out!</p>]]></content:encoded>
    </item>
    <item>
      <title>Example XMLHTML code for UAG AppWrap process to provide a “Cover-up” page for Custom Form Login SSO.</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/example-xmlhtml-code-for-uag-appwrap-process-to-provide-a-cover-up-page-for-custom-form-login-sso</link>
      <pubDate>Mon, 06 Aug 2012 08:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2012/08/06/example-xmlhtml-code-for-uag-appwrap-process-to-provide-a-cover-up-page-for-custom-form-login-sso/</guid>
      <description><![CDATA[Hello Everyone! We&rsquo;ve seen a lot of requests in the past regarding examples on how to...]]></description>
      <content:encoded><![CDATA[<p>Hello Everyone! We&rsquo;ve seen a lot of requests in the past regarding examples on how to create&rdquo; cover-up&rdquo; pages to utilize in the AppWrap process. I thought I would take a moment to put an example of HTML code for a basic AppWrap out there.</p>
<p>&nbsp;</p>
<p><i>*Please do keep in mind as you read on that this information is only an example and will need to be adjusted and tested in every given scenario. There are many ways to accomplish this process. This blog was created to start you on your way in a thought process to complete your desired needs.</i></p>
<p>&nbsp;&nbsp;&nbsp;</p>
<p>So what do I mean by &ldquo;cover-up&rdquo; pages? Well, think about the possibility of using the Form Fill process that UAG offers. This process is used when you are utilizing Forms Based Authentication on backend applications (such as SharePoint) and you don&rsquo;t want your clients to have to provide credentials multiple times. You can have UAG fill in the credentials that were utilized to Authenticate on the Perimeter.</p>
<p>&nbsp;</p>
<p><i>* For more on the Form Fill process please refer to the following articles:</i></p>
<p></p>
<p><i><a href="https://blogs.technet.com/b/ben/archive/2010/09/02/uag-custom-form-login.aspx">https://blogs.technet.com/b/ben/archive/2010/09/02/uag-custom-form-login.aspx</a></i></p>
<p></p>
<p><i><a href="https://blogs.technet.com/b/ben/archive/2010/01/23/custom-form-login-sso-how-to.aspx">https://blogs.technet.com/b/ben/archive/2010/01/23/custom-form-login-sso-how-to.aspx</a></i></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>All that said, still&hellip; what do I mean by &ldquo;Cover-up&rdquo; pages and why do we need them? Well, when you use the Custom Form Login process the client hits the back-end application server through UAG and gets posed with a Form Based Authentication page. UAG can then fill in that Form for the client a moment later giving a Single Sign-on (SSO) type of experience. The problem is that the client still sees the blank form and could possibly start trying to fill it in prior to UAG taking over and filling it in therefore causing an issue. Therein&hellip; the &ldquo;Cover-up&rdquo; page! It&rsquo;s using the AppWrap process to tell UAG &ldquo;When you see this specific application send a Form Based Authentication page to the client, replace it with a different page so the client doesn&rsquo;t even see the Form.&rdquo; The example I give below is nothing more than a white square that covers up the entire FBA page. Of course the Form Fill example I have given is only one manner in which the following AppWrap HTML information can be utilized.&nbsp; Please know that for this example to work you already have successfully configured the Custom Form Login process. If you haven&rsquo;t&hellip; then your clients will never see the Forms Based Authentication page and time out!</p>
<p></p>
<p>&nbsp;</p>
<p><br />&nbsp;</p>
<p>&nbsp;</p>
<p><b><span style="text-decoration: underline;">AppWrap explanation:</span></b></p>
<p></p>
<p>AppWrap (Application Wrappers) are customization files that enable UAG to search for specific types of HTTP Responses from back-end application servers and manipulate them. This UAG customization feature gives you a way to provide the external client with a different page than what was sent by the application server therefore giving them a better overall browsing experience.</p>
<p></p>
<p><i>*For more on configuring AppWraps please refer to the following Blogs:</i></p>
<p></p>
<p><i><a href="https://blogs.technet.com/b/ben/archive/2011/05/12/appwrap-and-sra.aspx">https://blogs.technet.com/b/ben/archive/2011/05/12/appwrap-and-sra.aspx</a></i></p>
<p></p>
<p><i><a href="https://blogs.technet.com/b/edgeaccessblog/archive/2009/11/17/appwrap-in-uag-what-s-new.aspx">https://blogs.technet.com/b/edgeaccessblog/archive/2009/11/17/appwrap-in-uag-what-s-new.aspx</a></i></p>
<p><br />&nbsp;</p>
<p></p>
<p>In my example for a &ldquo;Cover-up&rdquo; page we need to have the AppWrap look for the Login page by both the application type, and the URL pattern. We then replace the HEAD of the page with added elements to create a white &ldquo;Cover-up&rdquo; square.</p>
<p><br />&nbsp;</p>
<p>&nbsp;</p>
<p></p>
<p><b><span style="text-decoration: underline;">HTML Explanation:</span></b></p>
<p></p>
<p>We want to cover the entire screen, so we create an HTML element ("DIV", which stands or 'document divisions') that has no contents, and we set it to cover the screen. To do so, we create a style-sheet element called 'cover', and assign it to the blank DIV using the id attribute</p>
<p>&lt;div id="cover"&gt;&lt;/div&gt;</p>
<p>The style element itself is supposed to cover the entire screen with a white curtain, so we set it to have the following elements:</p>
<p>1) Color: white</p>
<p>2) Location: starts at the top-left corner of the screen</p>
<p>3) Size: cover 100% of the screen</p>
<p>This looks like this:</p>
<p>&lt;style&gt;</p>
<p>#cover {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; background-color: #ffffff;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; position: absolute;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; top: 0;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left: 0;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width: 100%;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height: 100%;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&lt;/Style&gt;</p>
<p>The 'absolute' position attribute means that the position where it starts is not relative to where this DIV is located in the HTML, but absolute...starts at the very top and left position of 0.</p>
<p>In HTML, the line break has no meaning, so to make it easy for AppWrap, we simply remove those, and compress it all into one line that has both the STYLE tag and the DIV tag:</p>
<p>&lt;style&gt;#cover { background-color: #ffffff; position: absolute; top: 0; left: 0; width: 100%; height: 100%;}&lt;/Style&gt;&lt;div id="cover"&gt;&lt;/div&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;<br />&nbsp;</p>
<p><br />&nbsp;</p>
<p><b><span style="text-decoration: underline;">Final AppWrap (encoded):</span></b></p>
<p></p>
<p><i>* In the example below you will notice the Bold sections for APPLICATION_TYPE and URL. These two will be populated with specific information from your environment.</i></p>
<p></p>
<p></p>
<p>&lt;APP_WRAP ver="3.0" id=" WhlFiltAppWrap_HTTPS.xml"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MANIPULATION&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MANIPULATION_PER_APPLICATION&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;APPLICATION_TYPE&gt;<i><strong>Application_Type_Description</strong></i>&lt;/APPLICATION_TYPE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DATA_CHANGE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;URL&gt;.<i><strong>*login\.asp.*</strong></i>&lt;/URL&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SEARCH encoding="base64"&gt;PEhFQUQ+&lt;/SEARCH&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;REPLACE encoding="base64"&gt;PEhFQUQ+PHN0eWxlPiNjb3ZlciB7IGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO308L1N0eWxlPjxkaXYgaWQ9ImNvdmVyIj48L2Rpdj4=&lt;/REPLACE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SEARCH encoding="base64"&gt;<span style="font-family: 'Segoe UI'; font-size: 10pt; direction: ltr;" dir="ltr">PGhlYWQ+</span>&lt;/SEARCH&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;REPLACE encoding="base64"&gt;PEhFQUQ+PHN0eWxlPiNjb3ZlciB7IGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO308L1N0eWxlPjxkaXYgaWQ9ImNvdmVyIj48L2Rpdj4=&lt;/REPLACE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/DATA_CHANGE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/MANIPULATION_PER_APPLICATION&gt;</p>
<p>&lt;/MANIPULATION&gt;</p>
<p>&lt;/APP_WRAP&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p><b><span style="text-decoration: underline;">Final AppWrap (plain text):</span></b></p>
<p></p>
<p><i>* This is just an explanation of the HTML encoded AppWrap given in plain text to try to make it a little more understandable. <strong>Please note:</strong> You MUST&nbsp;utilize the encoded version above in your custom AppWrap. </i></p>
<p></p>
<p></p>
<p>&lt;APP_WRAP ver="3.0" id=" WhlFiltAppWrap_HTTPS.xml"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MANIPULATION&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MANIPULATION_PER_APPLICATION&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;APPLICATION_TYPE&gt;<i> <strong>Application_Type_Description</strong></i><strong> </strong>&lt;/APPLICATION_TYPE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DATA_CHANGE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;URL&gt;.<i><strong>*login\.asp.*</strong></i>&lt;/URL&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SEARCH&gt;&lt;HEAD&gt;&lt;/SEARCH&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;REPLACE&gt;&lt;HEAD&gt;&lt;style&gt;#cover { background-color: #ffffff; position: absolute; top: 0; left: 0; width: 100%; height: 100%;}&lt;/Style&gt;&lt;div id="cover"&gt;&lt;/div&gt;&lt;/REPLACE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SEARCH&gt;&lt;head&gt;&lt;/SEARCH&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;REPLACE&gt;&lt;HEAD&gt;&lt;style&gt;#cover { background-color: #ffffff; position: absolute; top: 0; left: 0; width: 100%; height: 100%;}&lt;/Style&gt;&lt;div id="cover"&gt;&lt;/div&gt;&lt;/REPLACE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SAR&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/DATA_CHANGE&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/MANIPULATION_PER_APPLICATION&gt;</p>
<p>&lt;/MANIPULATION&gt;</p>
<p>&lt;/APP_WRAP&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>I hope the information I provided above helps out! Make sure to check out all the links I provided to the additional Blogs as they will get you a long way in your customization processes!</p>]]></content:encoded>
    </item>
    <item>
      <title>Forefront UAG 2010 Service Pack, Update, Rollup, and Version Number Reference</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/forefront-uag-2010-service-pack-update-rollup-and-version-number-reference</link>
      <pubDate>Tue, 03 Jul 2012 13:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2012/07/03/forefront-uag-2010-service-pack-update-rollup-and-version-number-reference/</guid>
      <description><![CDATA[Below you will find the Forefront Unified Access Gateway 2010 Updates and their corresponding...]]></description>
      <content:encoded><![CDATA[<p>Below you will find the Forefront Unified Access Gateway 2010 Updates and their corresponding version numbers. It also contains the links for more information and\or downloads if available.</p>
<p>To find the version of UAG you are using, in your MMC, go to Help, and then &quot;About &hellip;&rdquo; and you will see the following information:</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/8473.clip_image002_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/8473.clip_5F00_image002_5F00_2.jpg"><img width="216" height="244" title="clip_image002" style="display:inline;background-image:none;" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/0844.clip_image002_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/0844.clip_5F00_image002_5F00_thumb.jpg" border="0" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>You can utilize the following data to determine what patch level you are currently at once you find your Version number:</p>
<p><em></em>&nbsp;&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="58" valign="top">
<p><strong>RTM, <br /><br />&nbsp; Service Pack, Update, Rollup</strong></p>
</td>
<td width="99" valign="top">
<p><strong>Version</strong></p>
</td>
<td width="503" valign="top">
<p><strong>Reference </strong></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>UAG 2010 RTM</p>
</td>
<td width="99" valign="top">
<p>4.0.1101.000</p>
</td>
<td width="503" valign="top">
<p>&nbsp;<a href="https://www.microsoft.com/en-us/server-cloud/forefront/unified-access-gateway.aspx">https://www.microsoft.com/en-us/server-cloud/forefront/unified-access-gateway.aspx</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Security Update</p>
</td>
<td width="99" valign="top">
<p>4.0.1101.052</p>
</td>
<td width="503" valign="top">
<p><a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=5F2EE08E-E289-47DB-BD3F-7B9CFC1EB985&amp;amp;amp;displaylang=e&amp;displaylang=en">https://www.microsoft.com/downloads/details.aspx?FamilyID=5F2EE08E-E289-47DB-BD3F-7B9CFC1EB985&amp;amp;amp;displaylang=e&amp;displaylang=en</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Update 1</p>
</td>
<td width="99" valign="top">
<p>4.0.1152.100</p>
</td>
<td width="503" valign="top">
<p><a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=A862C57F-5C27-4CD0-8528-91B3CC5CD758&amp;amp;displaylang=en&amp;displaylang=en">https://www.microsoft.com/downloads/details.aspx?FamilyID=A862C57F-5C27-4CD0-8528-91B3CC5CD758&amp;amp;displaylang=en&amp;displaylang=en</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Update 1, Rollup 1</p>
</td>
<td width="99" valign="top">
<p>4.0.1152.110</p>
</td>
<td width="503" valign="top">
<p><a href="https://support.microsoft.com/kb/981932">https://support.microsoft.com/kb/981932</a></p>
<p><em>* To install you must already have Update1<br />&nbsp; installed.</em></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Update 1, Security Update</p>
</td>
<td width="99" valign="top">
<p>4.0.1152.150</p>
</td>
<td width="503" valign="top">
<p><a href="https://support.microsoft.com/kb/2433584">https://support.microsoft.com/kb/2433584</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Update 2</p>
</td>
<td width="99" valign="top">
<p>4.0.1269.200</p>
</td>
<td width="503" valign="top">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=12120">https://www.microsoft.com/en-us/download/details.aspx?id=12120</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Update 2, Security Update</p>
</td>
<td width="99" valign="top">
<p>4.0.1269.250</p>
</td>
<td width="503" valign="top">
<p><a href="https://support.microsoft.com/kb/2418933">https://support.microsoft.com/kb/2418933</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 1</p>
</td>
<td width="99" valign="top">
<p>4.0.1752.10000</p>
</td>
<td width="503" valign="top">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=13885">https://www.microsoft.com/en-us/download/details.aspx?id=13885</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 1, Rollup 1</p>
</td>
<td width="99" valign="top">
<p>4.0.1752.10020</p>
</td>
<td width="503" valign="top">
<p><a href="https://support.microsoft.com/kb/2475733">https://support.microsoft.com/kb/2475733</a></p>
<p><em>* To install you must already have SP1<br />&nbsp; installed.</em></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 1, Update 1</p>
</td>
<td width="99" valign="top">
<p>4.0.1773.10100</p>
</td>
<td width="503" valign="top">
<p><a href="https://support.microsoft.com/kb/2585140">https://support.microsoft.com/kb/2585140</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 1, Update 1, Rollup 1</p>
</td>
<td width="99" valign="top">
<p>4.0.1773.10110</p>
</td>
<td width="503" valign="top">
<p><a href="https://support.microsoft.com/kb/2647899">https://support.microsoft.com/kb/2647899</a></p>
<p><em>* To install you must already have SP1 Update1<br />&nbsp; installed.</em></p>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 1, Update 1, Security Update</p>
</td>
<td width="99" valign="top">
<p>4.0.1773.10190</p>
</td>
<td width="503" valign="top">
<p><a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=E0F9ACAB-BFB8-4758-B60D-64E68A84FBA0&amp;amp;displaylang=en&amp;displaylang=en">https://www.microsoft.com/downloads/details.aspx?FamilyID=E0F9ACAB-BFB8-4758-B60D-64E68A84FBA0&amp;amp;displaylang=en&amp;displaylang=en</a></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 1, Update 1, Rollup 2</p>
</td>
<td width="99" valign="top">
<p>4.0.1773.10214</p>
</td>
<td width="503" valign="top">
<p>Not available for public<br />&nbsp; download.</p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service<br /><br />&nbsp; Pack 2</p>
</td>
<td width="99" valign="top">
<p>4.0.2095.10000</p>
</td>
<td width="503" valign="top">
<p>&nbsp;<a href="https://www.microsoft.com/en-us/download/details.aspx?id=30459">https://www.microsoft.com/en-us/download/details.aspx?id=30459</a></p>
<p><em>* To install you must already have SP1 Update1<br />&nbsp; installed. </em></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service<br /><br />&nbsp; Pack 3</p>
<p>&nbsp;</p>
</td>
<td width="99" valign="top">
<p>&nbsp;4.0.3123.10000</p>
<p>&nbsp;</p>
</td>
<td width="503" valign="top">
<p>&nbsp;<a href="https://www.microsoft.com/en-us/download/details.aspx?id=36788">https://www.microsoft.com/en-us/download/details.aspx?id=36788</a></p>
<p><em>* To install you must already have UAG SP2 and<br />&nbsp; TMG SP2&nbsp;installed. </em></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 3, Rollup 1</p>
</td>
<td width="99" valign="top">
<p>&nbsp;4.0.3206.10100</p>
</td>
<td width="503" valign="top">
<p>&nbsp;<a href="https://support.microsoft.com/kb/2827350">https://support.microsoft.com/kb/2827350</a></p>
<p><em>* To install you must already have UAG SP3<br />&nbsp; installed.</em></p>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service</p>
<p>Pack 4</p>
<p></p>
<p></p>
<p></p>
</td>
<td width="99" valign="top">
<p>4.0.4083.10000</p>
</td>
<td width="503" valign="top">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=41181">https://www.microsoft.com/en-us/download/details.aspx?id=41181</a>#</p>
<p><em>* To install SP4 you must already have UAG SP3 Rollup1 </em><em>installed.</em></p>
<p><em>&nbsp;</em><em>&nbsp;</em></p>
</td>
</tr>
<tr>
<td width="58" valign="top">
<p>Service Pack 4, Rollup 1</p>
</td>
<td width="99" valign="top">
<p>4.0.4160.10100</p>
</td>
<td width="503" valign="top">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=41181">https://support2.microsoft.com/kb/2922171</a></p>
<p><em>* To install SP4 RU1 you must have SP4 installed. For more details on installation and restart needs refer to the article above.</em></p>
<p><em>&nbsp;</em><em>&nbsp;</em></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><em></em>&nbsp;</p>
<p><em>* This article will be updated as new major patches are released. </em></p>
<p><em>** You can also review the following Blog to find out more information regarding the differences<br />between a &ldquo;Private Fix&rdquo;,&nbsp;a &ldquo;Roll-up&rdquo;, an &ldquo;Update&rdquo;, and a &ldquo;Service Pack&rdquo;:</em></p>
<p><em><a href="/b/edgeaccessblog/archive/2010/12/06/types-of-updates-available-for-uag.aspx">https://blogs.technet.com/b/edgeaccessblog/archive/2010/12/06/types-of-updates-available-for-uag.aspx</a></em></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>TMG Services Stopping Unexpectedly</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/tmg-services-stopping-unexpectedly</link>
      <pubDate>Thu, 28 Jun 2012 09:18:00 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2012/06/28/tmg-services-stopping-unexpectedly/</guid>
      <description><![CDATA[As of early AM June 28th 2012, there have been many reports of TMG services stopping...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;" size="3">As of early AM June 28th 2012, there have been many reports of TMG services stopping unexpectedly.&nbsp; We are primarily seeing the issues in an SSL Publishing scenario.&nbsp; You may expect to see the following in the Application Event Logs coinciding with the service stopping: </span></p>
<p><br />&nbsp;</p>
<p><em><span style="font-size: small;" size="3">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Service Control Manager <br />Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7034 <br />Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error <br />Description: <br />The Microsoft Forefront TMG Firewall service terminated unexpectedly.&nbsp; It has done this &lt;times&gt;.</span></em></p>
<p><br />&nbsp;&nbsp;</p>
<p></p>
<p><span style="font-size: small;" size="3">And\Or</span></p>
<p><span style="font-size: small;" size="3"></span>&nbsp;<br />&nbsp;</p>
<p><em><span style="font-size: small;" size="3">Source: Microsoft Forefront TMG Firewall <br />Event ID: 14057 <br />Description: <br />The Firewall service stopped because an application filter module C:\Program Files\Microsoft Forefront Threat Management Gateway\w3filter.dll generated an exception code C0000005 in address &lt;hex_address&gt; when function CompleteAsyncIO was called. To resolve this error, remove recently installed application filters and restart the service. <br />&nbsp;</span></em></p>
<p>&nbsp;&nbsp;&nbsp;</p>
<p></p>
<p><span style="font-size: small;" size="3">It has been determined that applying TMG SP2 Rollup2 will resolve the issue.&nbsp; To install&nbsp;Rollup 2 please&nbsp;refer to the following link:</span></p>
<p>&nbsp;&nbsp;</p>
<p><strong><span style="font-size: small;" size="3">Rollup 2 for Forefront Threat Management Gateway (TMG) 2010 Service Pack 2 <br /></span></strong><a href="https://support.microsoft.com/kb/2689195"><span style="font-size: small;" size="3">https://support.microsoft.com/kb/2689195</span></a></p>
<p><br />&nbsp;</p>
<p>&nbsp;<span style="font-size: small;" size="3">More information will be provided as it comes available.&nbsp; Thank you for your patience in this matter. </span></p>]]></content:encoded>
    </item>
    <item>
      <title>Moving from Eval to RTM: The steps you need to take in any TMG environment.</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/moving-from-eval-to-rtm-the-steps-you-need-to-take-in-any-tmg-environment</link>
      <pubDate>Thu, 10 May 2012 07:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2012/05/10/moving-from-eval-to-rtm-the-steps-you-need-to-take-in-any-tmg-environment/</guid>
      <description><![CDATA[Hello All!&nbsp; It&rsquo;s Brett Crane from the Forefront Edge team here at Microsoft....]]></description>
      <content:encoded><![CDATA[<p>Hello All!&nbsp; It&rsquo;s Brett Crane from the Forefront Edge team here at Microsoft. &nbsp;I&rsquo;ve noticed there have been a few questions regarding documentation on the best way to go from an Evaluation Version of TMG to the RTM version. &nbsp;I thought I would take a few moments to cover some scenarios in upgrading between the two products in the case they may be in a production environment.</p>
<p><i><span style="font-size: x-small;" size="2"><br />* Please keep in mind that I am not suggesting that we recommend putting an Evaluation version of the TMG product into production environments. It is actually the exact opposite. It is meant for testing purposes only.</span> </i></p>
<p><br />So all that said let&rsquo;s assume that there&rsquo;s a configuration of TMG that is an Evaluation version that you would like to keep up and running.&nbsp; &ldquo;<i>What! Keep up and running!</i> &ldquo;&nbsp;&nbsp; Yes&hellip; the Evaluation versions are time bombed.&nbsp; You will see issues in running the firewall service once you have passed your Evaluation time period. &nbsp;So, let&rsquo;s talk about how you can minimize downtime and get these servers back up in an supportable RTM configuration.</p>
<p><br />What needs to be done?&nbsp; Well, first you need to ask yourself:</p>
<p><i><br />&ldquo;What type of configuration am I in?&nbsp; Is it a Stand-alone server?&nbsp; Is it a Stand-alone Array with 2 or more Firewall nodes?&nbsp; Or is it an Enterprise Array with 2 or more Firewall nodes?&rdquo; <br /></i></p>
<p><br />Based on your answer just choose one of the following quick and easy steps:</p>
<p>&nbsp;<br />&nbsp;</p>
<p><b><span style="text-decoration: underline;"><span style="font-size: medium;" size="4">Stand-alone Server:</span></span></b></p>
<p>This process is simple enough. &nbsp;You have to reinstall the product, that isn&rsquo;t a question.&nbsp; You can&rsquo;t just go out and purchase the product codes and put them in, so expect an install is going to be needed.&nbsp; Here are the steps for a single server:</p>
<p>&nbsp;</p>
<p>1. Export your server configuration (Make sure to include the confidential information as well as the user permission settings).</p>
<p>2. Uninstall the TMG product from the server by going into Programs and Features, highlighting Microsoft Forefront Threat Management Gateway, and choosing Uninstall.</p>
<p>3. Install Threat Management Gateway utilizing the RTM bits you have purchased.</p>
<p>4. Import your configuration you saved from step 1 above.</p>
<p><i><span style="font-size: x-small;" size="2">* Please keep in mind that you haven&rsquo;t changed anything on the server itself. You haven&rsquo;t removed any NICs, changed IP addresses, uninstalled certificates, etc. You have just uninstalled the TMG product and reinstalled it.</span> </i></p>
<p></p>
<p><br />&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p></p>
<p><b><span style="text-decoration: underline;"><span style="font-size: medium;" size="4">Stand-alone Array with 2 or more Firewall nodes:</span></span></b></p>
<p>Seeing that this is an actual Array configuration (even though not an enterprise array utilizing a separate EMS), you&rsquo;ll notice a big difference in the steps below versus the steps above. &nbsp;What&rsquo;s nice is the steps I provide should keep you up and running as long as you are using NLB for load balancing purposes. &nbsp;For this example I will be using 2 nodes in an array.<b><span style="text-decoration: underline;"></span></b></p>
<p>&nbsp;</p>
<p>1. Start by exporting a full configuration of your Array for backup purposes in case any problems occur.</p>
<p>2. Determine which Node is your Array Manager.&nbsp; This is important because you will need to begin all the work on the Firewall Node that is <em>NOT</em> the Array Manager.&nbsp; To determine which of the two servers is your Array Manager just open your TMG MMC, highlight system on the left, then scroll over to the far right on your Servers tab located in the middle of your MMC.&nbsp; You&rsquo;ll see one server says &ldquo;Array Manager&rdquo; and the other says &ldquo;Array Managed&rdquo;.</p>
<p>3. Notate the version numbers that your servers are at.</p>
<p><i><span style="font-size: x-small;" size="2">* This is very important because you will need to make sure you install the proper updates to bring them back up to match. If you don&rsquo;t have them at the same patch level you will see issues when you try to join back to the Array.</span> </i></p>
<p><br />4. From the Managed Server, highlight the Array name on the left side of the MMC and choose &ldquo;Disjoin Server From Array&rdquo; on the far right.</p>
<p>5. Once the server is fully disjoined from the Array go ahead and uninstall the TMG product from the server by going into Programs and Features, highlighting Microsoft Forefront Threat Management Gateway, and choosing Uninstall.</p>
<p>6. Install Threat Management Gateway utilizing the RTM bits you have purchased.&nbsp; Once the product has been reinstalled make sure to install all the needed updates to bring it to the same version as the current Array Manager.</p>
<p>7. Once the server is back up highlight &ldquo;Forefront TMG (Server_ name) on left side of the MMC and choose &ldquo;Join Array&rdquo; from the far right.&nbsp; Point to the Array Managers name.</p>
<p>8. Once you have fully joined back to the Array you will notice that all your rules and configurations have been pulled back over to your new RTM TMG server and everything should begin working again.</p>
<p>9. On the new RTM TMG server you just joined, highlight the Array on the left. In the Tasks tab on the far right choose &ldquo;Set as Array Manager&rdquo;.&nbsp; This will make this new server take control of the Array Manager process from the Evaluation server that is still running.</p>
<p>10. Go over to the remaining Evaluation server and highlight the Array on the left side of the MMC and then choose &ldquo;Disjoin Server From Array&rdquo; on the right.</p>
<p>11. Once the server is fully disjoined from the Array go ahead and uninstall the TMG product from the server by going into Programs and Features, highlighting Microsoft Forefront Threat Management Gateway, and choosing Uninstall.</p>
<p>12. Install Threat Management Gateway utilizing the RTM bits you have purchased.&nbsp; Once the product has been reinstalled make sure to install all the needed updates to bring it to the same version as the current Array Manager.</p>
<p>13. Once the server is back up highlight &ldquo;Forefront TMG (Server_ name) on left side of the MMC and choose &ldquo;Join Array&rdquo; from the far right.&nbsp; Point to the new Array Managers name. &nbsp;This will cause the server to join the Array and pull down all the needed configurations.&nbsp;</p>
<p><br />&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;</p>
<p></p>
<p><b><span style="text-decoration: underline;"><span style="font-size: medium;" size="4">Enterprise Array with 2 or more Firewall nodes:</span></span></b></p>
<p>Believe it or not this is actually the easiest of the three different configurations.&nbsp; The thing is&hellip; you don&rsquo;t have to worry about updating your EMS (Enterprise Management Server) to RTM, just your firewall nodes.</p>
<p>&nbsp;</p>
<p>1. Start by exporting a full configuration of your Array for backup purposes in case any problems occur.</p>
<p>2. Notate the version numbers that your servers are at.</p>
<p><i><span style="font-size: x-small;" size="2">* This is very important because you will need to make sure you install the proper updates to bring them back up to match. If you don&rsquo;t have them at the same patch level you will see issues when you try to join back to the Array.</span> </i></p>
<p><br />3. Choose the firewall node that you want to start your update to RTM on.&nbsp; There is not a specific node that should go first.</p>
<p>4. From the server you chose in step 3&hellip; highlight the Array on the left side of the MMC and then choose &ldquo;Disjoin Server From Array&rdquo; from the far right.</p>
<p>5. Once the server is fully disjoined from the Array go ahead and uninstall the TMG product from the server by going into Programs and Features, highlighting Microsoft Forefront Threat Management Gateway, and choosing Uninstall.</p>
<p>6. Install Threat Management Gateway utilizing the RTM bits you have purchased.&nbsp; Once the product has been reinstalled make sure to install all the needed updates to bring it to the same version as the current Array Manager.</p>
<p>7. Once the server is back up highlight &ldquo;Forefront TMG (Server_ name) on left side of the MMC and choose &ldquo;Join Array&rdquo; from the far right.&nbsp; You will be joining an EMS managed Array so you will need to point to the name of your existing EMS.&nbsp; This will cause the server to join the Array and pull down all the needed configurations.</p>
<p>8. Once this server is back up and functioning as expected go to the second Firewall node that is still utilizing Evaluation bits and go through steps 4, 5, 6, and 7 just above.</p>
<p>&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p>So&hellip; at this point you should be up and running with RTM bits!&nbsp; I hope the information I provided above helps out!&nbsp; Keep in mind, <b>ALWAYS GET BACKUPS PRIOR TO ANY WORK! </b>&nbsp;By backups I am referring to System State and TMG configuration backups (or exports).&nbsp; If you run into any issues going from Eval to RTM know that there are support processes that can help. &nbsp;In any case, you may still want to make sure this is all done in a maintenance window.&nbsp; No need to cause an outage if something goes wrong!</p>]]></content:encoded>
    </item>
    <item>
      <title>Problem with Bidirectional Affinity When Web Publishing with TMG SP1 Rollup 4 and Below</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/problem-with-bidirectional-affinity-when-web-publishing-with-tmg-sp1-rollup-4-and-below</link>
      <pubDate>Thu, 08 Dec 2011 12:23:02 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2011/12/08/problem-with-bidirectional-affinity-when-web-publishing-with-tmg-sp1-rollup-4-and-below/</guid>
      <description><![CDATA[&#160;  Hello all!&#160; It’s me, Brett Crane, from the Security teams.&#160; I worked a really...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Hello all!&#160; It’s me, Brett Crane, from the Security teams.&#160; I worked a really interesting issue with one of my customers recently and wanted to point out our findings and how to fix or work around the issue…</p>  <p><b></b></p>  <p><b><font size="3">Problem:</font></b></p>  <p>We found that when we have a 2 node TMG Array <i>(running Service Pack 1, Update 1 Rollup 4 and below)</i> with NLB enabled on both the internal and external interfaces, Session Affinity doesn’t seem to be working properly. The peculiarity here is that the load balancing affinity issue is only seen when utilizing Web Publishing Rules. When server Publishing rules are utilized everything works fine.</p>  <p>When running NLB on both the internal and external interfaces of TMG we utilize what is termed as bidirectional affinity. Basically, bidirectional affinity enables NLB-enabled firewall arrays to support complex protocols requiring secondary connections and ensures that secondary connections are routed through the same firewall through which the initial client request was made. This prevents connections from being routed to an array member that has no knowledge of the initial connection. This is the piece that was being seen as a suspect from the start. </p>  <p><b></b></p>  <p><b><font size="3">Data Analysis:</font> </b></p>  <p>TMG utilizes NLB Hook Rules to make decisions on whether it will use the source IP address or destination IP address as affinity. Based on this we immediately checked our NLB Hook\Hash rules that TMG creates (or should create) when we created the Web Publishing rule pointing at the Internal Web Server.</p>  <p><font size="1"><i></i></font></p>  <p><font size="1"><i>* To check your Hook rules on your TMG server you will run the following command from an elevated command prompt: </i><strong><i>netsh tmg show nlb</i></strong><i> </i><i> </i></font></p>  <p><i><font size="1">** for more information on troubleshooting NLB review the following KB article: </font></i><a href="https://technet.microsoft.com/en-us/library/ff849728.aspx"><i><font size="1"><strong>https://technet.microsoft.com/en-us/library/ff849728.aspx</strong></font></i></a><i></i></p>  <p><i></i></p>  <p>In our test we created a Web Publishing rule and pointing to a single web server named Web.domain-01.com (The external name of the site is different though. It is External.com). The servers LAN IP address was 10.61.221.99. This is a clipping of the rule tested with:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/5518.clip_image002_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/5518.clip_5F00_image002_5F00_2.jpg"><img style="display: inline; background-image: none;" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/6675.clip_image002_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/6675.clip_5F00_image002_5F00_thumb.jpg" width="277" height="331" /></a></p>  <p>&#160;</p>  <p>This is what we saw when we ran the Netsh command using the “find” command to see only the IP address of that server:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/0410.clip_image003_2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/0410.clip_5F00_image003_5F00_2.png"><img style="display: inline; background-image: none;" title="clip_image003" border="0" alt="clip_image003" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/0081.clip_image003_thumb.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/0081.clip_5F00_image003_5F00_thumb.png" width="516" height="41" /></a></p>  <p>&#160;</p>  <p>It can’t find and hook rules created for that IP Address!</p>  <p>We deleted the Web Publishing rule and created a Server Publishing rule for the HTTP protocol and pointed the “To” tab to the same IP address:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/8322.clip_image004_2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/8322.clip_5F00_image004_5F00_2.png"><img style="display: inline; background-image: none;" title="clip_image004" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/3036.clip_image004_thumb.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/3036.clip_5F00_image004_5F00_thumb.png" width="283" height="311" /></a></p>  <p>&#160;</p>  <p>We then ran the same Netsh command. This time we saw a much better return:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/8233.clip_image006_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/8233.clip_5F00_image006_5F00_2.jpg"><img style="display: inline; background-image: none;" title="clip_image006" border="0" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/1563.clip_image006_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/1563.clip_5F00_image006_5F00_thumb.jpg" width="467" height="428" /></a></p>  <p>&#160;</p>  <p>So at this point we see what looks to be a problem! We tested the Web Server rule with an internal Web Farm as well (versus the single internal server) and saw similar issues to where Hook rules were not being created.</p>  <p><b></b></p>  <p><b></b></p>  <p><b></b></p>  <p><b><font size="3">Conclusion:</font></b></p>  <p>Through further testing and internal debugging of the product we were able see that we actually have multiple issues going on here. It turns out that the code behind the Web Publishing to a single server and Web Publishing to a Backend server farm behave differently and fall under separate issues. The Web Publishing to a single server is actually fixed in a hotfix that was added to Service Pack 2 for TMG. So if you see this problem when publishing a single server all you need to do is update to Service Pack 2.</p>  <p><i></i></p>  <p><i>“Well what was the problem?” </i> you ask… </p>  <p>&#160;</p>  <p>What is actually happening is all based off the highlighted area below:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/6366.clip_image008_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/6366.clip_5F00_image008_5F00_2.jpg"><img style="display: inline; background-image: none;" title="clip_image008" border="0" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/1376.clip_image008_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/1376.clip_5F00_image008_5F00_thumb.jpg" width="310" height="373" /></a><i> </i></p>  <p>&#160;</p>  <p>The hook rules are created based off name resolution. The name in the<i> Published site</i> area is not able to be resolved via DNS internally therefore no Hook rule is created. But, when the name isn’t resolved it should default to the administratively entered IP address just below it and create the hook rule. This is not done properly prior to Service Pack 2.</p>  <p><i></i></p>  <p><i><font size="1">* For more information on the single server issue you can refer to the following TechNet article:</font></i></p>  <p><b><i><font size="1">FIX: Network Load Balancing hook rules are not created correctly when the name on the To tab of the Web Publishing rule does not resolve to a published web server in Forefront Threat Management Gateway 2010</font></i></b></p>  <p><a href="https://support.microsoft.com/kb/2591269"><b><i><font size="1">https://support.microsoft.com/kb/2591269</font></i></b></a></p>  <p><b></b></p>  <p><i>“Can we work around this? We can’t install SP2 at this time.”</i></p>  <p>&#160;</p>  <p>The answer to this question is yes but it is preferred that you updated to SP2. The workaround to this would be to create a <i>hosts</i> file on your TMG server that resolves <i>External.com</i> to 10.61.221.99. You would then have to recreate the rule.</p>  <p>I mentioned above that publishing to a backend server farm and letting TMG manage your farm instead of a 3<sup>rd</sup> Party Load Balancing device is different than single server publishing. Due to those differences installing SP2 will not resolve your issue. You will know you are configured in this manner if you look in your rule and see the following tab:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/0003.clip_image009_2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/0003.clip_5F00_image009_5F00_2.png"><img style="display: inline; background-image: none;" title="clip_image009" border="0" alt="clip_image009" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/5684.clip_image009_thumb.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/5684.clip_5F00_image009_5F00_thumb.png" width="317" height="380" /></a></p>  <p>&#160;</p>  <p>This has been determined to be a problem and will be fixed in future versions of the product. At the time the only method of getting the bidirectional affinity hook rules in place is to utilize the following workaround:</p>  <p>Open the <i>“hosts”</i> file in notepad utilizing an elevated command prompt on the TMG Array nodes <i>(C:\Windows\System32\drivers\etc)</i>. You will want to create an entry for the IP address of each of the servers you listed in your Web Farm in TMG In the <i>hosts </i>file. Those IP Addresses will resolve to the name listed in the rules <i>“Internal site name:</i>” setting (This would look very similar to a DNS Round Robin type of entry in DNS). Here is an example based on our rule above. We are pointing to 2 internal servers:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/3036.clip_image011_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/3036.clip_5F00_image011_5F00_2.jpg"><img style="display: inline; background-image: none;" title="clip_image011" border="0" alt="clip_image011" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/8726.clip_image011_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/8726.clip_5F00_image011_5F00_thumb.jpg" width="506" height="349" /></a></p>  <p>&#160;</p>  <p>After saving the hosts file you will want to delete and recreate your Web Publishing rule. This will cause it to create the NLB hooks needed to have bidirectional affinity work properly therefore resolving your issue!</p>  <p>&#160;</p>  <p>I hope this information helps you out!</p>]]></content:encoded>
    </item>
    <item>
      <title>L2TP VPN issues when utilizing TMG as your RRAS server and NLB is configured on your external Interfaces</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/l2tp-vpn-issues-when-utilizing-tmg-as-your-rras-server-and-nlb-is-configured-on-your-external-interfaces</link>
      <pubDate>Tue, 06 Dec 2011 06:48:40 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2011/12/06/l2tp-vpn-issues-when-utilizing-tmg-as-your-rras-server-and-nlb-is-configured-on-your-external-interfaces/</guid>
      <description><![CDATA[Hello All! It’s Brett Crane from the Forefront Edge team here at Microsoft. I wanted to take a few...]]></description>
      <content:encoded><![CDATA[<p>Hello All! It’s Brett Crane from the Forefront Edge team here at Microsoft. I wanted to take a few moments to talk about an issue you may see in your RRAS environment if you are utilizing NLB to load balance your External Interfaces of your TMG Array and you’re using an IPSec based Method.</p>  <p>Here is a problem statement you may be facing:</p>  <p><i></i></p>  <p><i>     <br />“My VPN clients are failing to connect to my environment when utilizing L2TP and connecting to the Virtual IP of the Array. If I connect to the physical IP of either of the nodes it connects without issue. PPTP and SSTP work but for some reason L2TP doesn’t. I am positive I have it setup right. What could be wrong with TMG or RRAS?”</i></p>  <p>   <br />Well, I will start by saying that if you are seeing this you may have already pulled out all your hair! There’s nothing in the event logs what-so-ever pointing to an issue of any kind! As well… when you do live tracing in TMG to see why the VPN connection is failing everything seems to be working fine. Where do you start looking for data???</p>  <p>Based on the issue I’m covering I’ve found that Network Monitor is a very useful tool to help troubleshoot LT2P/IPSec related issues. In addition, if you have a TMG Array with Integrated NLB enabled on the External Network, I’d suggest that you install Network Monitor on all nodes of the array as you may not be sure which node will handle the L2TP/IPSec traffic in question.</p>  <p><i><font size="2">* You can download the most recent version of Network Monitor from the following location: </font></i><a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=4865"><i><font size="2">https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=4865</font></i></a><i><font size="2"> </font></i></p>  <p>Once Network Monitor is installed and running, go ahead and reproduce the L2TP VPN client connection issue. Once you have reproduced your issue stop your tracing and apply the following Display Filter: <b><i>IKE or ESP</i></b>. This will cause Network Monitor to show you IPSec related data. </p>  <p>Looking through the trace you will see the following behaviors…</p>  <p>&#160;</p>  <p>The client tries to setup an IPSec Tunnel with the RRAS\TMG Server’s Virtual IP Address <em>(Keep in mind that the Microsoft L2TP protocol utilizes IPSec as an underlying security protocol)</em>. The first part of the IPSec process is what we call Main Mode. As you can see below this works fine:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/1067.clip_image002_70BD9830.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/1067.clip_5F00_image002_5F00_70BD9830.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/3124.clip_image002_thumb_16B34887.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/3124.clip_5F00_image002_5F00_thumb_5F00_16B34887.jpg" width="600" height="160" /></a></p>  <p>The next thing we see is that the Quick Mode Process works without issue. Quick mode is the second part of the communication process the IKE protocol utilizes to setup an IPSec Tunnel:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/3124.clip_image004_4E858CAA.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/3124.clip_5F00_image004_5F00_4E858CAA.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/8308.clip_image004_thumb_096CBF74.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/8308.clip_5F00_image004_5F00_thumb_5F00_096CBF74.jpg" width="600" height="185" /></a></p>  <p>Once Main Mode and Quick Mode have completed we will now have an IPSec tunnel created and the client will communicate through that tunnel utilizing the <b><i>ESP</i></b> protocol:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/2626.clip_image006_01751D12.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/2626.clip_5F00_image006_5F00_01751D12.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/3515.clip_image006_thumb_39B3942A.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/3515.clip_5F00_image006_5F00_thumb_5F00_39B3942A.jpg" width="600" height="188" /></a></p>  <p>Now comes the odd part. Instead of the Server returning ESP communications to the Client, as it should, it tries to open a new tunnel up to the client. It does this via a new Main Mode connection over the physical IP Address on the External interface of the RRAS\TMG server instead of the Virtual IP. The client would not have a policy to support this process therefore it silently drops the requests and retransmits the ESP data it sent before. Each time the server receives the ESP data it tries to send out a Main Mode request. The behavior can be seen below:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/8308.clip_image008_38DB2E40.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/8308.clip_5F00_image008_5F00_38DB2E40.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image008" border="0" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/78/metablogapi/2438.clip_image008_thumb_49DF5C23.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-78-metablogapi/2438.clip_5F00_image008_5F00_thumb_5F00_49DF5C23.jpg" width="605" height="242" /></a></p>  <p><b><i></i></b></p>  <p><b><i></i></b></p>  <p><b><i></i></b></p>  <p><b><i>So the question is… </i></b></p>  <p><i>“Why does the server try to create a new tunnel out to the client over the Physical IP while there is already a tunnel established over the Virtual IP address?”</i></p>  <p><b><i></i></b></p>  <p><b><i></i></b></p>  <p><b><i>Answer…</i></b></p>  <p>The problem is that the server is not selecting the correct IPSec Security Association (SA) when trying to communicate back. Therefore it tries to create a new one. The only way the server sees to connect up to the clients IP Address is by sending the data out of its Default Gateway which is associated with its Physical IP Address\NIC.</p>  <p><b><i></i></b></p>  <p><b><i></i></b></p>  <p><b><i>How do I resolve this… </i></b></p>  <p>This is a known issue in the Server 2008 R2 operating system. To resolve this issue all you need to do is connect to the Microsoft TechNet article below and choose the <b>“<i>View and request hotfix downloads”</i> </b>Link in the upper Left corner.</p>  <p><b>You cannot establish an IPsec tunnel to a computer that is running Windows 7 or Windows Server 2008 R2 through a NAT device</b></p>  <p><a href="https://support.microsoft.com/default.aspx?scid=kb;EN-US;2523881">https://support.microsoft.com/default.aspx?scid=kb;EN-US;2523881</a></p>  <p><i><font size="2">* Again… keep in mind that the data in the article only refers to IPSec and you are using L2TP. That’s perfectly ok. That’s because L2TP uses IPSec as its means of creating a secure tunnel. As well, the information covered in the article also covers NAT-T configurations. That is only 1 scenario that was found. The fix actually covers multiple scenarios although not listed.</font> </i></p>  <p>Thank you for your time in reading this post. I hope it helps you out!</p>]]></content:encoded>
    </item>
    <item>
      <title>Welcome to my ISA/TMG/UAG Blog</title>
      <link>https://docs.microsoft.com/archive/blogs/brettcr/welcome-to-my-isatmguag-blog</link>
      <pubDate>Tue, 06 Dec 2011 06:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Brettcr]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brettcr/2011/12/06/welcome-to-my-isatmguag-blog/</guid>
      <description><![CDATA[My name is Brett Crane and I work for Microsoft as a Senior Support Escalation Engineer for the...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">My name is Brett Crane and I work for Microsoft as a Senior Support Escalation Engineer for the Security team.&nbsp; Prior to moving to the Security team I was a Support Escalation Engineer for the Network Teams and specialized in Remote Desktop Gateway Services.&nbsp; The products I currently support are Internet Security and Acceleration Server (ISA) , Forefront Threat Management Gateway (TMG), and Forefront Unified Access Gateway (UAG).&nbsp; In Security we like to refer to these as our "Edge" products since they usually sit on the edge of a company's network.&nbsp; In the coming months I will be posting blogs that I hope will be useful to those that configure and support our Edge products.</span></p>]]></content:encoded>
    </item>
  </channel>
</rss>