<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6696977109054687352</id><updated>2026-11-05T13:20:15.835-06:00</updated><category term="Network Administration"/><category term="Windows Server"/><category term="ICT"/><category term="UW-Stout"/><category term="Network Security"/><category term="DPM"/><category term="PKI"/><category term="Juniper"/><category term="PowerShell"/><category term="Routing"/><category term="VPN"/><category term="Windows"/><category term="RDP"/><category term="Active Directory"/><category term="Books; Essays; Prose"/><category term="Exchange 2010"/><category term="Firewall"/><category term="Life"/><category term="WiFi"/><category term="APC"/><category term="Courses"/><category term="Hyper-V"/><category term="MDM"/><category term="Network Monitoring"/><category term="Office"/><category term="UPS"/><category term="Switching"/><category term="BranchCache"/><category term="Lync"/><category term="CISCO"/><category term="Risk Management"/><category term="SQL 2012"/><category term="Windows 8"/><category term="DFS"/><category term="Outlook 2013"/><category term="Role Based Management"/><category term="WSUS"/><category term="Windows 2012"/><category term="802.1X"/><category term="BGP"/><category term="HTPC"/><category term="Humor"/><category term="ICT Ethics"/><category term="IKEv2"/><category term="Mikrotik"/><category term="NTP"/><category term="Skype for Business"/><category term="StartSSL"/><category term="Trapeze"/><category term="WLC"/><category term="APC. Network"/><category term="Android"/><category term="Aruba"/><category term="BGP Routing"/><category term="BYOD"/><category term="Bash"/><category term="CentOS"/><category term="Diffusion"/><category term="Gadgets"/><category term="Governance"/><category term="IIS"/><category term="IPv6"/><category term="IaC"/><category term="IoT"/><category term="MT"/><category term="Managed Service Accounts"/><category term="Microsoft"/><category term="Microsoft Failover Cluster"/><category term="Monitoring"/><category term="NLB"/><category term="NMC"/><category term="NPS"/><category term="Program Competencies"/><category term="Radius"/><category term="SRX"/><category term="SSH"/><category term="Samsung Galaxy"/><category term="SideSync"/><category term="Snowboard"/><category term="Sunburst"/><category term="Terminal"/><category term="Travel Security"/><category term="Virtual Smart Cards"/><category term="WAN"/><category term="Yubikey"/><title type='text'>Steven M. Jordan</title><subtitle type='html'>Information and Communication Technology Portfolio</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>197</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-1748285722909861491</id><published>2026-11-01T12:34:28.262-06:00</published><updated>2026-11-01T12:56:15.070-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="802.1X"/><category scheme="http://www.blogger.com/atom/ns#" term="Aruba"/><category scheme="http://www.blogger.com/atom/ns#" term="WiFi"/><title type='text'>ArubaOS Mobility Lab</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAGGyBOAXNtqpBb3Q-UB2vk0bGRLK-Ar8X1SECqSXZYMZsq4iM1Xtiyw_eUtXcI9QGk2YErbw4TfVa9oBW24WDNbgpG4C9gobtAZKMTPwDK0ai0Lk0sQgnYyCkjKR8-LS1rkImkegijrLQ_zT27MqnUjiwr5FymmGO25LP_Unbl_n_m3rQDNqzjHiMpdrF/s447/Aruba.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;447&quot; data-original-width=&quot;447&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAGGyBOAXNtqpBb3Q-UB2vk0bGRLK-Ar8X1SECqSXZYMZsq4iM1Xtiyw_eUtXcI9QGk2YErbw4TfVa9oBW24WDNbgpG4C9gobtAZKMTPwDK0ai0Lk0sQgnYyCkjKR8-LS1rkImkegijrLQ_zT27MqnUjiwr5FymmGO25LP_Unbl_n_m3rQDNqzjHiMpdrF/w200-h200/Aruba.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;Abstract&lt;/h4&gt;&lt;p&gt;&lt;em&gt;First day impressions with Aruba Mobility Conductor.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I spent the day standing up an ArubaOS 8 lab. I’d never touched the platform before. The goal wasn’t to become fluent in their CLI (very similar to Cisco IOS, btw).&amp;nbsp; It was an exercise to understand the architecture and compare it to familiar technology.&amp;nbsp;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Limitations&lt;/h4&gt;&lt;div&gt;&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;The lab had no Aruba licenses. Nevertheless, the Conductor successfully registered the vMC, established an authenticated IKEv2/IPsec connection, and delivered configuration to the managed controller.&amp;nbsp; License limitations prevented testing Wi-Fi client associations.&lt;/p&gt;&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;This lab skips any GUI.&amp;nbsp; Straight up configuration and validation.&lt;/p&gt;&lt;/div&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;Lab Roles&lt;/h4&gt;&lt;p&gt;The Conductor manages configuration, while the controller handles wireless network operations. Aruba&#39;s AOS 8 documentation confirms that division.&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;MM: Mobility Master / Mobility Conductor&lt;/b&gt;&lt;/h4&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGh0WoGvQtUGYq5UIHzJp_sXwq4mCzVRePT1WfYWype7fAqIXX7aE6NNMS9ynJxtiTFxbpTkNYW9WSt_moJfHs9piUM393yV_lF7mKDSgzlEoNelj3MYp7JuvucjTVkv6HuE6VuESzy2xlFcFe12CbYyOwdJWCvKi8c3Ej-CLMlOgAc-Qlr8flpRrWYRh5/s1600/image.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img data-original-height=&quot;1172&quot; data-original-width=&quot;1992&quot; height=&quot;118&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGh0WoGvQtUGYq5UIHzJp_sXwq4mCzVRePT1WfYWype7fAqIXX7aE6NNMS9ynJxtiTFxbpTkNYW9WSt_moJfHs9piUM393yV_lF7mKDSgzlEoNelj3MYp7JuvucjTVkv6HuE6VuESzy2xlFcFe12CbYyOwdJWCvKi8c3Ej-CLMlOgAc-Qlr8flpRrWYRh5/w200-h118/image.png&quot; title=&quot;MM: Aruba Mobility Conductor&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;This is the management and orchestration brain.&lt;/div&gt;N.B., Aruba renamed Mobility Master to Mobility Conductor.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;It owns configuration hierarchy, distributes configuration to managed controllers, and provides centralized management and licensing.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;b&gt;vMC: Virtual Mobility Controller&lt;/b&gt;&lt;/h4&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmQwyNMyhCKgMUH0ugCjU211kDNp1q5RAL4ywgivcjUHuLK5y13Wu4ECgNH9uB_xWK4h236mBnXzFW55mOMfdNxrchkL4I-mRAok6vwJLxFwN6W3PxSr-KEnLI3O3KetGdY4nTDZcIho5PZdqyA-MyT-eZPT49S10KfkHTfzguBUkvXKIoUjvSU6qohpOl/s1600/image.png&quot; style=&quot;clear: left; display: inline; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;753&quot; data-original-width=&quot;1024&quot; height=&quot;147&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmQwyNMyhCKgMUH0ugCjU211kDNp1q5RAL4ywgivcjUHuLK5y13Wu4ECgNH9uB_xWK4h236mBnXzFW55mOMfdNxrchkL4I-mRAok6vwJLxFwN6W3PxSr-KEnLI3O3KetGdY4nTDZcIho5PZdqyA-MyT-eZPT49S10KfkHTfzguBUkvXKIoUjvSU6qohpOl/w200-h147/image.png&quot; title=&quot;Aruba vMC: Virtual Mobility Controller&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The managed controller terminates AP tunnels, applies wireless security and user policies, and forwards client traffic.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;b&gt;CHR: MikroTik Cloud Hosted Router&lt;/b&gt;&lt;/h4&gt;&lt;div style=&quot;font-weight: bold; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJjir28uIbOT57ywzq7KHZSv2hbzj1-B7ByWwSptxF4dkd3mo_VU8gthBQLs8hDUbPwd6g5JLhcj5x1x5en6xzvFqFN_HI57mObfFgmxy9sH0uQsTN3vWcmKe6cAvA8aPCwCVM0XmmIjrM6EGe1sx-q6MKJ-LImsotA27-KW60zi7zULS_JTc9PxmQodXT/s1600/image.png&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img data-original-height=&quot;531&quot; data-original-width=&quot;739&quot; height=&quot;144&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJjir28uIbOT57ywzq7KHZSv2hbzj1-B7ByWwSptxF4dkd3mo_VU8gthBQLs8hDUbPwd6g5JLhcj5x1x5en6xzvFqFN_HI57mObfFgmxy9sH0uQsTN3vWcmKe6cAvA8aPCwCVM0XmmIjrM6EGe1sx-q6MKJ-LImsotA27-KW60zi7zULS_JTc9PxmQodXT/w200-h144/image.png&quot; title=&quot;CHR: MikroTik Cloud Hosted Router&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;This is our independent switching and routing infrastructure.&lt;/div&gt;&lt;div&gt;It provides gateways, VLAN routing, firewall rules, and traffic inspection.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It also allows us to test network reachability without relying on Aruba&#39;s wireless licensing.&lt;/div&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;p&gt;&lt;i&gt;Table 2&lt;br /&gt;Lab Nodes, interfaces, VLANs, and IPs&lt;/i&gt;&lt;/p&gt;

&lt;table style=&quot;border-collapse: collapse; margin-bottom: 0.5em; width: 100%;&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;border-bottom: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);&quot;&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Node&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Interface&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;VLAN&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;IP Address&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Purpose&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;MM&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;GE 0/0/0&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;20&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;10.10.10.2/24&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;Aruba Control-Plane&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;MM&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;mgmt&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;Untagged&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;172.16.42.65/24&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;OOB management&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;vMC&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;GE 0/0/0&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;20&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;10.10.10.3/24&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: small;&quot;&gt;Aruba Control-Plane&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;vMC&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;mgmt&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;Untagged&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: small;&quot;&gt;172.16.42.66/24&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;OOB management&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;CHR&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;ether3_aruba&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;110, 120, 130&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;NA&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;Mobility trunk&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;CHR&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;vlan110&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;110&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;10.110.0.1/24&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;Corporate WLAN gateway&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;CHR&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;vlan120&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;120&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;10.120.0.1/24&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;Guest WLAN gateway&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr style=&quot;border-bottom: 1px solid rgb(0, 0, 0);&quot;&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;CHR&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;vlan130&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;130&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;10.130.0.1/24&lt;/span&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;span style=&quot;font-family: courier; font-size: x-small;&quot;&gt;IoT WLAN gateway&lt;/span&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p style=&quot;font-size: 0.9em; margin-top: 0.25em;&quot;&gt;&lt;em&gt;Note.&lt;/em&gt; The conductor and controller communicate over VLAN 20. Dedicated management interfaces connect separately to the management network. The CHR provides Layer 3 gateways for the corporate, guest, and IoT wireless VLANs.&lt;/p&gt;

&lt;h4&gt;Registration and the trust relationship&lt;/h4&gt;

&lt;p&gt;Registration between the MM and vMC initially failed.&amp;nbsp; The process required matching IPsec pre-shared keys from the &lt;code&gt;/mm&lt;/code&gt; context:&lt;/p&gt;

&lt;pre&gt;&lt;blockquote style=&quot;border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;&quot;&gt;cd /mm&lt;br /&gt;configure terminal&lt;br /&gt;localip 10.10.10.3 ipsec &amp;lt;matching-PSK&amp;gt;&lt;br /&gt;write memory&lt;/blockquote&gt;&lt;/pre&gt;

&lt;p&gt;After that, the IKEv2/IPsec SAs came up and the Conductor accepted the vMC as a managed device.&amp;nbsp;&lt;/p&gt;

&lt;h4&gt;Aruba Structure&lt;/h4&gt;

&lt;p&gt;The Mobility Conductor holds a hierarchy of system nodes, groups, and individual device nodes.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Configuration inheritance flows downward through the hierarchy, from the root node to its child nodes. Each child inherits its parent&#39;s configuration while allowing more specific settings or overrides at the group or individual device level.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Table 2.&lt;br /&gt;&lt;/i&gt;&lt;i&gt;Configuration Inheritance&lt;/i&gt;&lt;/p&gt;&lt;table style=&quot;border-collapse: collapse; margin-bottom: 1em; width: 100%;&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;border-bottom: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);&quot;&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Configuration location&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Scope&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Global configuration&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;/md&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;All managed devices&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;/md/LAB&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;LAB group-specific devices&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;/md/LAB/00:15:5d:e7:09:1d&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Individual vMC configuration&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr style=&quot;border-bottom: 1px solid rgb(0, 0, 0);&quot;&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;&lt;code&gt;/mm/mynode&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Mobility Conductor-specific configuration&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
  
  &lt;h4&gt;Mobility Conductor-specific&amp;nbsp;&lt;/h4&gt;&lt;p&gt;&lt;code&gt;&lt;span style=&quot;font-family: trebuchet;&quot;&gt;We can define all nodes from the root.&amp;nbsp; But we can also create exceptions at the group or device level. Note everything is overridable.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;configure terminal&lt;/code&gt; applies to whatever node you’re currently in. Change &lt;span style=&quot;font-family: inherit;&quot;&gt;the &lt;/span&gt;node first and the same command lands in a different scope. &lt;span style=&quot;font-family: inherit;&quot;&gt;Configuration &lt;/span&gt;defined at &lt;code&gt;/md/LAB&lt;/code&gt; is inherited by devices beneath it.&amp;nbsp; The device node itself can create some exceptions at the group or device level.&lt;/p&gt;

&lt;p&gt;That inheritance model is native. It is not something you have to assemble from modules the way you do in Terraform or OpenTofu. &lt;a href=&quot;https://www.stevenjordan.net/2025/10/Iac-Monkey-Business.html&quot;&gt;IaC methodology&lt;/a&gt;&amp;nbsp;can provide similar results&amp;nbsp;through explicit references, but Aruba builds the hierarchy into the system.&lt;/p&gt;

&lt;h4&gt;Composition Rules&lt;/h4&gt;

&lt;p&gt;Inheritance decides &lt;em&gt;where&lt;/em&gt; the configuration belongs in the hierarchy. Composition decides &lt;em&gt;how&lt;/em&gt;&amp;nbsp;wireless objects are configured.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I configured composition rules for each SSID. Its configuration was &lt;i&gt;composed &lt;/i&gt;into separate profiles.&amp;nbsp; The AP group references a Virtual AP, which in turn references the SSID and AAA objects:&lt;/p&gt;

&lt;pre&gt;CORP-AP-GRP
    └── CORP-VAP
         ├── CORP-SSID (WPA2-PSK-AES)
         ├── CORP-AAA (authentication-dot1x default)
         └── VLAN 110&lt;/pre&gt;

&lt;p&gt;Note, two dependency issues: It rejected WPA2-PSK-AES mode until a pre-shared key was added. It also rejected the SSID profile until its AAA profile included an 802.1X profile (even though the SSID used PSK).&lt;/p&gt;

&lt;p&gt;After the commit, we validate that the group-defined profiles resolved into the vMC’s configuration:&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;show configuration effective&lt;/span&gt;&lt;p&gt;That confirmed inheritance. It did not prove the running controller had fully applied the change.&lt;/p&gt;

&lt;h4&gt;Mapping similar technology&lt;/h4&gt;

&lt;p&gt;The Conductor hierarchy and the wireless object model had a familiar feel to similar technology.&lt;/p&gt;

&lt;table style=&quot;border-collapse: collapse; margin-bottom: 1em; width: 100%;&quot;&gt;
  &lt;thead&gt;
    &lt;tr style=&quot;border-bottom: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);&quot;&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Concept&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;ArubaOS 8&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Terraform / OpenTofu&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;MikroTik CAPsMAN&lt;/th&gt;
      &lt;th style=&quot;font-weight: bold; padding: 6px 8px; text-align: left;&quot;&gt;Juniper WLC&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Central management&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Mobility Conductor&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;GIT Repository&lt;br /&gt;&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;CAPsMAN controller&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;WLC or Ringmaster&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Shared configuration&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Config groups&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Shared modules&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Profiles&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Profiles&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Devices&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Device nodes&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Device and/or root modules&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Managed CAPs&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Managed APs&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Reusable objects&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;SSID, AAA, VAP profiles&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Modules and resources&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Security, channel, datapath profiles&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;SSID, security, and radio profiles&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Configuration inheritance&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Parent-to-child nodes&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Explicit module composition and variables&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Profile assignment/ provisioning&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Profile assignments&amp;nbsp;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr style=&quot;border-bottom: 1px solid rgb(0, 0, 0);&quot;&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Deployment&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Conductor to controller&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Orchestration scripts&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Provision APs&lt;/td&gt;
      &lt;td style=&quot;padding: 4px 8px;&quot;&gt;Provision APs&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Aruba’s hierarchy is native. Terraform and OpenTofu give you the framework to build something similar, but you have to supply the structure yourself. Juniper’s WLC and CAPsMAN sit closer to the operational side of the comparison.&amp;nbsp; Both push wireless configuration to APs.&amp;nbsp; Both lean hard on policy and templates over configuration inheritance.&lt;/p&gt;

&lt;h4&gt;The Next Lab&lt;/h4&gt;&lt;p&gt;The next step would expand the lab beyond wireless management and explore Aruba&#39;s broader architecture.&lt;/p&gt;&lt;p&gt;I&#39;d introduce a second managed gateway on a separate routed network, to examine remote-site connectivity, VPN concentration, and SD-WAN path selection.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&#39;d also like to integrate Aruba ClearPass Policy Manager to explore their centralized authentication, role-based access control, and dynamic policy enforcement through RADIUS and 802.1X.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Finally, I&#39;d like to compare the AOS 8 architecture with AOS 10 and Aruba Central. The goal would be to understand the architecture, operational benefits, and tradeoffs.&lt;/p&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/1748285722909861491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/11/arubaos-mobility-lab.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1748285722909861491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1748285722909861491'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/11/arubaos-mobility-lab.html' title='ArubaOS Mobility Lab'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAGGyBOAXNtqpBb3Q-UB2vk0bGRLK-Ar8X1SECqSXZYMZsq4iM1Xtiyw_eUtXcI9QGk2YErbw4TfVa9oBW24WDNbgpG4C9gobtAZKMTPwDK0ai0Lk0sQgnYyCkjKR8-LS1rkImkegijrLQ_zT27MqnUjiwr5FymmGO25LP_Unbl_n_m3rQDNqzjHiMpdrF/s72-w200-h200-c/Aruba.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-8307177812281110432</id><published>2026-10-12T16:46:22.119-05:00</published><updated>2026-10-21T15:39:37.174-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Humor"/><category scheme="http://www.blogger.com/atom/ns#" term="ICT"/><title type='text'>What Amazon Thinks I Do</title><content type='html'>&lt;p&gt;Can I use this as a professional reference? 🤣&lt;/p&gt;&lt;blockquote style=&quot;border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi50e7ufREJOaW6v73FCctCY89O1CNGobqIbITO5bo5BlTJ9YhY5BRNrYOs0i_8nG5VIFWoedBSSzzot-xAn4ET9EftU5daQNxVeEN3cN560yAFcL3Bg9h5S3gRJICb_gQmVDLSaBz0Ej632Nuf-xbCzF7SPKcXQcEzFNpW3oZL-tyqYB0mx0N0gbYs_y1l/s1216/amazon_profile.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1216&quot; data-original-width=&quot;651&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi50e7ufREJOaW6v73FCctCY89O1CNGobqIbITO5bo5BlTJ9YhY5BRNrYOs0i_8nG5VIFWoedBSSzzot-xAn4ET9EftU5daQNxVeEN3cN560yAFcL3Bg9h5S3gRJICb_gQmVDLSaBz0Ej632Nuf-xbCzF7SPKcXQcEzFNpW3oZL-tyqYB0mx0N0gbYs_y1l/w107-h200/amazon_profile.png&quot; width=&quot;107&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;clear: both; text-align: left;&quot;&gt;Amazon&#39;s AI Assessment:&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Interests &amp;amp; Hobbies:&amp;nbsp; Frequently reads books about IT management, operations, and security.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Home &amp;amp; Family:&amp;nbsp; Likely works as IT infrastructure expert.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Brands: Specializes in Mikrotik Enterprise networks.&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;Brands: Specializes in Cisco networks.&lt;/li&gt;&lt;li&gt;Brands: Specializes in Juniper networks.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/8307177812281110432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/10/what-amazon-thinks-i-do.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8307177812281110432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8307177812281110432'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/10/what-amazon-thinks-i-do.html' title='What Amazon Thinks I Do'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi50e7ufREJOaW6v73FCctCY89O1CNGobqIbITO5bo5BlTJ9YhY5BRNrYOs0i_8nG5VIFWoedBSSzzot-xAn4ET9EftU5daQNxVeEN3cN560yAFcL3Bg9h5S3gRJICb_gQmVDLSaBz0Ej632Nuf-xbCzF7SPKcXQcEzFNpW3oZL-tyqYB0mx0N0gbYs_y1l/s72-w107-h200-c/amazon_profile.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-2313885000157119791</id><published>2026-10-08T15:52:14.431-05:00</published><updated>2026-10-23T20:08:57.605-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="Mikrotik"/><category scheme="http://www.blogger.com/atom/ns#" term="Routing"/><title type='text'>Rolling out IPv6 on AT&amp;T </title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8TF7qHTKrjdVWtkO2pkbrCrNNfY53TXhUbWo2r-CWEvSvmxwlEXQpezny1wL5bwBHfwNjT6J7JQd9QvsMoepP40jhQtsp3oaItQCZUzDLtQ8q2-vpvRIBJOcgygpo0YxR7SZQMHcML9Y9nI8CcI0RB_UycLbBXCJxA8Z6oL2PGxKmUsA-qpqfpfQSnx0P/s694/MK_RED.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;288&quot; data-original-width=&quot;694&quot; height=&quot;83&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8TF7qHTKrjdVWtkO2pkbrCrNNfY53TXhUbWo2r-CWEvSvmxwlEXQpezny1wL5bwBHfwNjT6J7JQd9QvsMoepP40jhQtsp3oaItQCZUzDLtQ8q2-vpvRIBJOcgygpo0YxR7SZQMHcML9Y9nI8CcI0RB_UycLbBXCJxA8Z6oL2PGxKmUsA-qpqfpfQSnx0P/w200-h83/MK_RED.jpg&quot; title=&quot;AT&amp;amp;T IPv6&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4&gt;Abstract&lt;/h4&gt;

&lt;p&gt;Wrangling IPv6 on AT&amp;amp;T. Deployment tips for Prefix Delegation, Router Advertisements, Neighbor Discovery, and stateful firewalling.&lt;/p&gt;

&lt;h4&gt;The Low-Down&lt;/h4&gt;

&lt;p&gt;This post walks through IPv6 for AT&amp;amp;T Internet (a non-SLA service behind an AT&amp;amp;T residential gateway). Unlike Spectrum, which hands out a generous /56, AT&amp;amp;T delegates a single /64. Yep. One measly /64. Needlessly small, but we can work with it.&lt;/p&gt;

&lt;p&gt;Goal is isolated IPv6 connectivity for a single Windows test VM, with the MikroTik handling the prefix and the firewall keeping the rest of the world out.&lt;/p&gt;

&lt;h4&gt;Network Topology&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;ISP: AT&amp;amp;T Business Internet (non-SLA)&lt;/li&gt;
&lt;li&gt;Upstream Edge: AT&amp;amp;T Residential Gateway (RG)&lt;/li&gt;
&lt;li&gt;Core Router: MikroTik CCR2004-16G-2S+ (RouterOS 7.20)&lt;/li&gt;
&lt;li&gt;CCR WAN Interface: ether1_untrust&lt;/li&gt;
&lt;li&gt;CCR LAN Bridge: bridge_ipv6&lt;/li&gt;
&lt;li&gt;CCR Physical Port: ether16_ipv6&lt;/li&gt;
&lt;li&gt;Hypervisor: Microsoft Hyper-V host running a Windows VM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This example works for any RouterOS hardware. ether16_ipv6 is assigned to bridge_ipv6 and patches directly into a dedicated Hyper-V virtual switch isolated from hypervisor management.&lt;/p&gt;

&lt;p&gt;Note: IPv4 IP passthrough does not affect IPv6. The AT&amp;amp;T gateway handles IPv6 routing and prefix delegation independent of IPv4. You cannot bypass its IPv6 stack entirely.&lt;/p&gt;

&lt;h4&gt;Requesting the Prefix&lt;/h4&gt;

&lt;p&gt;Configure the IPv6 client to request a prefix on the WAN interface:&lt;/p&gt;

&lt;pre&gt;/ipv6 dhcp-client
add interface=ether1_untrust \
    request=prefix \
    pool-name=att_pd \
    pool-prefix-length=64 \
    add-default-route=yes \
    accept-prefix-without-address=yes&lt;/pre&gt;

&lt;p&gt;Breakdown:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;request=prefix — Requests DHCPv6 Prefix Delegation (IA_PD).&lt;/li&gt;
&lt;li&gt;pool-name=att_pd — Creates a dynamic IPv6 pool named att_pd.&lt;/li&gt;
&lt;li&gt;pool-prefix-length=64 — Controls the subnet size RouterOS carves out of the pool for downstream interfaces (not the size the ISP gives you).&lt;/li&gt;
&lt;li&gt;accept-prefix-without-address=yes — Accepts a delegated prefix even if AT&amp;amp;T does not hand out an IA_NA address on the WAN.&lt;/li&gt;
&lt;li&gt;add-default-route=yes — Installs an IPv6 default route via the DHCPv6 client.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verify the binding:&lt;/p&gt;

&lt;pre&gt;/ipv6 dhcp-client print detail&lt;/pre&gt;

&lt;p&gt;Expected output:&lt;/p&gt;

&lt;pre&gt;interface=ether1_untrust status=bound dhcp-server-v6=fe80::3aa0:67ff:fe81:d662
request=prefix pool-name=att_pd pool-prefix-length=64
prefix=2600:1700:1335:452f::/64&lt;/pre&gt;

&lt;p&gt;A /64 is the smallest routable subnet, so options are limited: DHCPv6 server, SLAAC, or Unique Local Addresses if you need to route beyond this single segment. ULAs are not used in this lab.&lt;/p&gt;

&lt;h4&gt;Assign the PD to the LAN Bridge&lt;/h4&gt;

&lt;p&gt;Bind the /64 to the bridge so it stays current if the ISP renumbers:&lt;/p&gt;

&lt;pre&gt;/ipv6 address
add interface=bridge_ipv6 \
    from-pool=att_pd \
    advertise=yes&lt;/pre&gt;

&lt;p&gt;Verify:&lt;/p&gt;

&lt;pre&gt;/ipv6 address print&lt;/pre&gt;

&lt;pre&gt;2600:1700:1335:452f::/64 FROM-POOL=att_pd INTERFACE=bridge_ipv6 ADVERTISE=yes&lt;/pre&gt;

&lt;p&gt;RouterOS shows the network address by default for pool assignments. If you want to ping the router itself (for example ::1), explicitly bind that ID:&lt;/p&gt;

&lt;pre&gt;/ipv6 address add interface=bridge_ipv6 from-pool=att_pd eui-64=::1&lt;/pre&gt;

&lt;p&gt;Dynamic and static in one.&lt;/p&gt;

&lt;h4&gt;Router Advertisements and SLAAC&lt;/h4&gt;

&lt;p&gt;Unlike IPv4, IPv6 clients can auto-configure with SLAAC. The router advertises the prefix via Neighbor Discovery and the clients build their own addresses.&lt;/p&gt;

&lt;pre&gt;/ipv6 nd
add interface=bridge_ipv6 \
    advertise-dns=yes \
    managed-address-configuration=no \
    other-configuration=no&lt;/pre&gt;

&lt;p&gt;Check existing ND settings first (&lt;code&gt;/ipv6 nd print detail&lt;/code&gt;). RouterOS includes a default *all entry. Make sure you are not advertising back out ether1_untrust toward the AT&amp;amp;T gateway.&lt;/p&gt;

&lt;p&gt;Windows natively supports DNS from RAs. Point RDNSS at your preferred resolvers:&lt;/p&gt;

&lt;pre&gt;/ipv6 nd
set [find where interface=bridge_ipv6] \
    dns=2001:4860:4860::8888,2001:4860:4860::8844 \
    advertise-dns=yes&lt;/pre&gt;

&lt;p&gt;Not every device supports RDNSS. Android and Xbox often need dual-stack and fall back to IPv4 DNS. Plan accordingly.&lt;/p&gt;

&lt;h4&gt;Neighbor Discovery Quick Refresher&lt;/h4&gt;

&lt;p&gt;IPv4 finds neighbors with broadcasts (ARP). IPv6 uses multicast and ICMPv6 Neighbor Discovery.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Router Discovery (Types 133/134): Client multicasts a Router Solicitation to ff02::2. Router replies with a Router Advertisement containing default routes, MTU, lifetimes, and prefixes.&lt;/li&gt;
&lt;li&gt;Address Resolution (Types 135/136): Replaces ARP. Uses Neighbor Solicitations to a solicited-node multicast address derived from the target IP. Far less noise than broadcast ARP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CCR handles WAN-side NDP to the AT&amp;amp;T gateway automatically over link-local addresses (fe80::/10). No static neighbor entries needed on the WAN.&lt;/p&gt;

&lt;h4&gt;Hardening IPv6&lt;/h4&gt;

&lt;p&gt;Global addresses expose devices directly to the Internet. Stateful firewall rules on the WAN are required.&lt;/p&gt;

&lt;p&gt;Input chain (protect the router):&lt;/p&gt;

&lt;pre&gt;/ipv6 firewall filter
add chain=input action=accept connection-state=established,related comment=&quot;Accept established/related&quot;
add chain=input action=drop connection-state=invalid comment=&quot;Drop invalid&quot;
add chain=input action=accept protocol=icmpv6 comment=&quot;Accept essential ICMPv6&quot;
add chain=input action=accept in-interface=ether1_untrust protocol=udp src-port=547 dst-port=546 comment=&quot;Allow DHCPv6 reply from RG&quot;
add chain=input action=accept in-interface-list=trust comment=&quot;Allow trusted management&quot;
add chain=input action=drop in-interface=ether1_untrust comment=&quot;Drop all other unsolicited WAN input&quot;&lt;/pre&gt;

&lt;p&gt;Forward chain (protect the LAN):&lt;/p&gt;

&lt;pre&gt;/ipv6 firewall filter
add chain=forward action=accept connection-state=established,related comment=&quot;Accept established/related&quot;
add chain=forward action=drop connection-state=invalid comment=&quot;Drop invalid&quot;
add chain=forward action=accept protocol=icmpv6 comment=&quot;Allow ICMPv6 pass-through&quot;
add chain=forward action=accept in-interface=bridge_ipv6 out-interface=ether1_untrust comment=&quot;Allow test LAN outbound&quot;
add chain=forward action=drop in-interface=ether1_untrust out-interface=bridge_ipv6 comment=&quot;Block unsolicited WAN to LAN&quot;&lt;/pre&gt;

&lt;p&gt;Do not drop link-local traffic on the WAN. This rule looks tempting and breaks everything:&lt;/p&gt;

&lt;pre&gt;# DO NOT USE
/ipv6 firewall raw
add chain=prerouting action=drop in-interface=ether1_untrust src-address=fe80::/10&lt;/pre&gt;

&lt;p&gt;Legitimate control traffic (RAs, Neighbor Discovery, DHCPv6-PD) relies on fe80::/10 sources. Dropping it collapses the protocol between the WAN interface and the AT&amp;amp;T gateway.&lt;/p&gt;

&lt;h4&gt;Validate&lt;/h4&gt;

&lt;p&gt;From the Windows test VM:&lt;/p&gt;

&lt;pre&gt;ipconfig /all&lt;/pre&gt;

&lt;p&gt;Look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Valid fe80:: link-local address&lt;/li&gt;
&lt;li&gt;Valid global address matching the AT&amp;amp;T /64&lt;/li&gt;
&lt;li&gt;Default gateway set to the MikroTik’s link-local address&lt;/li&gt;
&lt;li&gt;RDNSS DNS resolvers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quick checks:&lt;/p&gt;

&lt;pre&gt;ping -6 2001:4860:4860::8888
nslookup google.com 2001:4860:4860::8888
tracert -6 2001:4860:4860::8888&lt;/pre&gt;

&lt;p&gt;Don’t panic if tracert shows asterisks. Many transit routers deprioritize or drop ICMPv6 Time Exceeded while still forwarding traffic at line rate.&lt;/p&gt;

&lt;h4&gt;Troubleshooting&lt;/h4&gt;

&lt;p&gt;During testing I hit an intermittent failure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The test VM could ping the local bridge and the AT&amp;amp;T RG’s internal interface.&lt;/li&gt;
&lt;li&gt;Outbound packets left ether1_untrust.&lt;/li&gt;
&lt;li&gt;Public IPv6 traffic died. Replies never came back.&lt;/li&gt;
&lt;li&gt;Opening the firewall completely did not fix it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fix was simple: renew the DHCPv6 client.&lt;/p&gt;

&lt;pre&gt;/ipv6 dhcp-client renew 0&lt;/pre&gt;

&lt;p&gt;RouterOS re-bound to the same prefix and the AT&amp;amp;T gateway immediately started forwarding again. Short-term workaround is to schedule that renew every few hours. Long-term is getting AT&amp;amp;T to look at the residential gateway.&lt;/p&gt;

&lt;p&gt;This points to stale routing or NDP state inside the AT&amp;amp;T box. It kept the DHCPv6 lease but dropped the dynamic route or neighbor entry until a fresh exchange forced an update.&lt;/p&gt;

&lt;p&gt;Two client tweaks worth testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use-interface-duid=yes — Builds the DUID from the WAN interface MAC instead of the router-wide base DUID.&lt;/li&gt;
&lt;li&gt;allow-reconfigure=yes — Accepts server-initiated reconfigure requests so the upstream gateway can trigger a renewal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Summary&lt;/h4&gt;

&lt;p&gt;IPv6 on RouterOS 7 behind AT&amp;amp;T works once the control plane is sorted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DHCPv6-PD brings the prefix from the ISP; SLAAC hands addresses to clients via RAs.&lt;/li&gt;
&lt;li&gt;Build explicit stateful filters on input and forward. Never drop fe80::/10 on the WAN.&lt;/li&gt;
&lt;li&gt;Dynamic GUAs from the pool keep the LAN current if the prefix changes.&lt;/li&gt;
&lt;li&gt;Watch the upstream gateway. A simple DHCPv6 renew clears the occasional stuck state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s all folks.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/2313885000157119791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/10/routeros-ipv6-for-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/2313885000157119791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/2313885000157119791'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/10/routeros-ipv6-for-at.html' title='Rolling out IPv6 on AT&amp;T '/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8TF7qHTKrjdVWtkO2pkbrCrNNfY53TXhUbWo2r-CWEvSvmxwlEXQpezny1wL5bwBHfwNjT6J7JQd9QvsMoepP40jhQtsp3oaItQCZUzDLtQ8q2-vpvRIBJOcgygpo0YxR7SZQMHcML9Y9nI8CcI0RB_UycLbBXCJxA8Z6oL2PGxKmUsA-qpqfpfQSnx0P/s72-w200-h83-c/MK_RED.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-3661943551268044179</id><published>2026-10-07T10:43:00.548-05:00</published><updated>2026-10-13T22:28:48.859-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="Network Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Routing"/><title type='text'>Mobile Mikrotik IKEv2 VPN</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX1WQhUqrmZ7rAFTPa6-bJz7QyEmJc7-ljigzoNx4WzvbYMILqD9A0x66CRzePOceR7mKusmHtfdZ6XaaSajVzdUJ28IVzHHCEoGOibo8COI79f0spiB1hsHRnErnFj08lrIIu2H_UN2qmUaP92mYYmFOWJ7QJnb6xZxzFN_nhRWskfBYMd79LmZlmlHFb/s694/MK_RED.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;288&quot; data-original-width=&quot;694&quot; height=&quot;83&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX1WQhUqrmZ7rAFTPa6-bJz7QyEmJc7-ljigzoNx4WzvbYMILqD9A0x66CRzePOceR7mKusmHtfdZ6XaaSajVzdUJ28IVzHHCEoGOibo8COI79f0spiB1hsHRnErnFj08lrIIu2H_UN2qmUaP92mYYmFOWJ7QJnb6xZxzFN_nhRWskfBYMd79LmZlmlHFb/w200-h83/MK_RED.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 style=&quot;margin-bottom: 1em; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Goal&lt;/span&gt;&lt;/h4&gt;

&lt;p&gt;
Configure a MikroTik router as an IKEv2 VPN server for mobile and remote clients, including Windows, Android, and Apple iOS/iPadOS.
&lt;/p&gt;

&lt;p&gt;
Clients authenticate using X.509 certificates and receive an address from a dedicated VPN address pool.
&lt;/p&gt;

&lt;h4 style=&quot;margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;
Why IKEv2?
&lt;/span&gt;&lt;/h4&gt;

&lt;p&gt;
IKEv2 provides a standards-based IPsec VPN that is well suited to mobile clients. It is supported natively by Windows and Apple operating systems and is widely supported by Android VPN clients.
&lt;/p&gt;

&lt;p&gt;
Compared with older VPN protocols, IKEv2 provides strong cryptography, certificate-based authentication, NAT traversal, and reliable reconnection when a mobile device changes networks.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.15em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Configuration Overview
&lt;/h4&gt;

&lt;p&gt;
The configuration consists of four basic components:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Certificates:&lt;/strong&gt; Create a Certificate Authority, server certificate, and client certificates.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Client addressing:&lt;/strong&gt; Create an IP pool and configure DNS and routing information supplied through IKEv2 Mode Config.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;IPsec:&lt;/strong&gt; Configure the IKEv2 profile, proposal, peer, identity, and policy template.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Firewall and NAT:&lt;/strong&gt; Permit IKEv2/IPsec negotiation and control what authenticated VPN clients may access.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 style=&quot;font-size: 1.35em; margin-bottom: 0.75em; margin-top: 2em;&quot;&gt;
Step 1: Certificates
&lt;/h3&gt;

&lt;p&gt;
IKEv2 certificate authentication requires three certificate types:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Certificate Authority (CA)&lt;/li&gt;
  &lt;li&gt;IKEv2 server certificate&lt;/li&gt;
  &lt;li&gt;IKEv2 client certificate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The CA signs both the server and client certificates, establishing the chain of trust used during IKEv2 authentication.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Create the Certificate Authority
&lt;/h4&gt;

&lt;p&gt;
Create the CA certificate that will sign the server and client certificates.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/certificate&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add name=Domain_CA common-name=Domain_CA key-usage=key-cert-sign,crl-sign&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Configure the Certificate Revocation List
&lt;/h4&gt;

&lt;p&gt;
Specify the public address from which the Certificate Revocation List can be retrieved.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/certificate&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;set Domain_CA ca-crl-host=8.x.x.x&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
Use the router&#39;s public IP address or a DNS name reachable by VPN clients.
&lt;/p&gt;

&lt;p&gt;
The CRL location is published through the CA certificate. It does not need to be configured separately on the server or client certificates.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Sign the Certificate Authority
&lt;/h4&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/certificate&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;sign Domain_CA&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Create the IKEv2 Server Certificate
&lt;/h4&gt;

&lt;p&gt;
Create a certificate identifying the VPN server and sign it with &lt;code&gt;Domain_CA&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
The server certificate should contain the VPN server&#39;s DNS name in both the Common Name and Subject Alternative Name.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;CN: ikev2.example.com&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;SAN: DNS:ikev2.example.com&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
The certificate should include the &lt;code&gt;tls-server&lt;/code&gt; key usage. After creating it, sign it with &lt;code&gt;Domain_CA&lt;/code&gt; and mark the CA and server certificates as trusted.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Create Client Certificates
&lt;/h4&gt;

&lt;p&gt;
Create an individual certificate for each VPN client or user.
&lt;/p&gt;

&lt;p&gt;
For maximum client compatibility, use the same identity in the Common Name and Subject Alternative Name.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;CN: steven&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;SAN: DNS:steven&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
The certificate should include the &lt;code&gt;tls-client&lt;/code&gt; key usage.
&lt;/p&gt;

&lt;p&gt;
Sign the certificate with &lt;code&gt;Domain_CA&lt;/code&gt;, mark it as trusted, and export the certificate and private key as PKCS#12 (&lt;code&gt;.p12&lt;/code&gt;) for installation on the client.
&lt;/p&gt;

&lt;p&gt;
Using individual certificates allows a single client to be revoked without affecting every other VPN user.
&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 style=&quot;font-size: 1.35em; margin-bottom: 0.75em; margin-top: 2em;&quot;&gt;
Step 2: VPN Client Address Pool
&lt;/h3&gt;

&lt;p&gt;
Dedicate a subnet or address range to remote VPN clients.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip pool&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add name=ikev2-pool ranges=10.168.88.100-10.168.88.110&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
This address space should not overlap existing LAN or remote networks.
&lt;/p&gt;

&lt;p&gt;
The pool may be shared with other remote-access VPN services when appropriate, although separate pools can simplify firewall policy and troubleshooting.
&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 style=&quot;font-size: 1.35em; margin-bottom: 0.75em; margin-top: 2em;&quot;&gt;
Step 3: Configure IPsec
&lt;/h3&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Mode Config
&lt;/h4&gt;

&lt;p&gt;
Mode Config supplies network configuration to connecting VPN clients.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec mode-config&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add name=ikev2-modecfg \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;address-pool=ikev2-pool \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;address-prefix-length=32 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;system-dns=no \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static-dns=192.168.88.10&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
The client receives an address from &lt;code&gt;ikev2-pool&lt;/code&gt;, a &lt;code&gt;/32&lt;/code&gt; client address, and &lt;code&gt;192.168.88.10&lt;/code&gt; as its DNS server.
&lt;/p&gt;

&lt;p&gt;
For a split-tunnel VPN, internal networks may also be advertised using &lt;code&gt;split-include&lt;/code&gt;.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec mode-config&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;set ikev2-modecfg split-include=192.168.88.0/24&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
Mode Config determines what routes the client is asked to install. Firewall policy still determines what the client is actually permitted to access.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Phase 1 Profile
&lt;/h4&gt;

&lt;p&gt;
The IPsec profile defines the cryptographic parameters used during IKE negotiation.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec profile&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add name=ikev2-profile \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dh-group=modp2048 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enc-algorithm=aes-256,aes-128 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hash-algorithm=sha256&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Phase 2 Proposal
&lt;/h4&gt;

&lt;p&gt;
Create a dedicated proposal for IKEv2 traffic.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec proposal&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add name=ikev2-proposal \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;auth-algorithms=sha256 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enc-algorithms=aes-256-cbc,aes-128-cbc \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pfs-group=none&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
A dedicated proposal is preferable to modifying the RouterOS default because unrelated IPsec tunnels will not inherit the remote-access VPN configuration.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Policy Group and Template
&lt;/h4&gt;

&lt;p&gt;
Create a policy group for dynamically generated IKEv2 client policies.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec policy group&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add name=ikev2-policies&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
Create the corresponding policy template.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec policy&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add group=ikev2-policies \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proposal=ikev2-proposal \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;template=yes&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
RouterOS uses this template to generate IPsec policies dynamically as clients connect.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
IKEv2 Peer
&lt;/h4&gt;

&lt;p&gt;
Create a passive IKEv2 peer that listens for incoming client connections.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec peer&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add name=ikev2-peer \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exchange-mode=ike2 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;passive=yes \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;profile=ikev2-profile \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;send-initial-contact=no&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
Because the MikroTik is acting as the VPN server, remote clients initiate the connection.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
IKEv2 Identity
&lt;/h4&gt;

&lt;p&gt;
Associate certificate authentication, Mode Config, and dynamic policy generation with the IKEv2 peer.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip ipsec identity&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add peer=ikev2-peer \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;auth-method=digital-signature \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;certificate=IKEv2_Server \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;generate-policy=port-strict \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mode-config=ikev2-modecfg \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;policy-template-group=ikev2-policies&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
The router verifies that each connecting client presents a certificate signed by a trusted CA.
&lt;/p&gt;

&lt;p&gt;
A specific &lt;code&gt;remote-certificate&lt;/code&gt; is deliberately not configured. Specifying one would bind the identity to a particular client certificate. Leaving certificate matching generic allows multiple clients signed by the trusted CA to authenticate.
&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 style=&quot;font-size: 1.35em; margin-bottom: 0.75em; margin-top: 2em;&quot;&gt;
Step 4: Firewall and NAT
&lt;/h3&gt;

&lt;p&gt;
The firewall performs two separate functions: permitting establishment of the IKEv2/IPsec tunnel and controlling what authenticated VPN clients may access after the tunnel is established.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Allow IKEv2 and IPsec
&lt;/h4&gt;

&lt;p&gt;
At minimum, the router must accept IKE and NAT Traversal from the Internet.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip firewall filter&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add chain=input action=accept protocol=udp dst-port=500,4500 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;comment=&quot;Allow IKEv2 / IPsec NAT-T&quot;&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
If native ESP must be accepted separately:
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip firewall filter&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add chain=input action=accept protocol=ipsec-esp \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;comment=&quot;Allow IPsec ESP&quot;&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
These rules must appear before the router&#39;s general WAN input-drop rule.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
Allow VPN Clients to Reach the LAN
&lt;/h4&gt;

&lt;p&gt;
Access from authenticated VPN clients into internal networks should be explicitly permitted according to policy.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip firewall filter&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add chain=forward action=accept \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;src-address=10.168.88.0/24 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dst-address=192.168.88.0/24 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ipsec-policy=in,ipsec \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;comment=&quot;IKEv2 clients to LAN&quot;&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
Traffic not specifically authorized should remain blocked by the normal firewall policy.
&lt;/p&gt;

&lt;h4 style=&quot;font-size: 1.1em; margin-bottom: 0.5em; margin-top: 1.5em;&quot;&gt;
NAT Considerations
&lt;/h4&gt;

&lt;p&gt;
Existing masquerade rules should not accidentally NAT traffic between VPN clients and internal networks.
&lt;/p&gt;

&lt;p&gt;
Where necessary, place an IPsec NAT-bypass rule before the Internet masquerade rule.
&lt;/p&gt;

&lt;div style=&quot;line-height: 1.6; margin: 0.75em 0px 1.25em 2em;&quot;&gt;
&lt;strong&gt;&lt;code&gt;/ip firewall nat&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;add chain=srcnat action=accept \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;src-address=10.168.88.0/24 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dst-address=192.168.88.0/24 \&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;comment=&quot;Do not NAT IKEv2 clients to LAN&quot;&lt;/code&gt;&lt;/strong&gt;
&lt;/div&gt;

&lt;p&gt;
The exact firewall and NAT configuration depends on whether the VPN is LAN-only split tunnel, includes multiple internal networks, or provides full-tunnel Internet access through the MikroTik.
&lt;/p&gt;

&lt;p&gt;
Mode Config provides addressing and routing information. The firewall determines authorization.&lt;br /&gt;&lt;br /&gt;That&#39;s It!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/3661943551268044179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2019/07/mikrotik-ikev2-vpn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3661943551268044179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3661943551268044179'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2019/07/mikrotik-ikev2-vpn.html' title='Mobile Mikrotik IKEv2 VPN'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX1WQhUqrmZ7rAFTPa6-bJz7QyEmJc7-ljigzoNx4WzvbYMILqD9A0x66CRzePOceR7mKusmHtfdZ6XaaSajVzdUJ28IVzHHCEoGOibo8COI79f0spiB1hsHRnErnFj08lrIIu2H_UN2qmUaP92mYYmFOWJ7QJnb6xZxzFN_nhRWskfBYMd79LmZlmlHFb/s72-w200-h83-c/MK_RED.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-2713467608110821062</id><published>2026-08-05T12:49:00.000-05:00</published><updated>2026-10-08T16:11:51.976-05:00</updated><title type='text'>NPS Extension Certificate Error</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio-mivVCpgNPzNE_F4Pm8SoILqgCW9H9gIv9kcFvfaLC7ZFOXLIykslMXBT7yC1U8szw3QTWkhkjB05u0NYwrVMJj-YeuEQ2gnsaOvzb_rdtpwde2Qso4zy-sq4UnwQCfXHkgrKFDovJjoQ3UHViP9Z0UrHd16AGf6sNP4l_2nBRKCSKr4OJ7iZ4rX1ifA/s738/AAD_logo.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;267&quot; data-original-width=&quot;738&quot; height=&quot;73&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio-mivVCpgNPzNE_F4Pm8SoILqgCW9H9gIv9kcFvfaLC7ZFOXLIykslMXBT7yC1U8szw3QTWkhkjB05u0NYwrVMJj-YeuEQ2gnsaOvzb_rdtpwde2Qso4zy-sq4UnwQCfXHkgrKFDovJjoQ3UHViP9Z0UrHd16AGf6sNP4l_2nBRKCSKr4OJ7iZ4rX1ifA/w200-h73/AAD_logo.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #444444;&quot;&gt;NPS Azure AD Extension Certificate Renewal&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;
The NPS Azure AD Extension creates a self-signed certificate that’s only valid for two years. 
If you forget to renew it, authentication will eventually start failing when that certificate expires.&lt;/p&gt;

&lt;h4&gt;Renewal&lt;/h4&gt;

&lt;p&gt;
Renewing the certificate is simple. Just rerun the Azure MFA NPS Extension configuration script:
&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;C:\Program Files\Microsoft\AzureMfa\Config\AzureMfaNpsExtnConfigSetup.ps1&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;
This will generate a new certificate and update the extension to use it.
&lt;/p&gt;

&lt;h4&gt;PowerShell Error&lt;/h4&gt;

&lt;p&gt;
When you run the script, you might see an error like:
&lt;/p&gt;

&lt;blockquote&gt;
The package source &lt;code&gt;https://www.powershellgallery.com/api/v2&lt;/code&gt; is not reachable or resolved.
&lt;/blockquote&gt;

&lt;p&gt;
This usually means PowerShell isn’t using a modern TLS version when it tries to connect to the PowerShell Gallery.
&lt;/p&gt;

&lt;h4&gt;Fix&lt;/h4&gt;

&lt;p&gt;
Windows Server 2016, 2019, and newer support TLS 1.2, but PowerShell may still default to older protocols, 
depending on .NET and cryptography settings.
&lt;/p&gt;

&lt;p&gt;
The quickest fix is to force TLS 1.2 in your PowerShell session and then rerun the script:
&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;
Once TLS 1.2 is enabled, the script can reach the PowerShell Gallery and the NPS Azure AD Extension certificate 
is renewed without further issues.
&lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/2713467608110821062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2023/06/nps-extension-certificate-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/2713467608110821062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/2713467608110821062'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2023/06/nps-extension-certificate-error.html' title='NPS Extension Certificate Error'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio-mivVCpgNPzNE_F4Pm8SoILqgCW9H9gIv9kcFvfaLC7ZFOXLIykslMXBT7yC1U8szw3QTWkhkjB05u0NYwrVMJj-YeuEQ2gnsaOvzb_rdtpwde2Qso4zy-sq4UnwQCfXHkgrKFDovJjoQ3UHViP9Z0UrHd16AGf6sNP4l_2nBRKCSKr4OJ7iZ4rX1ifA/s72-w200-h73-c/AAD_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-5982045231993487048</id><published>2026-07-11T22:11:00.000-05:00</published><updated>2026-10-23T17:33:50.446-05:00</updated><title type='text'>IaC: What, Me Cluster?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEione77itRgeczgkKzQMFbjdeghL1mymCGftkaSK3SkZtOgq8c_4gEzp8O7yEJ8qITyO7meplpx92JZHNMjahCb0rOdZlvYe-LOd6xj5e4SGDpuugxhQF4V-27ObGFuXczl4aWvuUas_q_TSmL6VVrYfSIv_6GKc7vXrusmRRQ4oKdoJy4JWxHOZvW19AM7/s1050/fork-release.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;648&quot; data-original-width=&quot;1050&quot; height=&quot;123&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEione77itRgeczgkKzQMFbjdeghL1mymCGftkaSK3SkZtOgq8c_4gEzp8O7yEJ8qITyO7meplpx92JZHNMjahCb0rOdZlvYe-LOd6xj5e4SGDpuugxhQF4V-27ObGFuXczl4aWvuUas_q_TSmL6VVrYfSIv_6GKc7vXrusmRRQ4oKdoJy4JWxHOZvW19AM7/w200-h123/fork-release.png&quot; title=&quot;SRX Cluster Alternative: BGP &amp;amp; IaC&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4&gt;&lt;br /&gt;&lt;/h4&gt;&lt;h4&gt;Abstract&lt;/h4&gt;

&lt;p&gt;Decoupling the SRX cluster.&amp;nbsp; Replacing Juniper SRX chassis clusters with standalone nodes and declarative Infrastructure as Code (IaC).&amp;nbsp; &amp;nbsp;&lt;/p&gt;

&lt;h4&gt;The Low-Down&lt;/h4&gt;

&lt;p&gt;High-availability firewall design was supposed to be simple: take two identical SRXs and cluster them together. A Juniper cluster ties two nodes together with a control and fabric link. It provides one management plane and a stateful failover.&amp;nbsp;&lt;/p&gt;&lt;p&gt;It looks darn good on paper. For example, its ISSU was sold as a system that never goes down during patching. In reality, a small hiccup can turn a simple update into a pants-on-fire split-brain event.&lt;/p&gt;

&lt;p&gt;If I could do it all over again I might have chosen a boring alternative. Ditch the cluster.&amp;nbsp; Run independent nodes and lean hard on dynamic routing and Infrastructure as Code (IaC). Let BGP (or OSPF) handle all failover. Use OpenTofu or Terraform as the external control plane so security policy stays in sync among both nodes. No shared control plane. No reth interfaces. Maintenance becomes a dream.&amp;nbsp; If one blows up during patching? So what? 🤣 The other node carries the load.&amp;nbsp; No sweat. No drama . All by design.&lt;/p&gt;

&lt;h4&gt;Standalone pair + dynamic routing&lt;/h4&gt;

&lt;p&gt;Live and die by dynamic routing. And why not? It’s time proven for over 30 years. It just works. Frankly, it’s intuitive. Traffic steering lives in the routing protocol. You want traffic to exit node0? Give it local preference 300. You want it to default out node1? Give node0 the default preference and node1 preference 300. Boom!💥&lt;/p&gt;

&lt;p&gt;Granted, you lose stateful session connection tracking during failover. But 1997 called, and they want their session-dependent apps back! Most web and cookie/token-based traffic barely notice a disruption. The next transit request arrives on the next node with a fresh binding. Nearly seamless to the end user. Perhaps a 10-second delay at most.&lt;/p&gt;

&lt;h4&gt;External control plane&lt;/h4&gt;

&lt;p&gt;That single management plane is nice... while it lasts.&amp;nbsp; But it only works for two-node clusters.&amp;nbsp; It still leaves every other firewall, router, and switch to fend for themselves. It&#39;s not rainbows and unicorns.&lt;/p&gt;

&lt;p&gt;However, there is one CLI to rule them all. Say hello to my little friend, &lt;b&gt;OpenTofu&lt;/b&gt; (i.e., Terraform).&lt;/p&gt;

&lt;p&gt;It&#39;s darn near the holy grail of management. Git for version control and an audit trail. A validation step before anything touches a node. And an orchestrator that can push the same stanza to every device you manage. You edit the security policy once. The change lands on both SRXs. The nodes are not clustered!&amp;nbsp; It&#39;s a single management pane for unlimited nodes.&amp;nbsp; 😉&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The Git repo can live wherever you prefer. A small server on an isolated management network works fine. Or you can use GitHub, Azure DevOps, or whatever cloud service you already trust. Either way the workflow is the same: branch, edit, pull request.&amp;nbsp;&lt;/p&gt;

&lt;h4&gt;A policy change in practice&lt;/h4&gt;

&lt;p&gt;Say you need to open SSH from a new jump-box subnet. You edit the HCL instead of the CLI:&lt;/p&gt;

&lt;pre&gt;variable &quot;firewalls&quot; {
  type = map(object({
    host_ip    = string
    untrust_ip = string
  }))
  default = {
    &quot;srx-node1&quot; = { host_ip = &quot;10.10.0.11&quot;, untrust_ip = &quot;203.0.113.10/30&quot; }
    &quot;srx-node2&quot; = { host_ip = &quot;10.10.0.12&quot;, untrust_ip = &quot;203.0.113.14/30&quot; }
  }
}

resource &quot;junos_security_zone&quot; &quot;trust&quot; {
  for_each         = var.firewalls
  name             = &quot;TRUST&quot;
  inbound_services = [&quot;ssh&quot;, &quot;ping&quot;]
}

resource &quot;junos_security_zone&quot; &quot;untrust&quot; {
  for_each = var.firewalls
  name     = &quot;UNTRUST&quot;
}

resource &quot;junos_security_policy&quot; &quot;mgmt_access&quot; {
  for_each  = var.firewalls
  from_zone = junos_security_zone.untrust[each.key].name
  to_zone   = junos_security_zone.trust[each.key].name

  policy {
    name                      = &quot;ALLOW-JUMPBOX&quot;
    match_source_address      = [&quot;10.250.0.0/24&quot;]
    match_destination_address = [&quot;any&quot;]
    match_application         = [&quot;junos-ssh&quot;]
    then                      = &quot;permit&quot;
  }
}
&lt;/pre&gt;

&lt;p&gt;Commit it, open a PR, and let someone else validate your work. Then:&lt;/p&gt;

&lt;pre&gt;tofu plan
&lt;/pre&gt;

&lt;p&gt;You should see the identical delta for both nodes. Only after that does the apply run. OpenTofu opens NETCONF to both boxes, commits the candidate, and finishes. Both SRXs now have the same policy. If someone later hand-edits one of them, the next plan calls it out.&lt;/p&gt;

&lt;p&gt;But wait, there’s more!&amp;nbsp;The same methodology works for the rest of the fleet. All the firewalls. All the routers. All the switches. One repo, one plan, one apply. You become the white wizard. 🤣&lt;/p&gt;

&lt;h4&gt;Benefits&lt;/h4&gt;

&lt;p&gt;Configuration drift shows up instead of hiding until something breaks. Git becomes the audit trail.&amp;nbsp; Reverting a bad change on both firewalls is a revert plus an apply. Upgrades and hardware failures no longer risk taking the whole cluster down. Failover is simple BGP logic.&amp;nbsp;&lt;/p&gt;

&lt;h4&gt;Honest limits&lt;/h4&gt;

&lt;p&gt;You traded firewall session synchronization for independence. Pure long-lived TCP flows can still break (and the immediately reestablish). Most web and cookie/token traffic barely notice.&amp;nbsp; The next request arrives on the surviving node with a fresh NAT binding.&amp;nbsp; The application session stays intact. BGP convergence takes a few seconds, not sub-second. The Junos Terraform provider covers most everything, but some features are still easier with a CLI command, a targeted NETCONF call, or an Ansible playbook. NAT and return-path symmetry still require deliberate packet flow.&lt;/p&gt;

&lt;p&gt;None of that makes the system wrong. It a trade-off: standalone hardware, routed failover, and consistent policy instead of a fragile shared control plane.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;That&#39;s all Folks!&lt;/i&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/5982045231993487048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/10/202607srx-iac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/5982045231993487048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/5982045231993487048'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/10/202607srx-iac.html' title='IaC: What, Me Cluster?'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEione77itRgeczgkKzQMFbjdeghL1mymCGftkaSK3SkZtOgq8c_4gEzp8O7yEJ8qITyO7meplpx92JZHNMjahCb0rOdZlvYe-LOd6xj5e4SGDpuugxhQF4V-27ObGFuXczl4aWvuUas_q_TSmL6VVrYfSIv_6GKc7vXrusmRRQ4oKdoJy4JWxHOZvW19AM7/s72-w200-h123-c/fork-release.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-5244457438769980870</id><published>2026-04-15T12:59:00.000-05:00</published><updated>2026-10-12T16:17:39.053-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Humor"/><category scheme="http://www.blogger.com/atom/ns#" term="ICT Ethics"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitoring"/><title type='text'>SolarWinds:  The Dark Side</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;Price Hikes:&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;End of an era.&amp;nbsp; Perfectly aligns with all the AI hype and the death of SaaS narrative.&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;Email to SolarWinds:&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;Bruh...&amp;nbsp; Was that invoice an April Fools’ joke?&lt;br /&gt;&amp;nbsp;or did you really raise our rate &lt;/span&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;300%&lt;/span&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt; and call it a discount?&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote style=&quot;margin: 0px 0px 0px 40px;&quot;&gt;&lt;blockquote style=&quot;margin: 0px 0px 0px 40px;&quot;&gt;&lt;blockquote style=&quot;margin: 0px 0px 0px 40px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitUBwrRLa8IMdETHg8s0T-JXt4LAj4WVgpxzc-TuiXhe-a8AOgY-ub_vBFF53mmh7mMx_ofH8FoPhXv7tg31l5mtgrxqFmUY9IcvbYg3liOLAZ7XybUxICGRNIvsnzuRWsSg4NQ4BhBPwr90CxHhkZNMGRALJEh4qI_Wc-tR85a-KwG0w5HEBEcsWmn5Mc/s522/solarwinds_meme.png&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitUBwrRLa8IMdETHg8s0T-JXt4LAj4WVgpxzc-TuiXhe-a8AOgY-ub_vBFF53mmh7mMx_ofH8FoPhXv7tg31l5mtgrxqFmUY9IcvbYg3liOLAZ7XybUxICGRNIvsnzuRWsSg4NQ4BhBPwr90CxHhkZNMGRALJEh4qI_Wc-tR85a-KwG0w5HEBEcsWmn5Mc/w395-h400/solarwinds_meme.png&quot; width=&quot;395&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;Last year we paid $3500 for our maintenance agreement.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;Your new invoice shows $10,681 🤣🤣🤣🤣🤣&lt;br /&gt;Is “300% is the new 3%”?&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;One Brave Reply:&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;blockquote&gt;&lt;div style=&quot;font-size: 12pt; text-align: center;&quot;&gt;Hey Steven,&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-size: 12pt;&quot;&gt;I wish it was April fools haha. &lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;We were acquired by a PE firm at the start of last year.&amp;nbsp;&lt;br /&gt;They&#39;ve made it a completely different model. &lt;br /&gt;You are not the only one this has happened to.&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;div style=&quot;font-size: 12pt; text-align: center;&quot;&gt;We were a Subscription First, before we got purchased. T&lt;span style=&quot;font-size: 12pt;&quot;&gt;hey moved to Subscription only. Which is why you are seeing that ridiculous almost out of control uplift.&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;But it is what it is. ... Thanks, and sorry Steven. Have a good day man!&lt;/span&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;My Reply:&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;&lt;div style=&quot;text-align: start;&quot;&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style=&quot;font-size: 12pt; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-size: 12pt;&quot;&gt;I appreciate the candid reply.&amp;nbsp; I hope things work out for you.&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt; text-align: start;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;font-size: 12pt; text-align: start;&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/5244457438769980870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/10/httpswww.stevenjordan.net202604Solarwinds-End-of-Era.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/5244457438769980870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/5244457438769980870'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/10/httpswww.stevenjordan.net202604Solarwinds-End-of-Era.html' title='SolarWinds:  The Dark Side'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitUBwrRLa8IMdETHg8s0T-JXt4LAj4WVgpxzc-TuiXhe-a8AOgY-ub_vBFF53mmh7mMx_ofH8FoPhXv7tg31l5mtgrxqFmUY9IcvbYg3liOLAZ7XybUxICGRNIvsnzuRWsSg4NQ4BhBPwr90CxHhkZNMGRALJEh4qI_Wc-tR85a-KwG0w5HEBEcsWmn5Mc/s72-w395-h400-c/solarwinds_meme.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-3797919572302153861</id><published>2026-04-05T14:44:00.000-05:00</published><updated>2026-10-12T14:56:57.757-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="IPv6"/><category scheme="http://www.blogger.com/atom/ns#" term="Mikrotik"/><title type='text'>Deploy Spectrum IPv6</title><content type='html'>&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAK9XPN8vXO45-RhILq5Tp4NPfxiC7nHvhFBdTJ1pMrbo9Yr22SJ25kf_79NdVDYd1CIQJxhlpUjAVA9yO4oXJk-OIBIj9qOV0GhO8dDeDNjnQCVZ-P-w_yrWUpPMxwn4hsQ7VQ-KnD19Ut2v0PPWqIooXpcHMED6Kp8sPephbdk6SOIDix77PS26QN-ey/s694/MK_RED.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;288&quot; data-original-width=&quot;694&quot; height=&quot;83&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAK9XPN8vXO45-RhILq5Tp4NPfxiC7nHvhFBdTJ1pMrbo9Yr22SJ25kf_79NdVDYd1CIQJxhlpUjAVA9yO4oXJk-OIBIj9qOV0GhO8dDeDNjnQCVZ-P-w_yrWUpPMxwn4hsQ7VQ-KnD19Ut2v0PPWqIooXpcHMED6Kp8sPephbdk6SOIDix77PS26QN-ey/w200-h83/MK_RED.jpg&quot; title=&quot;Mikrotik Solution&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;Deploying Spectrum IPv6 with MikroTik&lt;/b&gt;&lt;p&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 16px;&quot;&gt;&lt;i&gt;A practical guide to DHCPv6 Prefix Delegation, SLAAC, router advertisements, and dynamic IPv6 routing across multiple routers.&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;The Low-Down&lt;/b&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot; style=&quot;white-space: pre-wrap;&quot;&gt;Got Spectrum? Want IPv6? Want to route those prefixes? We can build that.&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;white-space: pre-wrap;&quot;&gt;Why route IPv6 prefixes on something as ordinary as a home network? Because a flat network isn&#39;t a requirement.  &lt;span style=&quot;white-space: normal;&quot;&gt;Conventional wisdom suggests we bridge a single Layer 2 network straight to the AP. That works. You can also go your own way.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;A single broadcast domain has two problems: security and noise. Cheap and beefy firewalls (hello, MikroTik) changed the math entirely. Each routed segment is its own security zone.&amp;nbsp; Policy becomes intuitive: this interface talks to that one, this zone to that zone, and everything else is a rule.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;white-space: pre-wrap;&quot;&gt;The other win is isolation. Chatty Wi-Fi clients throw broadcasts and multicast at everyone on the same domain. That noise is not stuck on the wireless side. It hits the wired LAN too. &lt;span style=&quot;white-space: normal;&quot;&gt;Ever try a wireless printer from your phone? The rest of the network &lt;i&gt;feels &lt;/i&gt;broken. Not that I would know.&lt;/span&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;🤣&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;



&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;white-space: pre-wrap;&quot;&gt;Routed segments fix that. Client isolation and private VLANs help, but they still live in one broadcast domain. Routing adds a real boundary.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Our Spectrum deployment demonstrates this architecture using two MikroTik routers:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The Primary Firewall: The Internet edge router receiving Spectrum&#39;s &lt;code&gt;/56&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Secondary AP: A downstream router receiving a &lt;code&gt;/58&lt;/code&gt; from Martha and distributing &lt;code&gt;/64&lt;/code&gt; networks to its clients.&lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The result is a routed IPv6 network with automatic prefix assignment and routing, without NAT66 or static routes for the delegated global prefixes.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;This article examines how that architecture works and why Router Advertisements, DHCPv6-PD, and Unique Local Addresses each have distinct roles.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Network topology&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Spectrum provides a dynamically delegated &lt;code&gt;/56&lt;/code&gt; IPv6 prefix.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The primary firewall receives that prefix and manages its distribution.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP receives a &lt;code&gt;/58&lt;/code&gt; from the primary firewall and uses that delegated block to assign &lt;code&gt;/64&lt;/code&gt; prefixes to its internal networks.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;&lt;b&gt;Three distinct functions:&lt;/b&gt;&lt;/p&gt;
&lt;span style=&quot;font-family: inherit; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1. Prefix delegation: Determines which router owns which IPv6 prefix.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;2. Routing: Determines where packets should be forwarded.&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; font-size: large;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;3. Host configuration: Clients acquire addresses, gateways, and DNS.&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Understanding Spectrum&#39;s /64 delegation&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Spectrum provides a /64 by default.&amp;nbsp; That&#39;s great if you have a very simple network and limited expectations.&amp;nbsp; It&#39;s bound to a single layer-2 network.&amp;nbsp; It can&#39;t be divided into further subnets for routing purposes. Not without taxing additional routing tricks.&amp;nbsp; Boo.&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;b style=&quot;font-size: 18px;&quot;&gt;Understanding Spectrum&#39;s /56 delegation&lt;/b&gt;&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Ask and you shall receive.&amp;nbsp; They delegate a &lt;code&gt;/56&lt;/code&gt; prefix through DHCPv6-PD -as long as you ask nicely!&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;For illistration, Spectrum assigns:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2001:db8:1234:5600::/56&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;&lt;b&gt;Note:&lt;/b&gt; 2001:db8::&lt;code&gt;/32&lt;/code&gt; is reserved for documentation. This is not the actual Spectrum prefix.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;A &lt;code&gt;/56&lt;/code&gt; contains 256 individual &lt;code&gt;/64&lt;/code&gt; networks.&amp;nbsp; For example:&lt;/p&gt;
&lt;/div&gt;&lt;blockquote style=&quot;border-color: currentcolor; border-image: none; border-style: none; border-width: medium; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;&quot;&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;2001:db8:1234:5600::/64&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;2001:db8:1234:5601::/64&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;2001:db8:1234:5602::/64&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;2001:db8:1234:56ff::/64&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;This provides considerably more flexibility than a single &lt;code&gt;/64&lt;/code&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Each &lt;code&gt;/64&lt;/code&gt; can be assigned to a separate routed LAN, VLAN, wireless network, or other Layer 3 segment.&amp;nbsp; A &lt;code&gt;/64&lt;/code&gt; is also SLAAC friendly.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;How many networks can we delegate?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;A &lt;code&gt;/56&lt;/code&gt; contains:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;256 × &lt;code&gt;/64&lt;/code&gt; networks&lt;/li&gt;&lt;li&gt;64 × &lt;code&gt;/58&lt;/code&gt; networks&lt;/li&gt;&lt;li&gt;16 × &lt;code&gt;/60&lt;/code&gt; networks&lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Our design delegates one &lt;code&gt;/58&lt;/code&gt; to the AP.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;That &lt;code&gt;/58&lt;/code&gt; contains 64 separate &lt;code&gt;/64&lt;/code&gt; networks.&amp;nbsp; 🤯&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The remaining address space can support other internal segments or downstream routers, provided the allocations do not overlap.&amp;nbsp; That&#39;s exactly what we want -options.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Configure prefix delegation on the primary firewall&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The edge firewall runs a DHCPv6 client on its Spectrum-facing WAN interface.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The client requests a prefix and places the delegation into a RouterOS IPv6 pool:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #660000;&quot;&gt;/ipv6 dhcp-client
add interface=&amp;lt;spectrum-wan&amp;gt; \
    request=prefix \
    pool-name=spectrum_ipv6 \
    pool-prefix-length=56 \
    add-default-route=no&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Replace &lt;spectrum-wan&gt; with the actual interface name.&lt;/spectrum-wan&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The important settings are:&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; font-size: 15px; margin: 0px 0px 12px; width: 100%;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th style=&quot;border-bottom: 1px solid rgb(204, 204, 204); padding: 6px 8px; text-align: left;&quot;&gt;Setting&lt;/th&gt;&lt;th style=&quot;border-bottom: 1px solid rgb(204, 204, 204); padding: 6px 8px; text-align: left;&quot;&gt;Function&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;&lt;code&gt;request=prefix&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;Requests IPv6 Prefix Delegation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;&lt;code&gt;pool-name=spectrum_ipv6&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;Creates a dynamic pool from Spectrum&#39;s delegation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;&lt;code&gt;pool-prefix-length=56&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;Allocates /56 networks from that pool&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;&lt;code&gt;add-default-route=no&lt;/code&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: 1px solid rgb(238, 238, 238); padding: 6px 8px;&quot;&gt;Leaves default-route discovery to Router Advertisements&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The actual Spectrum configuration uses Router Advertisements for default-route discovery.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Verify the prefix&lt;/b&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/ipv6 dhcp-client print detail
/ipv6 pool print detail&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;We expect the DHCPv6 client to report &lt;span style=&quot;color: #660000;&quot;&gt;&lt;code&gt;status=bound&lt;/code&gt; &lt;/span&gt;and a delegated prefix of length &lt;span style=&quot;color: #660000;&quot;&gt;&lt;code&gt;/56&lt;/code&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The pool should contain the dynamically delegated address space.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Why not hardcode the prefix?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Spectrum&#39;s delegation is dynamic.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Although an ISP may consistently assign the same prefix, there is no guarantee it will remain unchanged.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Hardcoding the global prefix into downstream interfaces would create additional maintenance work if Spectrum renumbers the connection.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Using a dynamic pool allows RouterOS to update the assigned global prefixes when the upstream delegation changes.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;IPv6 default routes: Router Advertisements versus DHCPv6&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;An important architectural distinction is that DHCPv6 Prefix Delegation does not inherently supply a default gateway.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;In IPv6, Router Advertisements are the standard mechanism for discovering default routers.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;On the Spectrum WAN, the edge firewall receives an RA from the upstream router.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;&lt;span style=&quot;color: #660000;&quot;&gt;The RA identifies the default router through its link-local address&lt;/span&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The resulting route conceptually resembles:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;::/0
    gateway=fe80::xxxx%&amp;lt;spectrum-wan&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The %interface notation identifies the interface associated with the link-local next hop.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;This is necessary because link-local IPv6 addresses are scoped to a particular link.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Why link-local next hops?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;IPv6 routers do not need globally routable addresses to communicate with directly connected neighbors.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;A link-local address is sufficient for forwarding traffic to the next router. This is normal behavior.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The edge firewall receives a global &lt;code&gt;/56&lt;/code&gt; through PD.&amp;nbsp; It independently learns its default route through an RA.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;&lt;span style=&quot;color: #660000;&quot;&gt;These are separate control-plane functions.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;RouterOS consideration&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;RouterOS must be configured to accept Router Advertisements to learn its IPv6 default route.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #660000;&quot;&gt;/ipv6 settings
set accept-router-advertisements=yes&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Enabling RA acceptance does not replace DHCPv6-PD.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;6. Delegating a /58 to the AP&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;This is where the architecture becomes interesting.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP is simultaneously:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A DHCPv6-PD client toward Spectrum.&lt;/li&gt;&lt;li&gt;A DHCPv6-PD server toward the AP.&lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP requests a prefix from the edge firewall.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP allocates a &lt;code&gt;/58&lt;/code&gt; from Spectrum&#39;s delegated &lt;code&gt;/56&lt;/code&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Using our documentation prefix, one possible allocation is:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Spectrum delegates:
2001:db8:1234:5600::/56

Edge firewall delegates to AP:
2001:db8:1234:5640::/58&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;That &lt;code&gt;/58&lt;/code&gt; contains the &lt;code&gt;/64&lt;/code&gt; networks beginning at 5640 through 567f.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The exact allocation is determined by the pool and client configuration.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Configure a delegation pool&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The Spectrum-facing DHCPv6 client creates the upstream dynamic pool &lt;code&gt;spectrum_ipv6&lt;/code&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;To delegate /58s, the AP must have a suitable nonoverlapping allocation mechanism that makes &lt;code&gt;/58&lt;/code&gt; prefixes available to its downstream DHCPv6 server.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;A RouterOS dynamic pool created with &lt;code&gt;pool-prefix-length=64&lt;/code&gt; is intended to allocate /64s, not /58s. The pool arrangement must therefore support the &lt;code&gt;/58&lt;/code&gt; request.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;For example, the upstream client could be configured to create &lt;code&gt;/58&lt;/code&gt; allocations:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/ipv6 dhcp-client
set [find where pool-name=spectrum_ipv6] \
    &lt;span style=&quot;color: #990000;&quot;&gt;pool-prefix-length=58&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Changing the pool prefix length on a running network can affect existing assignments.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Configure the DHCPv6 server&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The DHCPv6 server on the edge firewall serves the link towards the AP:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/ipv6 dhcp-server
add name=dhcpv6_to_ap \
    interface=&amp;lt;ap-facing-interface&amp;gt; \
    address-pool=&amp;lt;pd-pool&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The selected pool must provide the &lt;code&gt;/58&lt;/code&gt; delegations.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The server receives a prefix request from the AP, allocates the prefix, and associates that delegation with the downstream router.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;This is not the same as assigning an IPv6 address to the AP&#39;s WAN interface.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;A delegated prefix represents address space.&amp;nbsp; It is not the same an IPv6 address.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Configure the AP as a DHCPv6-PD client&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP runs a DHCPv6 client toward the edge firewall.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The client requests a prefix and places it into a local pool:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #660000;&quot;&gt;/ipv6 dhcp-client
add interface=&amp;lt;edge-uplink&amp;gt; \
    request=prefix \
    pool-name=spectrum_pool \
    pool-prefix-length=64 \
    add-default-route=no&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The &lt;code&gt;/64&lt;/code&gt; allocation size is intentional.&amp;nbsp; The AP receives a &lt;code&gt;/58&lt;/code&gt; but subdivides that prefix into /64s for its internal networks.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The hierarchy is:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Spectrum
     |
Edge Firewall /56
     |&lt;br /&gt;&lt;span&gt;Access Point &lt;/span&gt; /58
     |
Wireless Clients &lt;/code&gt;/64&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;This is routing.&amp;nbsp; It&#39;s not address translation.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Every global IPv6 address and subnet belongs to the original Spectrum &lt;code&gt;/56&lt;/code&gt;.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Assign /64 networks to internal interfaces&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP can assign &lt;code&gt;/64&lt;/code&gt; networks from its delegated pool to internal interfaces:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #660000;&quot;&gt;/ipv6 address
add interface=bridge_wifi \
    from-pool=spectrum_pool \
    advertise=yes&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;RouterOS selects an available &lt;code&gt;/64&lt;/code&gt; from the delegated pool and assigns it to &lt;code&gt;bridge_wifi&lt;/code&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The interface then advertises that prefix to wireless clients.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;What about bridge_lan?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The existing topology distinguishes between two networks:&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;&lt;b&gt;&lt;code&gt;bridge_lan&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;Receives a global /64 advertised by the edge firewall through SLAAC.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;&lt;b&gt;&lt;code&gt;bridge_wifi&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;Receives a global /64 from the AP&#39;s delegated /58.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;This is a useful distinction.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;On the&amp;nbsp;&lt;code&gt;bridge_lan&lt;/code&gt;, the AP participates as a host on the upstream link, receiving a global address through SLAAC.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;On the&amp;nbsp;&lt;code&gt;bridge_wifi&lt;/code&gt;, the AP acts as the router advertising a delegated &lt;code&gt;/64&lt;/code&gt; to downstream clients.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The two interfaces therefore have different addressing and routing.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Router Advertisements and SLAAC&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP provides Router Advertisements on the wireless bridge.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #660000;&quot;&gt;/ipv6 nd&lt;/span&gt;
&lt;span style=&quot;color: #660000;&quot;&gt;add interface=bridge_wifi \
    advertise-dns=yes \
    managed-address-configuration=no \
    other-configuration=no&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;ND advertises its /64 to clients.&amp;nbsp; Clients receiving these advertisements can automatically configure global IPv6 addresses using SLAAC.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;RAs can provide:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Default-route&lt;/li&gt;&lt;li&gt;Prefix information&lt;/li&gt;&lt;li&gt;MTU&lt;/li&gt;&lt;li&gt;Router lifetime&lt;/li&gt;&lt;li&gt;DNS resolvers through RDNSS&lt;/li&gt;&lt;/ul&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;DHCPv6 IA_NA and SLAAC&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The design also incorporates DHCPv6 IA_NA service on &lt;code&gt;bridge_wifi&lt;/code&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Note the distinction between PD, DHCPv6, and SLAAC.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;DHCPv6-PD:&lt;/b&gt;&amp;nbsp;Delegates prefixes to routers.&lt;/li&gt;&lt;li&gt;&lt;b&gt;DHCPv6 IA_NA:&lt;/b&gt;&amp;nbsp;Assigns individual IPv6 addresses to clients.&lt;/li&gt;&lt;li&gt;&lt;b&gt;SLAAC: A&lt;/b&gt;llows clients to generate their own addresses using advertised prefixes.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;


&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Why incorporate both SLAAC and DHCPv6 service?&amp;nbsp; It&#39;s all about the clients.&amp;nbsp; Some only support SLAAC, some only DHCPv6, some only support SLAAC but do not accept RDNSS 🤣.&amp;nbsp; If you want to support Windows, and Mac IOS, and Android, and Xbox...&amp;nbsp; It&#39;s best to support SLAAC and provide DHCPv6.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;To advertise that stateful DHCPv6 addressing is available, the RA Managed flag can be enabled:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;color: #660000;&quot;&gt;/ipv6 nd
set [find where interface=bridge_wifi] \
    managed-address-configuration=yes&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The DHCPv6 server and address pool must also be configured.&amp;nbsp; The Managed flag alone does not create a DHCPv6 server.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;Return routing&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The major advantage for this design is that the edge firewall does require a static route for every delegated &lt;code&gt;/64&lt;/code&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;When It delegates a &lt;code&gt;/58&lt;/code&gt; to the AP, the DHCPv6-PD server can install a route for that delegated prefix through its DHCPv6 client.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Conceptually:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Destination:
2001:db8:1234:5640::/58

Next hop:
AP&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The actual next hop may use the AP&#39;s link-local address. This is a critical feature of routed prefix delegation.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;IPv6 firewall considerations&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Globally routable IPv6 addresses, without controls, provide unrestricted two-way Internet access.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;A stateful firewall policy is the primary tool that makes IPv6 functionally secure.&amp;nbsp; It should block all unsolicited traffic on both the inbound and forward chains. It should permit defined control traffic on the inbound chain and permit outbound traffic on the forward chain.&amp;nbsp; It should drop everything else.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;It&#39;s conceptually similar to a solid IPv4 firewall filter.&amp;nbsp; Review an example of IPv6 firewall configuration &lt;a href=&quot;https://www.stevenjordan.net/2026/10/routeros-ipv6-for-at.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The AP should apply equivalent principles to traffic entering its own routed networks.&lt;/p&gt;
&lt;p style=&quot;font-size: 18px; font-weight: 600; line-height: 1.3; margin: 22px 0px 6px;&quot;&gt;&lt;b&gt;17. Conclusion&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;My Spectrum IPv6 deployment demonstrates a clean approach to routing using RouterOS.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Spectrum delegates a &lt;code&gt;/56&lt;/code&gt; to my edge firewall.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;My edge firewall allocates a &lt;code&gt;/58&lt;/code&gt; to my AP.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;My AP subdivides that &lt;code&gt;/58&lt;/code&gt; into &lt;code&gt;/64&lt;/code&gt; networks for its internal interfaces.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Router Advertisements provide default-router discovery and host configuration, while DHCPv6-PD manages the delegation hierarchy and associated routes.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The resulting architecture supports globally routable IPv6 addresses throughout the network without NAT66.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;More importantly, it establishes a foundation for expansion.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;Additional VLANs, wireless networks, downstream routers, and branch segments can be incorporated without changing the architecture.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;The underlying principle is simple: delegate prefixes to routers, advertise prefixes to hosts, and route between networks.&lt;/p&gt;
&lt;p style=&quot;margin: 0px 0px 12px;&quot;&gt;That&#39;s it!&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/3797919572302153861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/10/httpswww.stevenjordan.net202604deploying-ipv6-with-spectrum-and.html.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3797919572302153861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3797919572302153861'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/10/httpswww.stevenjordan.net202604deploying-ipv6-with-spectrum-and.html.html' title='Deploy Spectrum IPv6'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAK9XPN8vXO45-RhILq5Tp4NPfxiC7nHvhFBdTJ1pMrbo9Yr22SJ25kf_79NdVDYd1CIQJxhlpUjAVA9yO4oXJk-OIBIj9qOV0GhO8dDeDNjnQCVZ-P-w_yrWUpPMxwn4hsQ7VQ-KnD19Ut2v0PPWqIooXpcHMED6Kp8sPephbdk6SOIDix77PS26QN-ey/s72-w200-h83-c/MK_RED.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-4263446520203905094</id><published>2026-02-16T14:24:00.000-06:00</published><updated>2026-10-21T19:08:26.658-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bash"/><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell"/><category scheme="http://www.blogger.com/atom/ns#" term="SSH"/><category scheme="http://www.blogger.com/atom/ns#" term="Terminal"/><title type='text'>Role-based Shells</title><content type='html'>&lt;h4&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9YpW4Cmm_junIwbrEoM5MxYnkKvCuDVkglETlq2Mq1PWCGZKNFoQQGOTJ2rQx9Dp2sUGFGO6wPFiYApHR4GCGKpw2dIxWuTRrriaE63HF-mriKPrh5Bgbz81jYeJptiAMklx1H8k3aPt6GzXh8iFjCQHxrf9IQnxn4_NrGqtS2Xoc0yEh4URfUIaANHkI/s752/Offspring.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;380&quot; data-original-width=&quot;752&quot; height=&quot;101&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9YpW4Cmm_junIwbrEoM5MxYnkKvCuDVkglETlq2Mq1PWCGZKNFoQQGOTJ2rQx9Dp2sUGFGO6wPFiYApHR4GCGKpw2dIxWuTRrriaE63HF-mriKPrh5Bgbz81jYeJptiAMklx1H8k3aPt6GzXh8iFjCQHxrf9IQnxn4_NrGqtS2Xoc0yEh4URfUIaANHkI/w200-h101/Offspring.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;You Gotta Keep &#39;em Separated&lt;/div&gt;&lt;/h4&gt;

&lt;p&gt;PowerShell, Bash, Cisco IOS, RouterOS.&amp;nbsp; Terminal fatigue is real.&amp;nbsp; After a while they all blend together. &lt;b&gt;Windows Terminal&lt;/b&gt; puts them all under one roof.&amp;nbsp; One clone after another gets old fast. I wanted each environment to reflect its own role.&lt;/p&gt;

&lt;p&gt;Role-based shells to the rescue!&amp;nbsp; Windows Terminal owns the look. PowerShell and Bash each own their own environment. SSH launches directly into remote device. The secret sauce is the division of labor.&lt;/p&gt;&lt;h4&gt;PowerShell&lt;/h4&gt;&lt;h4&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDgwAze0JZ6zJqucaJuB3OzetjZDxY1du14MocX2A8bIwjtpmQmlGb9PRYoIEoCjP-eA8Yf3FO9PwAPjOTo2DOiDNCE8c_wXKvF08e0kX4sQIz4esieBOGLue-JDWlY5IAMly0q6Dt24D-KHgYXg4Ufkb0sUlKm3pTWVkI06EFBE35d5QlmavUeztg3xFD/s1037/PS_Terminal.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;708&quot; data-original-width=&quot;1037&quot; height=&quot;136&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDgwAze0JZ6zJqucaJuB3OzetjZDxY1du14MocX2A8bIwjtpmQmlGb9PRYoIEoCjP-eA8Yf3FO9PwAPjOTo2DOiDNCE8c_wXKvF08e0kX4sQIz4esieBOGLue-JDWlY5IAMly0q6Dt24D-KHgYXg4Ufkb0sUlKm3pTWVkI06EFBE35d5QlmavUeztg3xFD/w200-h136/PS_Terminal.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h4&gt;

&lt;div style=&quot;float: right; margin: 0px 0px 1em 1em;&quot;&gt;&lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;Show something useful instead of a blank prompt. Winfetch does that:&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;Install-Module -Name Winfetch -Scope CurrentUser&lt;/pre&gt;

&lt;p&gt;Then the profile is two lines. Find it with $PROFILE, create the file if it doesn’t exist, and add this:&lt;/p&gt;

&lt;pre&gt;Clear-Host
winfetch&lt;/pre&gt;

&lt;p&gt;New tab, screen clears, system info appears. Windows Terminal never has to know about it. Just remember that Windows PowerShell 5.1 and PowerShell 7 keep separate profiles, so run $PROFILE from the one you actually use.&lt;/p&gt;

&lt;h4&gt;Ubuntu WSL2&lt;/h4&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKo2AzqsS5MGPGoHM2v_fRTctAa2W7l9VwMa_Xenq3zsozmGF7D8UL9gJ8dGc8aZLeAPUcFrxD7SfcV7UQSbt8wkQwYGs6WaEnRbxL1XF5EU3A21L8KRm3co4gEx4XTbfwtglIqZ2hBqUcVRxTAaQyp9VY-nmGQUYz-EjrhDh0sRPUo8FyfoD1I1xjsWZk/s1072/Ubuntu_Terminal.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;712&quot; data-original-width=&quot;1072&quot; height=&quot;133&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKo2AzqsS5MGPGoHM2v_fRTctAa2W7l9VwMa_Xenq3zsozmGF7D8UL9gJ8dGc8aZLeAPUcFrxD7SfcV7UQSbt8wkQwYGs6WaEnRbxL1XF5EU3A21L8KRm3co4gEx4XTbfwtglIqZ2hBqUcVRxTAaQyp9VY-nmGQUYz-EjrhDh0sRPUo8FyfoD1I1xjsWZk/w200-h133/Ubuntu_Terminal.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Same idea for Linux. Install the tools:&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;sudo apt update
sudo apt install neofetch figlet&lt;/pre&gt;

&lt;p&gt;Then at the bottom of ~/.bashrc:&lt;/p&gt;

&lt;pre&gt;clear
figlet &quot;Ubuntu WSL2&quot;
neofetch&lt;/pre&gt;

&lt;p&gt;Source it or open a fresh tab. You get the big banner, the Ubuntu art, and the stats.&amp;nbsp; 🤯&lt;/p&gt;

&lt;h4&gt;Other nodes&lt;/h4&gt;

&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;1005&quot; height=&quot;89&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK71KRfwCESasYtU0yVVnlh5YNZUsLrB0tLyf43srV9BGusAUPlK56WXGL4bF4eqOrRelBBfM3D4Twp6hMOw4GLPcj_xL9EJEbKzQk-gNjtbn4NdZJixar09OfYoS_XgsowBuQ6iJUhd6B-lK1n0YkdYSbaDYggV0LdgkRArVn0I5ZxNDRz3MsBvpLreLU/w200-h89/Mikrotik_Terminal.png&quot; width=&quot;200&quot; /&gt;&lt;/p&gt;The last piece was including a small transparent logo in the bottom-right of each profile.&amp;nbsp; I can tell at a glance which system I’m on. Each system gets its own PNG. Store them where Terminal can see them (e.g., RoamingState folder) and point at them like this:&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;&quot;backgroundImage&quot;: &quot;ms-appdata:///Roaming/ubuntu.png&quot;,
&quot;backgroundImageAlignment&quot;: &quot;bottomRight&quot;,
&quot;backgroundImageStretchMode&quot;: &quot;none&quot;,
&quot;backgroundImageOpacity&quot;: 0.20&lt;/pre&gt;



&lt;p&gt;The shared defaults handle the common stuff: Cascadia Code, acrylic at 85% opacity, and a filled-box gold cursor. Individual profiles override color and logo. Cisco ended up dark royal green (#1B4D3E) with the gold cursor. MikroTik is deep navy with steel-blue text (#A0C4FF). Both stay readable and neither looks like a Christmas tree.&lt;/p&gt;

&lt;p&gt;My Cisco and MikroTik profiles launch straight to SSH sessions. The remote device owns the CLI. Terminal only owns the window it appears in. Don’t bake credentials into settings.json.&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK71KRfwCESasYtU0yVVnlh5YNZUsLrB0tLyf43srV9BGusAUPlK56WXGL4bF4eqOrRelBBfM3D4Twp6hMOw4GLPcj_xL9EJEbKzQk-gNjtbn4NdZJixar09OfYoS_XgsowBuQ6iJUhd6B-lK1n0YkdYSbaDYggV0LdgkRArVn0I5ZxNDRz3MsBvpLreLU/s1005/Mikrotik_Terminal.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVsAW5SB2e7zPpB_XlISuUed_MS8UGVb6V__PPCMQ7YSc727PqJQN0oKJVWO1hYTPSsT4xu9nxwKgw7So3jBxjnHODkYQMYTJaRrK5jGFLx09_Y4sveLVxJ0G-obFsNKF0mFAzBen1bh947tGOp3OOwrcN2VhtO2ET5RA7wVSmERNHf3quYzaeazZNa-B_/s1041/Cisco_Terminal.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;635&quot; data-original-width=&quot;1041&quot; height=&quot;122&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVsAW5SB2e7zPpB_XlISuUed_MS8UGVb6V__PPCMQ7YSc727PqJQN0oKJVWO1hYTPSsT4xu9nxwKgw7So3jBxjnHODkYQMYTJaRrK5jGFLx09_Y4sveLVxJ0G-obFsNKF0mFAzBen1bh947tGOp3OOwrcN2VhtO2ET5RA7wVSmERNHf3quYzaeazZNa-B_/w200-h122/Cisco_Terminal.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h4&gt;&lt;h4&gt;&lt;br /&gt;&lt;/h4&gt;Repeat after me&amp;nbsp;

&lt;p&gt;I dedicate a folder for settings.json, the PowerShell profile, a copy of .bashrc, and the four images. If I break something or move to a new machine -no big deal.&amp;nbsp; I drop those files back in place, reinstall the two tools, and I’m done. The gold cursor was an experiment that stuck. Everything else was just making sure the right layer owned the right job.&lt;/p&gt;

&lt;p&gt;That&#39;s It!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/4263446520203905094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/02/202602fixing-win-terminal.html.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/4263446520203905094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/4263446520203905094'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/02/202602fixing-win-terminal.html.html' title='Role-based Shells'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9YpW4Cmm_junIwbrEoM5MxYnkKvCuDVkglETlq2Mq1PWCGZKNFoQQGOTJ2rQx9Dp2sUGFGO6wPFiYApHR4GCGKpw2dIxWuTRrriaE63HF-mriKPrh5Bgbz81jYeJptiAMklx1H8k3aPt6GzXh8iFjCQHxrf9IQnxn4_NrGqtS2Xoc0yEh4URfUIaANHkI/s72-w200-h101-c/Offspring.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-3150067052228783240</id><published>2025-10-11T18:33:00.000-05:00</published><updated>2026-10-23T18:36:43.865-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="IaC"/><category scheme="http://www.blogger.com/atom/ns#" term="NMC"/><title type='text'>IaC Monkey Business</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTl3RCzmeixA3YQ7vOHf9KVjF5fmI07zcorGlbVoKfbLBP-JRiWishF2PfKzOabXxxkttMrjF6c-oseUSLP5r8795AXCEarjNv8YD_c80UqDKOySVXTKykqrD_yEaRsEHkvxfYICz59wuYKMtEHYVURi35zfsgInlHUip2F5tzMxL4PMVaLXlG93R-eRNh/s382/rodnet_b2school.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;167&quot; data-original-width=&quot;382&quot; height=&quot;140&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTl3RCzmeixA3YQ7vOHf9KVjF5fmI07zcorGlbVoKfbLBP-JRiWishF2PfKzOabXxxkttMrjF6c-oseUSLP5r8795AXCEarjNv8YD_c80UqDKOySVXTKykqrD_yEaRsEHkvxfYICz59wuYKMtEHYVURi35zfsgInlHUip2F5tzMxL4PMVaLXlG93R-eRNh/s320/rodnet_b2school.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Abstract&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Terraform provides the tools to manage Infrastructure as Code (IaC) configuration, but architecture, shared policy, and deployment remain our responsibility. My five-layer IaC methodology is one way to structure those responsibilities. It&#39;s simple enough for individual devices, yet scalable across entire fleets. A disciplined approach prevents the monkey business that turns IaC into module soup.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Background&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;A co-worker once asked me, &quot;What do you think about Terraform and Ansible?&quot; I replied, &quot;Any monkey can push a button.&quot; After all, it&#39;s only a glorified network configuration manager (NCM), isn&#39;t it? The answer to that question is more fun than a barrel of monkeys.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;CLI vs NCM vs IaC&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Network management is entirely situational. There&#39;s no perfect one-size-fits-all solution. I respect a clean CLI. It&#39;s a quick and satisfying way to make changes. Indeed, the CLI paired with a solid NCM solution is entirely justifiable. It gives you form and function with the ability to roll back changes from previous versions. But the truth is, the CLI and NCM have limitations.&lt;/p&gt;
&lt;p&gt;The CLI is single purpose. It&#39;s designed around interacting with one device at a time, which is entirely defensible if you manage ten to twenty devices. But it becomes inefficient at scale. What happens if you need to manage one hundred devices? Five hundred?&lt;/p&gt;
&lt;p&gt;Beyond logistics, scale introduces the potential for mistakes or drift. People make mistakes. Mistakes have consequences. They can lock you out of a device. They can bring down service. They can open ports that leave your resources vulnerable to exploits. In some ways, the only difference between a net admin and a monkey is version control.&lt;/p&gt;
&lt;p&gt;Even when CLI is scripted across many devices, it remains fundamentally device-centric. Infrastructure as Code (IaC) is different. It makes desired state explicit, repeatable, and manageable.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Monkey Wrench&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;CLI is like a handsaw. Measure once and cut. It&#39;s maximum simplicity and control over a single device. NCM + CLI is like upgrading to a circular saw and then measuring twice. Your work can quickly be rolled back to a previous state from any device. IaC is like working with a table saw, for when repeatable accuracy matters most.&lt;/p&gt;
&lt;p&gt;But a table saw doesn&#39;t automatically produce better work. It produces more efficient work—the same repeatable cuts at scale. However you cut it, the final work depends on the craftsman behind the blade. The same is true of IaC. The tool is only as useful as the architecture.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Methodology&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;IaC can work like all three tools: a simple handsaw, a circular saw, or a beefy table saw. The difference boils down to how we structure the work. What follows is a custom Five-Layer IaC abstraction model. It is vendor-neutral and reusable beyond any particular tool or platform. Each layer answers a distinct question, and each is dependent on the previous. Each layer is insufficient on its own.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO61BMaZsebwbFJPu3JcpEUnXoSFG8d6sxrmnd8a55fl48YV-3TaZfsVx8mNGXUb_qlDDtc9MKaYlJDkNfdZC1zwyT2mtb0grZM2t00YUnwGcuRWhiW6FiftSQvaCfZcYnox8LEWySH9SSSneI8usRlSMff-mwq1bPUdWuK5MsdwKkPBc_epCKU7pkEpDZ/s1200/Five-Layer%20IaC%20Methodology@1x%20(1).png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;760&quot; data-original-width=&quot;1200&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO61BMaZsebwbFJPu3JcpEUnXoSFG8d6sxrmnd8a55fl48YV-3TaZfsVx8mNGXUb_qlDDtc9MKaYlJDkNfdZC1zwyT2mtb0grZM2t00YUnwGcuRWhiW6FiftSQvaCfZcYnox8LEWySH9SSSneI8usRlSMff-mwq1bPUdWuK5MsdwKkPBc_epCKU7pkEpDZ/w400-h254/Five-Layer%20IaC%20Methodology@1x%20(1).png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Layer 1: Structure&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Where does everything belong?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Define the Git repository and how its components are organized.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Local, server, or cloud-based repository&lt;/li&gt;
&lt;li&gt;Comprised of a flat Git repository&lt;/li&gt;
&lt;li&gt;Scope wide and never deep&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without a deliberate structure, the repository becomes a disorganized junk drawer. At scale, you cannot find what you need, changes drift, and the next administrator inherits the mess. Structure is the foundation that makes every other layer possible.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Layer 2: Roles&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;How are components related?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Decide how devices and groups are classified and related. Child directories align perfectly with roles:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Device_intent:&lt;/strong&gt; Dedicated 1:1 folders for managed nodes. Each folder contains respective configuration files. Terraform applies all files to the node.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shared_policy:&lt;/strong&gt; Dedicated 1:N folders for groups of managed nodes. Each nested folder contains respective configuration files that disseminate to all devices within the group. All files are applied to all devices in the group.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Templates:&lt;/strong&gt; Dedicated 1:1 folders per model. Configuration contains placeholder stanzas intended for new rollouts. Simply copy the template to its respective new device or group directory.&lt;/p&gt;
&lt;p&gt;Structure alone does not tell you how devices relate to one another. Roles make the relationships explicit: which devices are unique, which share policy, and which are starting points for new deployments. This prevents both duplication and accidental divergence.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Layer 3: Identity&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNiVoke5F8PJ7c_p3MV0jjB9H3WnOvZuSV3StFeTFqbUJJ7f1IqJFsFSjvQR1x4Zonee4bt5vTjTryrGWuyU9jtvkStAGHHZIAqwRs4UE9_FMLTK9-GQpR1cDR9fEbFQqMSpgtBVLKLZsVLPW45bIgGhN4mdMp4zBaNFqzKPBRaxH83079V8z1Rqy-0TMO/s1402/Firewall%20Chain%20Logic%20Flowchart.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1402&quot; data-original-width=&quot;1122&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNiVoke5F8PJ7c_p3MV0jjB9H3WnOvZuSV3StFeTFqbUJJ7f1IqJFsFSjvQR1x4Zonee4bt5vTjTryrGWuyU9jtvkStAGHHZIAqwRs4UE9_FMLTK9-GQpR1cDR9fEbFQqMSpgtBVLKLZsVLPW45bIgGhN4mdMp4zBaNFqzKPBRaxH83079V8z1Rqy-0TMO/s320/Firewall%20Chain%20Logic%20Flowchart.png&quot; width=&quot;256&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;em&gt;&lt;div&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;How do we consistently identify nodes and shared policy?&lt;/em&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;We implement a naming convention that represents more than simple identification:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Device names:&lt;/strong&gt; City-Vendor-Function-Model-ID (e.g., chi-jun-fw-1500-n0)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Group names:&lt;/strong&gt; Group_identifier-city-vendor-function (e.g., Grp-mke-mt-fw)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TF Config Files:&lt;/strong&gt; Align with vendor configuration stanza (e.g., ip_firewall_filter.tf)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consistent identity makes automation reliable and allows human review. Each resource name encodes location, vendor, function, and role. It turns a directory listing into a map.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Layer 4: Policy&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;How do we enforce configurations and behaviors?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Policy determines how group and local device configurations apply in tandem.&lt;/li&gt;
&lt;li&gt;Apply naming convention to configuration statements or comments (-grp / -loc).&lt;/li&gt;
&lt;li&gt;Determine explicit precedence and order of operation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is where the methodology becomes concrete. For example, our RouterOS configuration establishes a &quot;group&quot; forwarding chain shared among its respective nodes. That chain includes a jump rule to a similar &quot;device&quot; chain. Configuration for the respective chain is entirely optional and configured per device. This process provides exceptions and preserves the default-deny ACL located in the group stanza.&lt;/p&gt;
&lt;p&gt;Roles and identity tell you what exists and how it is named. Policy decides what actually happens when shared and local configurations meet. Without explicit precedence, you get silent overrides, surprising behavior, and configurations that cannot be reasoned about.&lt;/p&gt;
&lt;p&gt;Policy impacts both group and individual devices. It&#39;s not a setting you can toggle. It&#39;s all derived from our custom methodology. It&#39;s the secret sauce that makes IaC unique.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Layer 5: Orchestration&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;How do we review and deploy changes?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Orchestration defines how configurations are reviewed and deployed. Its operational processes can include Git revisions, OpenTofu plans, reviewed applies, and Bash deployment scripts.&lt;/p&gt;
&lt;p&gt;Each device maintains independent state, even when multiple devices consume the same shared policy. Shared configuration does not imply shared deployment fate. Our Bash orchestration is intentionally simple: select a group, iterate through its device roots, review plans, apply deliberately, and stop on failure. No elaborate management platform is required.&lt;/p&gt;
&lt;p&gt;The previous layers produce a desired state. Orchestration is how that state is safely deployed. Independent state means a failure on one device does not cascade. The deliberate, reviewable process ensures the human-in-the-loop. It&#39;s monkey see and monkey do—in the best possible way. Engineering solutions do not require complexity.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;RBAC vs IaC&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;I use a methodology similar to RBAC, but adapted for infrastructure as code. The roles are not security groups—they are the managed nodes and the groups those nodes belong to. The organization of the repository and the naming conventions do the heavy lifting. Everything is kept flat so I can quickly identify and work with a single device or an entire group.&lt;/p&gt;
&lt;p&gt;The primary distinction is between the device directory and the shared policy directory. The device directory holds configuration that is unique to that node. The shared policy directory holds configuration that applies to every device in a given group. Reconciling the two is deliberate: shared policy is applied first, then local exceptions are layered on top under explicit precedence rules, with a final default deny. That keeps group consistency without preventing device-specific overrides.&lt;/p&gt;
&lt;p&gt;These are different mechanisms from traditional RBAC, but they share a useful conceptual pattern: roles establish relationships, and those relationships determine how policies are applied. In both cases, the role is a layer of indirection that keeps the rules themselves simpler and more maintainable. The difference is what the role is organizing—authorization on one side, configuration ownership on the other.&lt;/p&gt;

&lt;h4 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;See, Hear, and Speak no Evil&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;IaC without a coherent system is one more banana peel to slip on. However, a well-designed IaC approach is arguably the top-banana approach. It gives the next administrator a readable configuration, a transparent history, and a predictable evaluation process we can deploy at scale. If that&#39;s the case, I say the monkey can have his button. Just don&#39;t mistake it for the system behind it. 🐒&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/3150067052228783240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2025/10/Iac-Monkey-Business.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3150067052228783240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3150067052228783240'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2025/10/Iac-Monkey-Business.html' title='IaC Monkey Business'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTl3RCzmeixA3YQ7vOHf9KVjF5fmI07zcorGlbVoKfbLBP-JRiWishF2PfKzOabXxxkttMrjF6c-oseUSLP5r8795AXCEarjNv8YD_c80UqDKOySVXTKykqrD_yEaRsEHkvxfYICz59wuYKMtEHYVURi35zfsgInlHUip2F5tzMxL4PMVaLXlG93R-eRNh/s72-c/rodnet_b2school.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-3797086631076558078</id><published>2025-07-11T18:45:00.000-05:00</published><updated>2026-10-13T19:11:22.437-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BGP"/><category scheme="http://www.blogger.com/atom/ns#" term="Books; Essays; Prose"/><category scheme="http://www.blogger.com/atom/ns#" term="WiFi"/><title type='text'>Wi-Fi Without VLANs</title><content type='html'>&lt;h4&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7-Ce77Y3An6sVuQN0YIzTd3VwchUp_AFAGaH-qz5mQkXLmBB3OkVV8CaYCh1OdHeC3DHQmDhr8qCfvYxrwqc0GmWigqH4sJq1Uu5KTmZhhIXNWIub_WY7J5NOJsygj-uX9jmYPvo0bicqaL0Paph3dlojliedQpIOnf3vMVpANGfcZmWiLg31k63FePTF/s970/hotdog.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Spine &amp;amp; Leaf Wi-Fi&quot; border=&quot;0&quot; data-original-height=&quot;435&quot; data-original-width=&quot;970&quot; height=&quot;90&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7-Ce77Y3An6sVuQN0YIzTd3VwchUp_AFAGaH-qz5mQkXLmBB3OkVV8CaYCh1OdHeC3DHQmDhr8qCfvYxrwqc0GmWigqH4sJq1Uu5KTmZhhIXNWIub_WY7J5NOJsygj-uX9jmYPvo0bicqaL0Paph3dlojliedQpIOnf3vMVpANGfcZmWiLg31k63FePTF/w200-h90/hotdog.png&quot; title=&quot;Layer-3 Wi-Fi Controller&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Layer-3 Wi-Fi Fabric&lt;/h4&gt;

&lt;p&gt;Wi-Fi is like a layer-2 Oscar-Mayer hotdog. It looks better than it tastes. Every access point belongs to the same foot-long fabric. Does wireless mobility truly require that digital heartburn? Or is there a better choice on the menu?&lt;/p&gt;

&lt;h4&gt;The Low-Down&lt;/h4&gt;

&lt;p&gt;Most Wi-Fi designs extend Layer 2 so a client can keep the same IP while it roams. That gives you one big broadcast domain, tunnels, controllers in the data path, and extra glue when you leave the building. VLANs show up everywhere because the fabric itself never really left Layer 2.&lt;/p&gt;

&lt;p&gt;I wanted something simpler. Treat the client’s IP as a stable identity. Announce it as a /32 host route in BGP from whichever access point the client is currently on. When the client moves, the route moves with it. No bridges, no GRE-style tunnels, no shared broadcast domain, and no VLANs.&lt;/p&gt;

&lt;p&gt;The controller never sees client traffic. It only watches associations and pushes or withdraws the /32 on the APs. BGP does the rest.&lt;/p&gt;

&lt;h4&gt;Why bother?&lt;/h4&gt;

&lt;p&gt;A flat Layer 2 network (or a tunneled one) gives you a few familiar problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ARP and mDNS floods hit every radio at the lowest management rate.&lt;/li&gt;
&lt;li&gt;Controllers become single points of failure and performance bottlenecks.&lt;/li&gt;
&lt;li&gt;Trunks, VLANs, and spanning tree touch every AP.&lt;/li&gt;
&lt;li&gt;Client isolation is usually a CPU-heavy bridge filter that breaks other things.&lt;/li&gt;
&lt;li&gt;Going between sites means yet another overlay.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A purely routed fabric sidesteps most of that. Each client lives on its own isolated segment. The IP follows the device. Policy can ride on BGP communities. Distance becomes just another BGP peer. And there are no VLANs to provision or trunk.&lt;/p&gt;

&lt;h4&gt;Layer-3 Roaming&lt;/h4&gt;

&lt;p&gt;Client associates to a new AP. Syslog fires. Controller sees the event, withdraws the /32 from the old AP, and announces it on the new one. BGP converges. Traffic follows.&lt;/p&gt;

&lt;p&gt;With BFD and tight timers the whole thing can stay under a second on a small fabric. Existing TCP sessions survive. The client does not need to know anything changed.&lt;/p&gt;

&lt;h4&gt;Four pieces&lt;/h4&gt;

&lt;p&gt;1. Access points&lt;/p&gt;
&lt;p&gt;MikroTik APs acting as leaves. Each runs BGP to the core. Base config is almost identical. The controller adds and removes network statements over the API. If the controller dies, existing routes stay up and traffic keeps flowing.&lt;/p&gt;

&lt;p&gt;2. BGP core&lt;/p&gt;
&lt;p&gt;Route reflector (CHR or physical). It accepts the client /32s tagged with the right communities and rejects everything else. Policy lives here. One connection-tracking rule can cover the whole client pool.&lt;/p&gt;

&lt;p&gt;3. Controller&lt;/p&gt;
&lt;p&gt;Lightweight Python container. Listens to CAPsMAN syslog, keeps a MAC→IP→AP table, and drives the RouterOS API. Never in the data path. Failure only stops new associations.&lt;/p&gt;

&lt;p&gt;4. Dashboard&lt;/p&gt;
&lt;p&gt;Shows who is where, roam history, BGP session health, and a simple isolation toggle. The BGP table itself is the second source of truth.&lt;/p&gt;

&lt;h4&gt;Communities for policy&lt;/h4&gt;

&lt;p&gt;Every /32 carries a community that says what the device is allowed to do:&lt;/p&gt;

&lt;pre&gt;65000:100  Corporate
65000:200  Guest
65000:300  IoT
65000:900  Quarantine&lt;/pre&gt;

&lt;p&gt;The controller maps authentication context to the community at association time. The spine enforces it. No per-client firewall rules, no VLAN sprawl. Change the community and the policy moves with the route.&lt;/p&gt;

&lt;h4&gt;What this buys you&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Roaming works from anywhere.&amp;nbsp; The controller can be down the hall, on another floor, across the campus, or on the other side of the state.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The IP belongs to the device. Firewall rules and logs follow the client, not the AP or the subnet.&lt;/li&gt;
&lt;li&gt;No vendor licensing.&amp;nbsp; It&#39;s simply aligning dynamic routing with clients.&lt;/li&gt;
&lt;li&gt;HA is simple.&amp;nbsp; Just add another controller and use local preference.&amp;nbsp; Existing sessions survive controller failure.&lt;/li&gt;
&lt;li&gt;Client isolation is topological instead of filter-based.&lt;/li&gt;
&lt;li&gt;No VLANs anywhere in the client path.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Requirements for a small POC&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Two MikroTik APs that support containers (RB5009, L009, hAP ax³). The older hAP ac² does not.&lt;/li&gt;
&lt;li&gt;One BGP route reflector (CHR or physical).&lt;/li&gt;
&lt;li&gt;A couple of client devices, including at least one Android.&lt;/li&gt;
&lt;li&gt;RouterOS 7.x on the controller host.&lt;/li&gt;
&lt;li&gt;Python container with a syslog listener, librouteros, and SQLite. Target is under 500 lines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Optional later: 802.1X so communities come from RADIUS attributes, RSSI polling for flap prevention, mDNS reflection if you need discovery across the isolated segments.&lt;/p&gt;

&lt;h4&gt;Compared with the usual options&lt;/h4&gt;

&lt;p&gt;TCP session on roam: L2 bridge drops, L2 tunnel survives only while the controller is up, L3 per-AP subnet drops, this design survives.&lt;/p&gt;

&lt;p&gt;Controller in data path: L2 bridge no, L2 tunnel yes, L3 per-AP no, this design no.&lt;/p&gt;

&lt;p&gt;Broadcast scope: L2 bridge fabric-wide, L2 tunnel fabric-wide, L3 per-AP per AP, this design per client.&lt;/p&gt;

&lt;p&gt;Geographic scale: L2 bridge poor, L2 tunnel moderate, L3 per-AP good, this design excellent.&lt;/p&gt;

&lt;p&gt;Role-based policy: L2 bridge none, L2 tunnel proprietary, L3 per-AP static, this design BGP communities.&lt;/p&gt;

&lt;p&gt;Licensing: L2 bridge low, L2 tunnel high, L3 per-AP low, this design zero.&lt;/p&gt;

&lt;h4&gt;Caveats&lt;/h4&gt;

&lt;p&gt;Convergence time.&amp;nbsp; Aggressive BGP and BFD timers will help.&amp;nbsp; Roam events, reassociation timing, and queueing must be measured.&amp;nbsp; The first working version is MikroTik-specific even if the idea is not.&lt;/p&gt;

&lt;p&gt;None of that makes the approach nonsense. It&#39;s simply applying something BGP already does well to the access layer. The concept should be welcome for anyone who has fought with L2 roaming, GRE tunnels, or inter-controller mobility.&amp;nbsp;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The controller and dashboard are still in POC shape. The fabric itself is mostly ordinary BGP and RouterOS. That is the point.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/3797086631076558078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/10/202507wifi-without-vlans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3797086631076558078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/3797086631076558078'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/10/202507wifi-without-vlans.html' title='Wi-Fi Without VLANs'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7-Ce77Y3An6sVuQN0YIzTd3VwchUp_AFAGaH-qz5mQkXLmBB3OkVV8CaYCh1OdHeC3DHQmDhr8qCfvYxrwqc0GmWigqH4sJq1Uu5KTmZhhIXNWIub_WY7J5NOJsygj-uX9jmYPvo0bicqaL0Paph3dlojliedQpIOnf3vMVpANGfcZmWiLg31k63FePTF/s72-w200-h90-c/hotdog.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-180235325188780604</id><published>2025-05-09T14:23:00.000-05:00</published><updated>2026-10-08T15:37:00.145-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory"/><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server"/><title type='text'>Transfer FISMO Roles with PowerShell</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlXgHMXchj1t4Gx_0VKS8GFjCF0OgIVMkMiO2JpVsCVdFiV59-QemctyUt0TEXCBeBiMg6iFuOoRGAwO791K1qF4eK6yb4phsY6wNXYZdS1zHwi5lHF33K47si837mLgjelXNAb2iB-iJY1Wb98MqKoHzOeb7Sf-dR5qmCzU3FGJC_j6ODdFiQbNcuyHwj/s738/PS_Fun.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;387&quot; data-original-width=&quot;738&quot; height=&quot;105&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlXgHMXchj1t4Gx_0VKS8GFjCF0OgIVMkMiO2JpVsCVdFiV59-QemctyUt0TEXCBeBiMg6iFuOoRGAwO791K1qF4eK6yb4phsY6wNXYZdS1zHwi5lHF33K47si837mLgjelXNAb2iB-iJY1Wb98MqKoHzOeb7Sf-dR5qmCzU3FGJC_j6ODdFiQbNcuyHwj/w200-h105/PS_Fun.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;

&lt;h4&gt;Problem&lt;/h4&gt;
&lt;p&gt;You need to move the FSMO roles, and you would rather do it in PowerShell than click through the old MMC snap-ins.&lt;/p&gt;

&lt;h4&gt;Solution&lt;/h4&gt;
&lt;p&gt;Use the Active Directory PowerShell module. If it is not already loaded, import it first.&lt;/p&gt;
&lt;pre&gt;Import-Module ActiveDirectory&lt;/pre&gt;

&lt;h4&gt;See who has the forest roles&lt;/h4&gt;
&lt;pre&gt;Get-ADForest contoso.com | ft DomainNamingMaster, SchemaMaster&lt;/pre&gt;

&lt;h4&gt;See who has the domain roles&lt;/h4&gt;
&lt;pre&gt;Get-ADDomain contoso.com | ft InfrastructureMaster, PDCEmulator, RIDMaster&lt;/pre&gt;

&lt;h4&gt;Move one role&lt;/h4&gt;
&lt;p&gt;This hands the PDC Emulator role to the domain controller named DCX.&lt;/p&gt;
&lt;pre&gt;Move-ADDirectoryServerOperationMasterRole -Identity &quot;DCX&quot; PDCEmulator&lt;/pre&gt;

&lt;p&gt;PowerShell also accepts the role as a number:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0 = PDCEmulator&lt;/li&gt;
&lt;li&gt;1 = RIDMaster&lt;/li&gt;
&lt;li&gt;2 = InfrastructureMaster&lt;/li&gt;
&lt;li&gt;3 = SchemaMaster&lt;/li&gt;
&lt;li&gt;4 = DomainNamingMaster&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Move several roles&lt;/h4&gt;
&lt;pre&gt;Move-ADDirectoryServerOperationMasterRole -Identity &quot;DCX&quot; -OperationMasterRole DomainNamingMaster,PDCEmulator,RIDMaster,SchemaMaster,InfrastructureMaster&lt;/pre&gt;

&lt;h4&gt;Move all of them by number&lt;/h4&gt;
&lt;pre&gt;Move-ADDirectoryServerOperationMasterRole &quot;DCX&quot; -OperationMasterRole 0,1,2,3,4&lt;/pre&gt;

&lt;p&gt;That&#39;s it. Same command either way. Name the destination domain controller, then list the roles you want it to take.&lt;/p&gt;

&lt;h4&gt;References&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/module/addsadministration/move-addirectoryserveroperationmasterrole?view=win10-ps&quot;&gt;Move-ADDirectoryServerOperationMasterRole&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blogs.technet.microsoft.com/canitpro/2017/05/24/step-by-step-migrating-active-directory-fsmo-roles-from-windows-server-2012-r2-to-2016/&quot;&gt;Migrating FSMO roles from Windows Server 2012 R2 to 2016&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/180235325188780604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2019/05/manage-fismo-roles-with-powershell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/180235325188780604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/180235325188780604'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2019/05/manage-fismo-roles-with-powershell.html' title='Transfer FISMO Roles with PowerShell'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlXgHMXchj1t4Gx_0VKS8GFjCF0OgIVMkMiO2JpVsCVdFiV59-QemctyUt0TEXCBeBiMg6iFuOoRGAwO791K1qF4eK6yb4phsY6wNXYZdS1zHwi5lHF33K47si837mLgjelXNAb2iB-iJY1Wb98MqKoHzOeb7Sf-dR5qmCzU3FGJC_j6ODdFiQbNcuyHwj/s72-w200-h105-c/PS_Fun.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-908446809221300092</id><published>2024-05-30T15:29:00.000-05:00</published><updated>2026-10-23T17:50:28.669-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BGP"/><category scheme="http://www.blogger.com/atom/ns#" term="Firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="Juniper"/><title type='text'>Clear BGP Sessions</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZkwoM_kzyyKnGs4THZavmpQn3O4fTGEmHMyKhWvhV-v3GrNDwmV3GMTS24I-ZoWQKzHjXNeYPX52AEV1NDcCrKsYY12A35E0aoXt5VzGcE_AuTXpy6EsyJR2SrSKfNM_J0XzsanCpJ_ns/s1600/juniper_srx_series.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZkwoM_kzyyKnGs4THZavmpQn3O4fTGEmHMyKhWvhV-v3GrNDwmV3GMTS24I-ZoWQKzHjXNeYPX52AEV1NDcCrKsYY12A35E0aoXt5VzGcE_AuTXpy6EsyJR2SrSKfNM_J0XzsanCpJ_ns/s200/juniper_srx_series.jpg&quot; title=&quot;Force/ Trigger BGP Announcements.&quot; width=&quot;152&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0c343d;&quot;&gt;Problem:&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
How to reset BGP peering and re-announce BGP routes. &amp;nbsp;Inbound traffic is supposed  to traverse through the preferred ISP. &amp;nbsp;However, traffic splits between different ISPs after maintenance or short outages. &lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0c343d;&quot;&gt;Solution:&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
Clear BGP sessions to update BGP routes after an outage or maintenance.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0c343d;&quot;&gt;Command:&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;clear bgp neighbor soft&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This processes re-announces BGP routes to upstream neighbors.  Clear a BGP session whenever inbound/outbound policy changes are made; or after outages or maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;direction: ltr;&quot;&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; border-color: rgb(163, 163, 163); border-style: solid; border-width: 1pt; direction: ltr;&quot; valign=&quot;top&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-color: rgb(163, 163, 163); border-style: solid; border-width: 1pt; padding: 4pt; vertical-align: top; width: 2.0736in;&quot;&gt;&lt;div style=&quot;font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;
Before:&amp;nbsp; &lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWRaT86yDsXGa67rUOG3ILQzmflFx1FbH0PDZ4-HowQhkR8IM-47j6EbZHDMypk80aQM1CY0sIVf6j4rq5Dt-FpTU4cqGSkPQM4s0IuJrwHUqccDmKRAmzm5OxcjedWAoauPllYqybA5RR/s1600/BGP_Before.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWRaT86yDsXGa67rUOG3ILQzmflFx1FbH0PDZ4-HowQhkR8IM-47j6EbZHDMypk80aQM1CY0sIVf6j4rq5Dt-FpTU4cqGSkPQM4s0IuJrwHUqccDmKRAmzm5OxcjedWAoauPllYqybA5RR/s1600/BGP_Before.jpg&quot; title=&quot;BGP traffic after primary path goes down.&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-color: rgb(163, 163, 163); border-style: solid; border-width: 1pt; padding: 4pt; vertical-align: top; width: 1.7583in;&quot;&gt;&lt;div style=&quot;font-family: Calibri; font-size: 11pt; margin: 0in;&quot;&gt;
After:&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg25EQXbgy0L-dK1boA4t8H2kUrmbdxecMficZs4LE61t4Kp1FSVR-xQKcJX0MmzMOxkcXh_W7BsFUvCZBSxYfPNdkA_Eh7Bq9NMRiCNLrQMTKTlR2oMvT6ntJDWt-HUIzRP7Ci63zX26NB/s1600/BGP_After.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg25EQXbgy0L-dK1boA4t8H2kUrmbdxecMficZs4LE61t4Kp1FSVR-xQKcJX0MmzMOxkcXh_W7BsFUvCZBSxYfPNdkA_Eh7Bq9NMRiCNLrQMTKTlR2oMvT6ntJDWt-HUIzRP7Ci63zX26NB/s1600/BGP_After.jpg&quot; title=&quot;BGP traffic after re-announcing routes.&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div style=&quot;direction: ltr;&quot;&gt;&lt;br /&gt;&amp;nbsp;That&#39;s it!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/908446809221300092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2026/10/httpswww.stevenjordan.net202511clear-bgp-sessions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/908446809221300092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/908446809221300092'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2026/10/httpswww.stevenjordan.net202511clear-bgp-sessions.html' title='Clear BGP Sessions'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZkwoM_kzyyKnGs4THZavmpQn3O4fTGEmHMyKhWvhV-v3GrNDwmV3GMTS24I-ZoWQKzHjXNeYPX52AEV1NDcCrKsYY12A35E0aoXt5VzGcE_AuTXpy6EsyJR2SrSKfNM_J0XzsanCpJ_ns/s72-c/juniper_srx_series.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-1145849038771155716</id><published>2019-11-19T18:13:00.001-06:00</published><updated>2019-11-19T18:13:13.101-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory"/><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server"/><title type='text'>GPO Slow Link Detection</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtZWSHnY_DFenHDe7-VF9nCB5ZujH6cL4Cjj4VSbYo6BfoMPQDWRQ7GU00OQ7kPd0OGEfdRWgsGTruLXWkzuBnEN-WTyqcFgLG1WgaDIUwEPyGU18on6GkMQVpFXHx7ATfRii4F70M5y9g/s1600/ren_wtf.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;400&quot; data-original-width=&quot;500&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtZWSHnY_DFenHDe7-VF9nCB5ZujH6cL4Cjj4VSbYo6BfoMPQDWRQ7GU00OQ7kPd0OGEfdRWgsGTruLXWkzuBnEN-WTyqcFgLG1WgaDIUwEPyGU18on6GkMQVpFXHx7ATfRii4F70M5y9g/s200/ren_wtf.gif&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;i&gt;GPOs don&#39;t work on the VPN?&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Problem:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
Branch office or managed laptops are missing group policies.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Definition:&amp;nbsp; Group Policy Slow Link Detection&lt;/span&gt;&lt;/h4&gt;
Slow-link detection identifies slow connections:&amp;nbsp; Slow transfer rates or high latency.&amp;nbsp; This process can trigger applications to scale back feature and function.&amp;nbsp; For example, slow link detection may interfere with &lt;a href=&quot;https://www.stevenjordan.net/2013/03/dfs-namespace-problems-at-branch-offices.html&quot;&gt;distributed file systems (DFS)&lt;/a&gt;.&amp;nbsp; &amp;nbsp;In other situations, slow link detection can prevent remote workstations from receiving GPO updates.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Background:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
Wide-spread high-speed Internet connections (e.g., 100 Mbps) were uncommon before c. 2009.&amp;nbsp; Older network protocols were less efficient (&lt;a href=&quot;https://www.stevenjordan.net/2012/12/university-wisconsin-stout-wan-file.html&quot;&gt;e.g., SMB2 vs SMB3&lt;/a&gt;).&amp;nbsp; Slow-link detection was designed to compensate for poor connections.&amp;nbsp; This legacy process continues to impact modern network services (e.g., Windows 2019).&amp;nbsp; &lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Group Policy Slow Link Detection:&lt;/span&gt;&lt;/h4&gt;
Connection rates are measured between the domain controllers and the client.&amp;nbsp; Group policy changes are not distributed when this transfer rate is less than 500 kbps.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
500 kbps may seem reasonable -but it&#39;s not.&amp;nbsp;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Solution:&lt;/span&gt;&lt;/h4&gt;
Disable slow link detection:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;GPO:&amp;nbsp; Policies\Administrative Templates\System\Group Policy\Slow Link Detection&lt;br /&gt;
&lt;br /&gt;
Options:&amp;nbsp; Enable this policy.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Enter 0 to disable slow-link detection.&lt;/li&gt;
&lt;li&gt;Alternately, set high connection speed rate (e.g., 10000 Kbps is ~10 Mbps).&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
That&#39;s it!&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;References:&lt;/span&gt;&lt;/h4&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc978717(v=technet.10)&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc978717(v=technet.10)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/1145849038771155716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2019/11/gpo-slow-link-detection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1145849038771155716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1145849038771155716'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2019/11/gpo-slow-link-detection.html' title='GPO Slow Link Detection'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtZWSHnY_DFenHDe7-VF9nCB5ZujH6cL4Cjj4VSbYo6BfoMPQDWRQ7GU00OQ7kPd0OGEfdRWgsGTruLXWkzuBnEN-WTyqcFgLG1WgaDIUwEPyGU18on6GkMQVpFXHx7ATfRii4F70M5y9g/s72-c/ren_wtf.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-697172955593525466</id><published>2019-07-31T17:09:00.002-05:00</published><updated>2019-07-31T17:14:33.749-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server"/><title type='text'>Set the Network Location</title><content type='html'>&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;How to Assign Active Network Location with PowerShell.&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibD05SYPg8qo2yG5SqO56ywFNupeCHMknAdDiITCnB0L4QD7HfxmLtRgDplpFpguiiJfsGV4WLwIbT-ScT9xu_gNq3voffB5PLP5vWcWllLUrI2Nb0DcDqBjtd-VN0z8nHqxbVV_giyaUI/s1600/Windows_Network_Location.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;50&quot; data-original-width=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibD05SYPg8qo2yG5SqO56ywFNupeCHMknAdDiITCnB0L4QD7HfxmLtRgDplpFpguiiJfsGV4WLwIbT-ScT9xu_gNq3voffB5PLP5vWcWllLUrI2Nb0DcDqBjtd-VN0z8nHqxbVV_giyaUI/s1600/Windows_Network_Location.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Step 1:&amp;nbsp; Identify networks and associated NICs.&lt;/span&gt;&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;Get-NetConnectionProfile
&lt;/span&gt;
Name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: domain.com

InterfaceAlias&amp;nbsp; &amp;nbsp;: Ethernet (Domain)

InterfaceIndex&amp;nbsp; &amp;nbsp;: 1

NetworkCategory&amp;nbsp; : DomainAuthenticated

IPv4Connectivity : Internet

IPv6Connectivity : NoTraffic



Name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Unidentified network

InterfaceAlias&amp;nbsp; &amp;nbsp;: RDMA

InterfaceIndex&amp;nbsp; &amp;nbsp;: 2

NetworkCategory&amp;nbsp; : Public

IPv4Connectivity : NoTraffic

IPv6Connectivity : NoTraffic

&lt;/code&gt;&lt;/pre&gt;
The above examples shows two NICs that belong to two different networks.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Step 2.&amp;nbsp; Change the NetworkCategory:&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;box-sizing: inherit; overflow: auto;&quot;&gt;
&lt;code class=&quot;language-powershell&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc; font-family: inherit;&quot;&gt;Set-NetConnectionProfile -InterfaceIndex 13 -NetworkCategory Private&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
This example changes the active network for the NIC named RDMA.&amp;nbsp; The network location changed from Public to Private.&amp;nbsp; Confirm with Get-NetConnectionProfile.&lt;br /&gt;
&lt;br /&gt;
That&#39;t It!&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;References:&lt;/span&gt;&lt;/h4&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/module/netconnection/get-netconnectionprofile?view=win10-ps&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;https://docs.microsoft.com/en-us/powershell/module/netconnection/get-netconnectionprofile?view=win10-ps&lt;/span&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/697172955593525466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2019/07/set-network-location-with-powershell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/697172955593525466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/697172955593525466'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2019/07/set-network-location-with-powershell.html' title='Set the Network Location'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibD05SYPg8qo2yG5SqO56ywFNupeCHMknAdDiITCnB0L4QD7HfxmLtRgDplpFpguiiJfsGV4WLwIbT-ScT9xu_gNq3voffB5PLP5vWcWllLUrI2Nb0DcDqBjtd-VN0z8nHqxbVV_giyaUI/s72-c/Windows_Network_Location.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-1036635209339427242</id><published>2018-07-16T17:45:00.001-05:00</published><updated>2019-05-30T17:51:29.235-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory"/><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><title type='text'>Domain Controller Preference Order</title><content type='html'>&lt;script async=&quot;&quot; src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-8766500260063716&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot; data-ad-slot=&quot;4983744196&quot; style=&quot;display: block; text-align: center;&quot;&gt;&lt;/ins&gt;&lt;script&gt;&lt;/head&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Outline:&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
How to configure locator preferences for domain controllers (DCs).&amp;nbsp; How to set priority and weight on domain controllers.&amp;nbsp; Force clients to consistently connect to the same domain controller.&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Problem:&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Clients connect to different DCs within the same site.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;IPv4 DNS server search has no effect on this random behavior.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG4_flJ3QaT1eq5rdI8VXPLaj0KthTtniCJHQpcRSpYR2eFk0sFXunxmLZ9glxzVdBmiVIvkc0Q0OzB-w4hKuay1j3urDyVAu9q14s44cW7SLacobVKfeJeScAshu5385jgj0eHZOHbte6/s1600/AD.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;656&quot; data-original-width=&quot;500&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG4_flJ3QaT1eq5rdI8VXPLaj0KthTtniCJHQpcRSpYR2eFk0sFXunxmLZ9glxzVdBmiVIvkc0Q0OzB-w4hKuay1j3urDyVAu9q14s44cW7SLacobVKfeJeScAshu5385jgj0eHZOHbte6/s200/AD.jpg&quot; title=&quot;DC Client Connection Preferences&quot; width=&quot;151&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;Solution:&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;(a) Assign priority and weights to DNS SRV-records
via GPO (i.e., registry changes);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;(b) Or, change subnet topology for simple &lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;DC &lt;span style=&quot;background: white;&quot;&gt;Subnet Prioritization&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Assumptions:&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
All DCs are located within the same Active Directory (AD) site.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Domain Controller Priority within a Site&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Domain DNS SRV-records assign priority and weight values that determine DC preference.&amp;nbsp; Clients connect to the domain controller (DC) with the lowest priority
value.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;By default, priority for all DCs is set to zero.&amp;nbsp; For example, assume a site has two DCs:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;·&lt;span style=&quot;font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;DC-X with a priority of 0 (i.e., preferred).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;DC-Y with a priority of 2.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In this example, Windows clients connect to DC-X because it
has the lowest priority value.&amp;nbsp; Clients only connect to DC-Y when DC-X is unavailable (e.g., maintenance).&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Domain Controller Weights&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
What happens when all the DCs share the same priority?&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;In this situation, DC preference is determined by SRV-record weight values.&amp;nbsp; Unlike priority, clients prefer higher weight values over lower values.&lt;br /&gt;
&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
What happens if all DCs have the same weight values?&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;By default, DCs weight value is set to 100.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; Clients connect round-robin when all DCs use the same&amp;nbsp;&lt;/span&gt;priority and weight values.&lt;br /&gt;
&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
What happens when same-site DCs have the same priority and different weight values? &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;Weight is not absolute.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; W&lt;/span&gt;eight is proportionate.&amp;nbsp; In other words, clients may disproportionately&amp;nbsp;connect to any available DC.&lt;br /&gt;
&lt;br /&gt;
Clients are
more likely to connect to DCs with higher weights.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Clients are less likely to connect to lower weights
DCs.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; Weight preference uses a simple formula:&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;DC&amp;nbsp;&lt;/span&gt;weight (i.e., single server) divided by the sum of all DCs weights:&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeuP9HnRMbUidpEoMVkTAw4C9lSyj0UKeYKRy4nCUYP8Xn_Ej9X0akJRrZLFuAxvpwzzjTsImswRmXC754VLoFmOiI7fVMDdpaz-pJJp7ggmJmjUyTKAliH5evlYlQhwpYypys_gl7kl0x/s1600/DC-Client-Locator.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;66&quot; data-original-width=&quot;290&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeuP9HnRMbUidpEoMVkTAw4C9lSyj0UKeYKRy4nCUYP8Xn_Ej9X0akJRrZLFuAxvpwzzjTsImswRmXC754VLoFmOiI7fVMDdpaz-pJJp7ggmJmjUyTKAliH5evlYlQhwpYypys_gl7kl0x/s1600/DC-Client-Locator.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For Example, assume three DCs within a single AD site (Table
1):&lt;br /&gt;
&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;Table 1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;Determine domain controller preference based on weights.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184; width: 0px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.25pt;&quot; valign=&quot;top&quot; width=&quot;76&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Domain &lt;br /&gt;
Controller&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 55.0pt;&quot; valign=&quot;top&quot; width=&quot;73&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Priority&lt;br /&gt;
&amp;nbsp;(Default)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.7pt;&quot; valign=&quot;top&quot; width=&quot;110&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Weight&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 96.25pt;&quot; valign=&quot;top&quot; width=&quot;128&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Formula&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.05pt;&quot; valign=&quot;top&quot; width=&quot;124&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Connection Odds&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.25pt;&quot; valign=&quot;top&quot; width=&quot;76&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
DC10&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 55.0pt;&quot; valign=&quot;top&quot; width=&quot;73&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
0&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.7pt;&quot; valign=&quot;top&quot; width=&quot;110&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
10&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 96.25pt;&quot; valign=&quot;top&quot; width=&quot;128&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
10/(10+20+30)&lt;br /&gt;
&amp;nbsp;= 10/60 &lt;br /&gt;
&amp;nbsp;= 1/6&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.05pt;&quot; valign=&quot;top&quot; width=&quot;124&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
17%&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.25pt;&quot; valign=&quot;top&quot; width=&quot;76&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
DC20&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 55.0pt;&quot; valign=&quot;top&quot; width=&quot;73&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
0&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.7pt;&quot; valign=&quot;top&quot; width=&quot;110&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
20&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 96.25pt;&quot; valign=&quot;top&quot; width=&quot;128&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
20/(10+20+30)&lt;br /&gt;
&amp;nbsp;= 20/60 &lt;br /&gt;
&amp;nbsp;= 2/6&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.05pt;&quot; valign=&quot;top&quot; width=&quot;124&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
33%&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.25pt;&quot; valign=&quot;top&quot; width=&quot;76&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
DC30&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 55.0pt;&quot; valign=&quot;top&quot; width=&quot;73&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
0&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.7pt;&quot; valign=&quot;top&quot; width=&quot;110&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
30&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 96.25pt;&quot; valign=&quot;top&quot; width=&quot;128&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
30/(10+20+30)&lt;br /&gt;
&amp;nbsp;= 30/60 &lt;br /&gt;
&amp;nbsp;= 1/2&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.05pt;&quot; valign=&quot;top&quot; width=&quot;124&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
50%&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;Note:&amp;nbsp; This assumes
client and domain controllers reside in the same site and use the same priority values.&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;DC Preference Configuration&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Set
priority and weight via the registry:&lt;br /&gt;&lt;span style=&quot;color: #45818e;&quot;&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Create
new 32-bit DWORDs:&lt;br /&gt;&lt;span style=&quot;color: #45818e;&quot;&gt;LdapSrvWeight&lt;br /&gt;
LdapSrvPriority&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Assign DC priority and weight values.&lt;/li&gt;
&lt;li&gt;Restart
the NETLOGON service to publish to SRV records&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Subnet Prioritization&lt;/span&gt;&lt;/h4&gt;
Clients prefer to connect to DCs on the same IP subnet.&amp;nbsp; For example, let’s say we have a single AD
site.&amp;nbsp; This site consists of one Windows
10 client and two DCs (Table2):&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;Table2&lt;br /&gt;Subnet Prioritization&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.8pt;&quot; valign=&quot;top&quot; width=&quot;96&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Host&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 49.15pt;&quot; valign=&quot;top&quot; width=&quot;66&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Priority&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.75pt;&quot; valign=&quot;top&quot; width=&quot;65&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Weight&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
IP address&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Preferred DC&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.8pt;&quot; valign=&quot;top&quot; width=&quot;96&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
WIN-10&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 49.15pt;&quot; valign=&quot;top&quot; width=&quot;66&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.75pt;&quot; valign=&quot;top&quot; width=&quot;65&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
192.168.1.1/24&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.8pt;&quot; valign=&quot;top&quot; width=&quot;96&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
DC-X&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 49.15pt;&quot; valign=&quot;top&quot; width=&quot;66&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
0&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.75pt;&quot; valign=&quot;top&quot; width=&quot;65&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
100&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
192.168.1.100/24&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.8pt;&quot; valign=&quot;top&quot; width=&quot;96&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
DC-Y&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 49.15pt;&quot; valign=&quot;top&quot; width=&quot;66&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
0&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.75pt;&quot; valign=&quot;top&quot; width=&quot;65&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
100&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
192.168.2.100/24&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 116.9pt;&quot; valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
No&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp; Note:&amp;nbsp; All hosts reside in the same AD site.&amp;nbsp; DC01 and DC02 use default&amp;nbsp;weight and priority values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In this situation, all hosts belong to the same
AD-site.&amp;nbsp; Both DCs have the same preference
values (i.e., default).&amp;nbsp; &amp;nbsp;WIN-10 and DC-X belong to the same IP subnet.&amp;nbsp; However, DC-Y resides on a separate IP
subnet.&amp;nbsp; DC-X is the preferred DC.&amp;nbsp; Clients only connect to DC-y when DC-X is unavailable (e.g., maintenance).&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Additional Thoughts:&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
I recommend minimal registry changes –especially
to DCs.&amp;nbsp; Implement priority and weight changes with caution.&amp;nbsp; Also consider, registry changes
can be difficult to troubleshoot.&amp;nbsp; Therefore,
it’s prudent to push these changes out via GPO.&lt;br /&gt;
&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Subnet Prioritization seems to be the simplest approach.&amp;nbsp; That is, if you’re comfortable with
internetworking. &amp;nbsp;Simply create a new gateway.&amp;nbsp; Add routes.&amp;nbsp; Assign the subnet to the
second DC.&amp;nbsp; Done.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
That’s It!&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;References:&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;https://blogs.msmvps.com/acefekay/2010/01/03/the-dc-locator-process-the-logon-process-controlling-which-dc-responds-in-an-ad-site-and-srv-records/&quot;&gt;https://blogs.msmvps.com/acefekay/2010/01/03/the-dc-locator-process-the-logon-process-controlling-which-dc-responds-in-an-ad-site-and-srv-records/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc733142(v=ws.10)&quot;&gt;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc733142(v=ws.10)&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;http://techgenix.com/domain-controllers-weight-priority/&quot;&gt;http://techgenix.com/domain-controllers-weight-priority/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;https://www.blackmanticore.com/1a64083f14eccc1d32a755a850c2ea3d&quot;&gt;https://www.blackmanticore.com/1a64083f14eccc1d32a755a850c2ea3d&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc772592%28v%3dws.10%29&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc772592%28v%3dws.10%29&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/1036635209339427242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/07/domain-controller-preference-order.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1036635209339427242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1036635209339427242'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/07/domain-controller-preference-order.html' title='Domain Controller Preference Order'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG4_flJ3QaT1eq5rdI8VXPLaj0KthTtniCJHQpcRSpYR2eFk0sFXunxmLZ9glxzVdBmiVIvkc0Q0OzB-w4hKuay1j3urDyVAu9q14s44cW7SLacobVKfeJeScAshu5385jgj0eHZOHbte6/s72-c/AD.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-8000912813308177224</id><published>2018-07-10T20:38:00.002-05:00</published><updated>2019-05-30T17:54:57.959-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="RDP"/><title type='text'>Fix  Shutdown Event Tracker in RDP</title><content type='html'>&lt;script async=&quot;&quot; src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-8766500260063716&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot; data-ad-slot=&quot;4983744196&quot; style=&quot;display: block; text-align: center;&quot;&gt;&lt;/ins&gt;&lt;h4&gt;
&lt;span style=&quot;color: #7f6000;&quot;&gt;Problem:&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;background-color: white; color: #2a2a2a; font-family: &amp;quot;segoe ui&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;How to disable the unexpected shutdown prompt for remote desktop users.&amp;nbsp; The remote desktop server (RDS) displays the shutdown tracker warning after patching updates.&amp;nbsp; This shutdown error causes confusion and unnecessary help desk calls.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #2a2a2a; font-family: &amp;quot;segoe ui&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #7f6000;&quot;&gt;Solution:&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;background-color: white; color: #2a2a2a; font-family: &amp;quot;segoe ui&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;Remove local\Users group permissions from shutdown.exe:&amp;nbsp; c:\windows\system32\shutdown.exe&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ9Atvt04wJwPhxCWUCjHsH5p5GOg_g3Q1MPXJjSN6enqfEHKgXGLOdl4fD-GbKE-3TmWScRomjKcfKDaGypiK2nrPkOFpYcPj2Vl_vhR2G6I0fHyt2pmOxlDYphdV3L7AeZsujXp8Dgc_/s1600/shutdown.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Hide RDP shutdown warnings from domain users.&quot; border=&quot;0&quot; data-original-height=&quot;78&quot; data-original-width=&quot;333&quot; height=&quot;74&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ9Atvt04wJwPhxCWUCjHsH5p5GOg_g3Q1MPXJjSN6enqfEHKgXGLOdl4fD-GbKE-3TmWScRomjKcfKDaGypiK2nrPkOFpYcPj2Vl_vhR2G6I0fHyt2pmOxlDYphdV3L7AeZsujXp8Dgc_/s320/shutdown.PNG&quot; title=&quot;c:\windows\system32\shutdown.exe&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #2a2a2a; font-family: &amp;quot;segoe ui&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;Both local administrators and local users, have read and execute permissions, on this system file.&amp;nbsp; Remove the local user group in order to hide unwanted shutdown messages.&amp;nbsp; Also note, this change may require ownership changes from the Trusted Installer to the local administrator&amp;nbsp;group.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #2a2a2a; font-family: &amp;quot;segoe ui&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #2a2a2a; font-family: &amp;quot;segoe ui&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;verdana&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
That&#39;s It!&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/8000912813308177224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/07/fix-shutdown-event-tracker-in-rdp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8000912813308177224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8000912813308177224'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/07/fix-shutdown-event-tracker-in-rdp.html' title='Fix  Shutdown Event Tracker in RDP'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ9Atvt04wJwPhxCWUCjHsH5p5GOg_g3Q1MPXJjSN6enqfEHKgXGLOdl4fD-GbKE-3TmWScRomjKcfKDaGypiK2nrPkOFpYcPj2Vl_vhR2G6I0fHyt2pmOxlDYphdV3L7AeZsujXp8Dgc_/s72-c/shutdown.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-8054765990142773448</id><published>2018-06-23T22:31:00.001-05:00</published><updated>2019-05-30T17:59:41.682-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Juniper"/><category scheme="http://www.blogger.com/atom/ns#" term="Routing"/><category scheme="http://www.blogger.com/atom/ns#" term="SRX"/><title type='text'>SRX:  How to Copy &amp; Paste in JUNOS</title><content type='html'>&lt;script async=&quot;&quot; src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-8766500260063716&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot; data-ad-slot=&quot;4983744196&quot; style=&quot;display: block; text-align: center;&quot;&gt;&lt;/ins&gt;&lt;script&gt;&lt;/head&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;h4&gt;
&lt;span style=&quot;color: #7f6000;&quot;&gt;Problem:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4eoByV0KL5JwyNoXQfHUorkmi9GT-M4IcMDAhiJEAa2PqreffUaWpkeCZ_54BxZrdU6_C8rjFxkTkBQT9WpIwVHX0Tqb0HcLWfkkQdUe80OZBXLKRyTxFFLARedZOnouGCTGlBpJifcwv/s1600/juniper_srx_series.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;262&quot; data-original-width=&quot;200&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4eoByV0KL5JwyNoXQfHUorkmi9GT-M4IcMDAhiJEAa2PqreffUaWpkeCZ_54BxZrdU6_C8rjFxkTkBQT9WpIwVHX0Tqb0HcLWfkkQdUe80OZBXLKRyTxFFLARedZOnouGCTGlBpJifcwv/s200/juniper_srx_series.jpg&quot; title=&quot;Paste config text in JUNOS.&quot; width=&quot;152&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;color: #7f6000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
How copy and paste configuration text with Juniper SRX.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #7f6000;&quot;&gt;Solution:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;color: #7f6000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Paste text into the config with the &quot;load replace terminal&quot; command.&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Return to the router prompt with either CTRL-D or ^D.&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #7f6000;&quot;&gt;Example:&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;root@SRX# load replace terminal&amp;nbsp; &amp;nbsp;&amp;nbsp;
[Type ^D at a new line to end input]
interfaces 
&amp;nbsp; &amp;nbsp; ge-0/0/0 {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unit 0 {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; family inet {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; address 192.168.1.1/24;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; ge-0/0/1 {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unit 0 {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; family inet {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; address 192.168.1.2/24;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
load complete
[edit]
root@SRX# commit
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
That&#39;s It!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/8054765990142773448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/06/problem-how-copy-and-paste.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8054765990142773448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8054765990142773448'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/06/problem-how-copy-and-paste.html' title='SRX:  How to Copy &amp; Paste in JUNOS'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4eoByV0KL5JwyNoXQfHUorkmi9GT-M4IcMDAhiJEAa2PqreffUaWpkeCZ_54BxZrdU6_C8rjFxkTkBQT9WpIwVHX0Tqb0HcLWfkkQdUe80OZBXLKRyTxFFLARedZOnouGCTGlBpJifcwv/s72-c/juniper_srx_series.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-1871495209240424172</id><published>2018-06-23T21:53:00.001-05:00</published><updated>2018-06-23T21:53:16.990-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Juniper"/><category scheme="http://www.blogger.com/atom/ns#" term="Routing"/><title type='text'>SSH Between SRX Nodes</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4eoByV0KL5JwyNoXQfHUorkmi9GT-M4IcMDAhiJEAa2PqreffUaWpkeCZ_54BxZrdU6_C8rjFxkTkBQT9WpIwVHX0Tqb0HcLWfkkQdUe80OZBXLKRyTxFFLARedZOnouGCTGlBpJifcwv/s1600/juniper_srx_series.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;262&quot; data-original-width=&quot;200&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4eoByV0KL5JwyNoXQfHUorkmi9GT-M4IcMDAhiJEAa2PqreffUaWpkeCZ_54BxZrdU6_C8rjFxkTkBQT9WpIwVHX0Tqb0HcLWfkkQdUe80OZBXLKRyTxFFLARedZOnouGCTGlBpJifcwv/s200/juniper_srx_series.jpg&quot; title=&quot;SSH between SRX cluster nodes.&quot; width=&quot;152&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #7f6000;&quot;&gt;Problem:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
How to SSH from Node0 to Node 1 within a Juniper SRX cluster.&lt;br /&gt;
How to connect from the primary node to the secondary node.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #7f6000;&quot;&gt;Solution:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;SRX 300 Series:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;{primary:node0}&lt;br /&gt;&amp;nbsp;smj@SRX&amp;gt; request routing-engine login node 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;SRX 1500 Series:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;smj@SRX% rlogin -T node1&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
That&#39;s It!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/1871495209240424172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/06/ssh-between-srx-nodes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1871495209240424172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/1871495209240424172'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/06/ssh-between-srx-nodes.html' title='SSH Between SRX Nodes'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4eoByV0KL5JwyNoXQfHUorkmi9GT-M4IcMDAhiJEAa2PqreffUaWpkeCZ_54BxZrdU6_C8rjFxkTkBQT9WpIwVHX0Tqb0HcLWfkkQdUe80OZBXLKRyTxFFLARedZOnouGCTGlBpJifcwv/s72-c/juniper_srx_series.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-5237504880241113541</id><published>2018-06-22T17:29:00.000-05:00</published><updated>2018-06-22T17:35:28.833-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="PKI"/><category scheme="http://www.blogger.com/atom/ns#" term="Virtual Smart Cards"/><title type='text'>How to Setup a Virtual Smart Card</title><content type='html'>&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL541jCfn_sfZm6633i2Yh8SmdUA5TXMRDI8P5P7ut6PuL8A9NynSYyV7vcA5mTFjvp3NhcFaEFu-USP8lwLV2K9rSkF_Hefjk21NCyiXz7RRGjcL5ew_tEfmLfHw3GrkQKDHptsm9qp_P/s1600/WIN2016.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;421&quot; data-original-width=&quot;292&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL541jCfn_sfZm6633i2Yh8SmdUA5TXMRDI8P5P7ut6PuL8A9NynSYyV7vcA5mTFjvp3NhcFaEFu-USP8lwLV2K9rSkF_Hefjk21NCyiXz7RRGjcL5ew_tEfmLfHw3GrkQKDHptsm9qp_P/s200/WIN2016.PNG&quot; width=&quot;138&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Fun with Virtual Smart Cards!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Outline:&lt;/span&gt;&lt;/h4&gt;
Steps on how to enable a virtual smart card.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Assumptions:&lt;/span&gt;&lt;/h4&gt;
Virtual smart cards require a computer with an initialized TPM.&amp;nbsp; N.B., Windows 10 initializes the TPM by default.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Virtual Smart Card Configuration:&lt;/span&gt;&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;tpmvscmgr.exe create /name VSC /pin prompt /puk prompt /adminkey random /generate&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Reset the Virtual Smart Card&lt;/span&gt;:&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;tpmvscmgr.exe destroy /instance root\smartcardreader\0000&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;PINs, PUKs, and Keys&lt;/span&gt;:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Smart Card Personal Identity Number (PIN).&amp;nbsp; The PIN is essentially a password.&amp;nbsp; The PIN can be changed by the end user from any domain computer:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;CRTL-ALT-Delete → Change Password → Change PIN.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Smart Card Personal Unlock Key (PUK).&amp;nbsp; Windows locks the PIN after three unsuccessful attempts.&amp;nbsp; End users can use their PUK to unblock their PIN:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;CRTL-ALT-Delete → Change Password → Unblock Smart Card.&lt;br /&gt;&lt;br /&gt;The PUK is optional but I recommend it.&amp;nbsp; &amp;nbsp;It&#39;s simply too easy to lock the PIN!&amp;nbsp; &lt;br /&gt;&lt;br /&gt;The PUK changes the PIN.&amp;nbsp; Keep the PUK safe and only use it when its absolutely necessary.&lt;br /&gt;&lt;br /&gt;In addition, Windows does not include native tools to change the PUK. In order to choose a new PUK, the virtual smart card must first be deleted (i.e., destroyed) and then recreated.&amp;nbsp; Of course, this process deletes all certificates on the smart card.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Admin Key.&amp;nbsp; The key benefit to the admin key is that it allows Administrators to generate certificate keys for enrolling-on-the-behalf of others.&amp;nbsp; Organizations that do not use enrollment stations should simply generate a random admin key.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394; font-family: inherit;&quot;&gt;References:&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;https://docs.microsoft.com/en-us/windows/security/identity-protection/virtual-smart-cards/virtual-smart-card-get-started&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/5237504880241113541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/06/how-to-setup-virtual-smart-card.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/5237504880241113541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/5237504880241113541'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/06/how-to-setup-virtual-smart-card.html' title='How to Setup a Virtual Smart Card'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL541jCfn_sfZm6633i2Yh8SmdUA5TXMRDI8P5P7ut6PuL8A9NynSYyV7vcA5mTFjvp3NhcFaEFu-USP8lwLV2K9rSkF_Hefjk21NCyiXz7RRGjcL5ew_tEfmLfHw3GrkQKDHptsm9qp_P/s72-c/WIN2016.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-4864240556366006952</id><published>2018-05-08T07:01:00.000-05:00</published><updated>2018-05-08T07:01:07.493-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="WSUS"/><title type='text'>Quickly Uninstall Single KB Update</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL541jCfn_sfZm6633i2Yh8SmdUA5TXMRDI8P5P7ut6PuL8A9NynSYyV7vcA5mTFjvp3NhcFaEFu-USP8lwLV2K9rSkF_Hefjk21NCyiXz7RRGjcL5ew_tEfmLfHw3GrkQKDHptsm9qp_P/s1600/WIN2016.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;421&quot; data-original-width=&quot;292&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL541jCfn_sfZm6633i2Yh8SmdUA5TXMRDI8P5P7ut6PuL8A9NynSYyV7vcA5mTFjvp3NhcFaEFu-USP8lwLV2K9rSkF_Hefjk21NCyiXz7RRGjcL5ew_tEfmLfHw3GrkQKDHptsm9qp_P/s200/WIN2016.PNG&quot; title=&quot;How to uninstall updates via command line.&quot; width=&quot;138&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Problem:&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
Uninstalling Windows Updates is a pain in the neck!&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The Windows Update GUI provides a long list of KB updates.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Updates are organized by date and not by KB numbers.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;It lacks a built-in search function!&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggx7CDpb9yqjuJBBl6qTXQXDRuF0UKvI9R6wDkVhjQfWLD5ka4g1W1IaosYNrS2qyWtxX_I2R6_zTqO12nAgAPf2LdUhk-7dDgSH4svogghTJv48aVxkVJgjRSON8qwAODzdZFWeJngNo8/s1600/Update-History.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;868&quot; data-original-width=&quot;794&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggx7CDpb9yqjuJBBl6qTXQXDRuF0UKvI9R6wDkVhjQfWLD5ka4g1W1IaosYNrS2qyWtxX_I2R6_zTqO12nAgAPf2LdUhk-7dDgSH4svogghTJv48aVxkVJgjRSON8qwAODzdZFWeJngNo8/s320/Update-History.PNG&quot; title=&quot;Search for specific Windows updates.&quot; width=&quot;291&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 1.&amp;nbsp; Windows Update History:&lt;br /&gt;
No search for you (CRL+F)!&amp;nbsp; &amp;nbsp;:(&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Solution:&lt;/span&gt;&lt;/h4&gt;
Use the command line to search and uninstall specific updates.&lt;br /&gt;
&lt;br /&gt;
List installed patches:&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;wmic qfe list&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Uninstall specific patch:&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;wusa /uninstall /kb:xxxxx&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
That&#39;s It!</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/4864240556366006952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/05/quickly-uninstall-single-kb-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/4864240556366006952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/4864240556366006952'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/05/quickly-uninstall-single-kb-update.html' title='Quickly Uninstall Single KB Update'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL541jCfn_sfZm6633i2Yh8SmdUA5TXMRDI8P5P7ut6PuL8A9NynSYyV7vcA5mTFjvp3NhcFaEFu-USP8lwLV2K9rSkF_Hefjk21NCyiXz7RRGjcL5ew_tEfmLfHw3GrkQKDHptsm9qp_P/s72-c/WIN2016.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-7067489303559366474</id><published>2018-05-07T20:33:00.000-05:00</published><updated>2018-05-07T20:33:02.528-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network Security"/><category scheme="http://www.blogger.com/atom/ns#" term="PKI"/><category scheme="http://www.blogger.com/atom/ns#" term="Yubikey"/><title type='text'>Container Does Not Exist on the Smart Card</title><content type='html'>&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgniQMFskg9l0bpC9uv0pLzwSXpFDgQwee1Wh30Oqh2k6FCgaUjySdjaCApVtyC3LkAeTwW-LyEc3yCQOG8pimxAgOhoaatO8GauL75qNiVrTn1WbhaRw_AcRea5KZLeQcvYpRXIh2-uWbQ/s1600/PKI-series.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;586&quot; data-original-width=&quot;450&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgniQMFskg9l0bpC9uv0pLzwSXpFDgQwee1Wh30Oqh2k6FCgaUjySdjaCApVtyC3LkAeTwW-LyEc3yCQOG8pimxAgOhoaatO8GauL75qNiVrTn1WbhaRw_AcRea5KZLeQcvYpRXIh2-uWbQ/s200/PKI-series.JPG&quot; width=&quot;153&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;font-size: 12.8px; text-align: center;&quot;&gt;T-Shoot Yubikey Minidriver&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Problem:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
RDP fails to authenticate Yubikey smart card.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Error:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
The requested key container does not exist on the smart card (Figure 1).&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh18saxdbVwLcWad2lWTlBsVl6AXJMdx_MtwYd1H4FTOdhFREjycPc08KlKtoY-AHuc_rx-UZ5NPbxeZLtQRfXRcv97eIxiFCvKLL68kZqjB5DX7507Rg7Ptc7SwyGPYCIzsWoFmlCq4qcM/s1600/key-container-does-not-exist.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;387&quot; data-original-width=&quot;487&quot; height=&quot;158&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh18saxdbVwLcWad2lWTlBsVl6AXJMdx_MtwYd1H4FTOdhFREjycPc08KlKtoY-AHuc_rx-UZ5NPbxeZLtQRfXRcv97eIxiFCvKLL68kZqjB5DX7507Rg7Ptc7SwyGPYCIzsWoFmlCq4qcM/s200/key-container-does-not-exist.PNG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 1.&amp;nbsp; Smart card container error.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Assumptions:&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Yubikey runs as PIV smart card.&lt;/li&gt;
&lt;li&gt;Smart card has multiple authentication certificates.&lt;/li&gt;
&lt;li&gt;Certificates reside on slots 81-95.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Solution:&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
By default, Windows uses the&amp;nbsp;NIST
SP 800-73 PIV smart card driver.&amp;nbsp; Multiple certificates require the Yubikey smart card Minidriver.&amp;nbsp; Install this driver on both the client and the server.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Important:&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
The Yubikey smart card&amp;nbsp;MSI package does not install the Minidriver on remote servers or virtual machines.&amp;nbsp; Nor does it provide an error.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The MSI installer only works when a smart card is directly connected (e.g., workstation).&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
To reiterate, the MSI package only updates the NIST driver when a smart card is attached to the local USB port.&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Instead, use the Yubikey limited INF installer on VMs or via RDP.&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAWMrikdR5wMJWPEOKwvoNRaiQYFAWfw3EU-W9GacdzFUkBhR0HB0-F1utEJF5fTpJ6Y_5iLhYv8Ol7RFJhbyCx1k5i954JKs643J47anjTRx5gFeeMaLNcVat5SHdK-mdJllk5isJf9KZ/s1600/ykmd-inf-install.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;158&quot; data-original-width=&quot;357&quot; height=&quot;88&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAWMrikdR5wMJWPEOKwvoNRaiQYFAWfw3EU-W9GacdzFUkBhR0HB0-F1utEJF5fTpJ6Y_5iLhYv8Ol7RFJhbyCx1k5i954JKs643J47anjTRx5gFeeMaLNcVat5SHdK-mdJllk5isJf9KZ/s200/ykmd-inf-install.PNG&quot; title=&quot;Install the Yubikey Minidriver on a server.&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 2.&amp;nbsp; How to Install the Yubikey Minidriver.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Right-click on ykmd.inf.&amp;nbsp; Left-click on install.&amp;nbsp; That&#39;s It!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/7067489303559366474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/05/container-does-not-exist-on-smart-card.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/7067489303559366474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/7067489303559366474'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/05/container-does-not-exist-on-smart-card.html' title='Container Does Not Exist on the Smart Card'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgniQMFskg9l0bpC9uv0pLzwSXpFDgQwee1Wh30Oqh2k6FCgaUjySdjaCApVtyC3LkAeTwW-LyEc3yCQOG8pimxAgOhoaatO8GauL75qNiVrTn1WbhaRw_AcRea5KZLeQcvYpRXIh2-uWbQ/s72-c/PKI-series.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-4918746311399268353</id><published>2018-02-23T18:17:00.000-06:00</published><updated>2018-02-23T18:39:16.591-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="RDP"/><title type='text'>Fix Chrome Extensions in RDP</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YEDDSluYnja8bbkmz9-hALMxFUSZP8Yoxx3Eu0ZaOafM1ljECOTTq8lIYkpf6n40uNIq2EEgaWEmD5Mzswzl0NUD5umnmdWvenlhsvlOhZ_buWhnLLYZlMv5XDhNKinw2Yp5DC0V_4qD/s1600/RDPSeries.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;580&quot; data-original-width=&quot;491&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YEDDSluYnja8bbkmz9-hALMxFUSZP8Yoxx3Eu0ZaOafM1ljECOTTq8lIYkpf6n40uNIq2EEgaWEmD5Mzswzl0NUD5umnmdWvenlhsvlOhZ_buWhnLLYZlMv5XDhNKinw2Yp5DC0V_4qD/s200/RDPSeries.JPG&quot; width=&quot;168&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Problem:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
RDP users cannot install Chrome extensions from the Chrome Web Store.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Errors:&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Could not install package&lt;/li&gt;
&lt;li&gt;COULD_NOT_GET_TEMP_DIRECTORY&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuCNC2GDM2RY10FP-bwsJm4_v0AdOCODHTS78E_TKtORMDiTdJERPvEe8RbQGDXmMrEFqHf4TsOIXXXBaPl8XpzpiJ8P9KK5VflmiHuz_2iKaQRo6eWjs86nb444slNMtIde53p5ngIA9_/s1600/Chrome_TEMP1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;151&quot; data-original-width=&quot;321&quot; height=&quot;93&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuCNC2GDM2RY10FP-bwsJm4_v0AdOCODHTS78E_TKtORMDiTdJERPvEe8RbQGDXmMrEFqHf4TsOIXXXBaPl8XpzpiJ8P9KK5VflmiHuz_2iKaQRo6eWjs86nb444slNMtIde53p5ngIA9_/s200/Chrome_TEMP1.PNG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 1:&amp;nbsp; Chrome Temp Directory Error&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Solution:&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 8.0pt; margin-left: 8.25pt; margin-right: 8.25pt; margin-top: 0in;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;User logs
onto RDP.&amp;nbsp; User does not open Chrome.&lt;/li&gt;
&lt;li&gt;Admin creates a new directory on the system drive.&amp;nbsp; This new directory holds user Chrome AppData.&amp;nbsp; For example:&amp;nbsp; 
c:\\mkdir c:\Temp\RDP\&lt;/li&gt;
&lt;li&gt;Move user’s Chrome AppData to the new directory.&amp;nbsp; For example:&lt;br /&gt;
&lt;code&gt;c:\move &quot;c:\users\stevenjordan\AppData\Local\Google\Chrome&quot; &quot;c:\temp\RDP\stevenjordan\&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete
original folder if necessary.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;Create new
symbolic junction where the old data was located.&amp;nbsp; This junction links to
the new location:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;
c:\mklink /j c:\users\stevenjordan\AppData\Local\Google\Chrome\
&quot;c:\temp\RDP\stevenjordan\Chrome\&quot;

Junction created for c:\users\smjordan\AppData\Local\Google\Chrome\
=== c:\temp\RDP\stevenjordan\Chrome\&lt;/code&gt;&lt;/pre&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-VZcJOBGQmgJLORPvvDZK0MPARUJSiG_jq2S_oBcUzdLWNJc1oeHbdPqfUfJsBiXjrWYY-sQqodVnjIFfp4_-_ngpm5g8XYXVnjZJV2_YvekCsGgOuQ6zsyjsrepcXQnb9PKO0dSD4WSt/s1600/junction_link.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;126&quot; data-original-width=&quot;462&quot; height=&quot;108&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-VZcJOBGQmgJLORPvvDZK0MPARUJSiG_jq2S_oBcUzdLWNJc1oeHbdPqfUfJsBiXjrWYY-sQqodVnjIFfp4_-_ngpm5g8XYXVnjZJV2_YvekCsGgOuQ6zsyjsrepcXQnb9PKO0dSD4WSt/s400/junction_link.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 2:&amp;nbsp; New Symbolic Junction for Chrome extension.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/br&gt;
&lt;/br&gt;
&lt;/br&gt;
&lt;/br&gt;
&lt;/br&gt;
&lt;/br&gt;
&lt;/br&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Analysis:&lt;/span&gt;&lt;/h4&gt;
Chrome extensions reference DOS device paths.&amp;nbsp; Let&#39;s consider how dynamic profile disks use symbolic junctions that point to different disks:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;c:\Users  dir 
02/23/2018&amp;nbsp; 11:29 AM&amp;nbsp; bgates {\??\Volume{a5ae22c7-18b8-11e8-968e-00145de79140}
&lt;/code&gt;&lt;/pre&gt;
The junction link causes the problem.&amp;nbsp; Ironically, a second junction link fixes this issue:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
c:\Users\bgates\AppData\Local\Google dir
 
 Directory of c:\Users\bgates\AppData\Local\Google

02/20/2018  10:58 AM   DIR
02/20/2018  10:58 AM   DIR
02/20/2018  10:58 AM   JUNCTION  Chrome c:\temp\RDP\bgates\Chrome
09/16/2015  07:46 AM   DIR       Chrome Cleanup Tool
05/14/2014  06:09 AM   DIR       CrashReports
03/11/2014  04:26 PM   DIR       Google Talk
12/04/2017  02:27 AM   DIR       Software Reporter Tool

0 File(s)              0 bytes
7 Dir(s)  36,942,458,880 bytes free
&lt;/code&gt;&lt;/pre&gt;


Note how the new junction link points to the system drive.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Additional Thoughts:&lt;/span&gt;&lt;/h4&gt;
This solution is implemented on a per-user basis.&amp;nbsp; It does not universally &quot;fix&quot; Chrome extensions for all RDP users.&amp;nbsp;&amp;nbsp;Nonetheless, it may be a good fit because it narrows the scope of untrusted applications.&lt;br /&gt;
&lt;br /&gt;
Alternatively, use Group Policy to change user environmental variables:&lt;br /&gt;
&lt;br /&gt;
Group Policy&lt;br /&gt;
→ Computer Configuration&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;→ Administrative Templates&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ System&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → Group Policy&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ Configure user Group Policy loopback processing mode:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Enabled:&amp;nbsp; On&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mode:&amp;nbsp; Merge&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;→ User Configuration&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;→ Windows Settings&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ Preferences&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → Environment (right-click) → New&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;→ New Environment Properties:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Action:&amp;nbsp; Update&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; User Variable=Check&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Name=Temp&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Value=c:\Temp\RDP\%USERNAME%&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; → Environment (right-click) → New&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Action:&amp;nbsp; Update&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; User Variable=Check&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Name=TMP&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Value=c:\Temp\RDP\%USERNAME%&lt;br /&gt;
&lt;br /&gt;
This change has a wider-scoping impact.&amp;nbsp; It affects all related AppData programs -not just Chrome.&amp;nbsp; It impacts all RDP users (without GP filtering).&amp;nbsp; Avoid the system drive if possible -use a secondary disk instead.&amp;nbsp; In addition, loopback processing applies user configurations to computer objects (i.e., RDP servers).&lt;br /&gt;
&lt;br /&gt;
That&#39;s It!&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;a href=&quot;https://blogs.technet.microsoft.com/grouppolicy/2009/05/13/environment-variables-in-gp-preferences/&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;https://blogs.technet.microsoft.com/grouppolicy/2009/05/13/environment-variables-in-gp-preferences/ &lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;a href=&quot;https://devtidbits.com/2009/09/07/windows-file-junctions-symbolic-links-and-hard-links&quot;&gt;https://devtidbits.com/2009/09/07/windows-file-junctions-symbolic-links-and-hard-links&lt;/a&gt;/
&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogs.msdn.microsoft.com/jeremykuhne/2016/04/21/path-format-overview/&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;https://blogs.msdn.microsoft.com/jeremykuhne/2016/04/21/path-format-overview/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blog.brankovucinec.com/2017/01/09/users-cant-install-google-chrome-extensions-on-rds-farm/&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;https://blog.brankovucinec.com/2017/01/09/users-cant-install-google-chrome-extensions-on-rds-farm/&lt;/span&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/4918746311399268353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/02/fix-chrome-extensions-in-rdp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/4918746311399268353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/4918746311399268353'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/02/fix-chrome-extensions-in-rdp.html' title='Fix Chrome Extensions in RDP'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YEDDSluYnja8bbkmz9-hALMxFUSZP8Yoxx3Eu0ZaOafM1ljECOTTq8lIYkpf6n40uNIq2EEgaWEmD5Mzswzl0NUD5umnmdWvenlhsvlOhZ_buWhnLLYZlMv5XDhNKinw2Yp5DC0V_4qD/s72-c/RDPSeries.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-8724573167073122931</id><published>2018-02-13T15:28:00.002-06:00</published><updated>2018-02-13T15:47:07.788-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Hyper-V"/><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><title type='text'>Fix Broken Checkpoints</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJz1vJTEsECJRjAlmq8XB8tu22mmYmP58_NMdJTmJ6gSeAutjevgOmcugKkFVt3Zba7qKMT7qtrrqDPKGbyO_9iRz51qFcljjKGP82Ko3wt700uhuvEVAeFJdUFxCVxmhK6UrAh_W9CYbM/s1600/WIN2016.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;421&quot; data-original-width=&quot;292&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJz1vJTEsECJRjAlmq8XB8tu22mmYmP58_NMdJTmJ6gSeAutjevgOmcugKkFVt3Zba7qKMT7qtrrqDPKGbyO_9iRz51qFcljjKGP82Ko3wt700uhuvEVAeFJdUFxCVxmhK6UrAh_W9CYbM/s200/WIN2016.PNG&quot; title=&quot;VM is missing an option to delete its checkpoint.&quot; width=&quot;138&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h4 style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Summary:&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
How to delete Hyper-V checkpoints that cannot be deleted.&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Problem:&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
Checkpoint cannot be removed from the Hyper-V Manager.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0c343d;&quot;&gt;Symptoms:&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Hyper-V Manager shows a checkpoint.&amp;nbsp; No option to remove checkpoint.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;VM disk directory has VHDX and AVHD files:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgF0c28Yb77IliPfmd70bulmZ9vyk7oTk46MVnlgvl4P92zUjkID72Ic9Y1ktp5mMCMe22_vLCksldA0iwrBOdSgkfSQGsaMNg0cjK6uSQdoICYFnlCyW-DVOzM6I0K7_aDoTM9I14dGOg/s1600/avhdx.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;44&quot; data-original-width=&quot;581&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgF0c28Yb77IliPfmd70bulmZ9vyk7oTk46MVnlgvl4P92zUjkID72Ic9Y1ktp5mMCMe22_vLCksldA0iwrBOdSgkfSQGsaMNg0cjK6uSQdoICYFnlCyW-DVOzM6I0K7_aDoTM9I14dGOg/s1600/avhdx.png&quot; title=&quot;AVHD files indicate VM Checkpoints&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Solution:&lt;/span&gt;&lt;/h4&gt;
1.  Use PowerShell to view existing snapshot:
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;PS C:\Users Get-VMSnapshot -VMName tfs.stevenjordan.net

VMName  Name    SnapshotType CreationTime           
------  ----    ------------ ------------          
tfs     tfs     (2/13/2018 - 2:52:36 PM) Standard
&lt;/code&gt;&lt;/pre&gt;
2.  Remove VM-Snapshot.
&lt;br /&gt;
&lt;code&gt;
PS C:\User Get-VMSnapshot -VMName tfs | Remove-VMSnapshot
&lt;/code&gt;
3.  Confirm Snapshot has been removed.
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
PS C:\Users Get-VMSnapshot -VMName tfs
PS C:\Users
&lt;/code&gt;&lt;/pre&gt;
That&#39;s It!</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/8724573167073122931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/02/fix-broken-checkpoints.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8724573167073122931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8724573167073122931'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/02/fix-broken-checkpoints.html' title='Fix Broken Checkpoints'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJz1vJTEsECJRjAlmq8XB8tu22mmYmP58_NMdJTmJ6gSeAutjevgOmcugKkFVt3Zba7qKMT7qtrrqDPKGbyO_9iRz51qFcljjKGP82Ko3wt700uhuvEVAeFJdUFxCVxmhK6UrAh_W9CYbM/s72-c/WIN2016.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6696977109054687352.post-8984445285917051839</id><published>2018-02-02T18:34:00.000-06:00</published><updated>2018-02-06T18:31:10.809-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BranchCache"/><category scheme="http://www.blogger.com/atom/ns#" term="DFS"/><category scheme="http://www.blogger.com/atom/ns#" term="Network Administration"/><title type='text'> How to Setup BranchCache</title><content type='html'>&lt;head&gt;
&lt;style type=&quot;text/css&quot;&gt;
.auto-style1 {
 text-align: center;
}
.auto-style2 {
 font-family: &quot;Courier New&quot;, Courier, monospace;
 font-size: x-small;
}
.auto-style3 {
 font-family: &quot;Courier New&quot;, Courier, monospace;
 font-size: x-small;
 text-align: center;
}
.auto-style5 {
 color: #808080;
}
.auto-style6 {
 font-family: &quot;Courier New&quot;, Courier, monospace;
 font-size: x-small;
 text-align: center;
 color: #808080;
}
.auto-style7 {
 font-family: &quot;Courier New&quot;, Courier, monospace;
 font-size: x-small;
 color: #808080;
}
.auto-style8 {
 font-family: &quot;Courier New&quot;, Courier, monospace;
 font-size: x-small;
 text-align: left;
 color: #808080;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWjm6mt45MkABiPxe2sh4PkuTb0xroeHwDnpC9qdiO0LHOWVaWIvK348e_Vf0DNZop_OeLLjvxdtHYjMbZ6LvlYxPpi5kTpcduf4PMTKUvLVZXy0n179joZorelwwgEQ5-4oc2_xq9LiNz/s1600/BC2016-B.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;417&quot; data-original-width=&quot;294&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWjm6mt45MkABiPxe2sh4PkuTb0xroeHwDnpC9qdiO0LHOWVaWIvK348e_Vf0DNZop_OeLLjvxdtHYjMbZ6LvlYxPpi5kTpcduf4PMTKUvLVZXy0n179joZorelwwgEQ5-4oc2_xq9LiNz/s200/BC2016-B.PNG&quot; width=&quot;140&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4 style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #134f5c;&quot;&gt;Guide&lt;/span&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
Quick and Easy BranchCache Setup.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Overview:&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/h4&gt;
&amp;nbsp;This article provides instructions on how to implement BranchCache.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Topology:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Three office locations:&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Primary office in Atlanta (ATL).&amp;nbsp; &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Branch offices in Chicago (CHI) and Washington D.C (DCA).&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;CHI and ATL host local file servers (i.e., hosted cache mode).&lt;/li&gt;
&lt;li&gt;DCA is the only office without a dedicated file server (i.e., distributed cache mode).&lt;/li&gt;
&lt;li&gt;All clients use Windows Enterprise.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-left: 1em; margin-right: 1em; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHTNtbWTiR7fEnH7uuH9fkTySzTTVHy3xaI4uJ9F8pHgQ3azf37GPeAbnDxooWBfapdmyWbo_ozWzQnUUNRkoUPb9dG2r4Sye25ZkBf7Uc_6WUcBVciSL6YyNbCAq1l7-vrUe18C5fe1q/s1600/BranchCache+Network.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHTNtbWTiR7fEnH7uuH9fkTySzTTVHy3xaI4uJ9F8pHgQ3azf37GPeAbnDxooWBfapdmyWbo_ozWzQnUUNRkoUPb9dG2r4Sye25ZkBf7Uc_6WUcBVciSL6YyNbCAq1l7-vrUe18C5fe1q/s1600/BranchCache+Network.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;756&quot; data-original-width=&quot;1004&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHTNtbWTiR7fEnH7uuH9fkTySzTTVHy3xaI4uJ9F8pHgQ3azf37GPeAbnDxooWBfapdmyWbo_ozWzQnUUNRkoUPb9dG2r4Sye25ZkBf7Uc_6WUcBVciSL6YyNbCAq1l7-vrUe18C5fe1q/s320/BranchCache+Network.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4 style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Implement BranchCache:&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Install the BranchCache Role and Feature.&lt;/li&gt;
&lt;li&gt;BranchCace SSL Certificates.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;BranchCache Group policy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Step 1.&amp;nbsp; Add Roles and Features.&lt;/span&gt;&lt;/h4&gt;
Run the &lt;i&gt;Add Roles and Features Wizard&lt;/i&gt; on each file server.&amp;nbsp; Install the (a) BranchCache for Network Files Role; and (b)the BranchCache Feature.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #3d85c6;&quot;&gt;PowerShell&lt;/span&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;code&gt;Install-WindowsFeature BranchCache -IncludeManagementTools
Enable-BCHostedServer -RegisterSCP&lt;/code&gt;

&lt;h4 style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Step 2.&amp;nbsp; Adjust Caching.&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
BranchCache stores files in two directories:&amp;nbsp; (a) HashCache and (b) DataCache.&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
File servers store file hashes in the HashCache directory.&amp;nbsp; Remote Hosted Cache servers, as well as Distributed Cache clients, use files hashes for content tracking and updates.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The DataCache directory stores content derived from the hash.&amp;nbsp; This directory contains cached remote content (i.e., files) that are served to local clients.&amp;nbsp; Both directories are stored on the system drive -not good!&lt;/div&gt;
&lt;h4 style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;color: #0b5394; font-weight: normal;&quot;&gt;Adjust the Cache Location:&lt;/span&gt;&lt;/h4&gt;
&lt;code&gt;netsh branchcache set publicationcache directory=D:\BranchCache\
netsh branchcache set localcache directory=D:\LocalCache\&lt;/code&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;
&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The default HashCache size is a measly 1% of the system disk.&amp;nbsp; The Data Cache is slightly improved with 5% of total disk.&amp;nbsp; Now consider that most system drives hold less that than 100GB.&amp;nbsp; 5GB does not provide enough storage to make BrachCache worthwhile.&amp;nbsp; Let&#39;s make BrachCache useful:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; font-family: &amp;quot;Times New Roman&amp;quot;; white-space: normal;&quot;&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394; font-weight: normal;&quot;&gt;Adjust the Cache Size:&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;code&gt;Netsh branchcache set publicationcachesize size=5 percent=TRUE
Netsh branchcache set localcachesize size=5 percent=TRUE&lt;/code&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Additional caching attributes will be configured via Group Policy (Step 4).&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394; font-weight: normal;&quot;&gt;Step 3.  BranchCache SSL&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
BranchCache SSL certificates support Windows 7 clients.&amp;nbsp; It&#39;s not necessary for organizations with only Windows 8 or Windows 10 clients.&amp;nbsp; Of course, the file server will probably require certificates for other services -just not BranchCache.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Any trusted SSL certificate will work with BranchCache.&amp;nbsp; We simply need to associate the server certificate with BranchCache:&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Add a server certificate in the personal certificate directory for each&amp;nbsp; BranchCache
hosted cache server (e.g., ATL and CHI).&lt;/li&gt;
&lt;li&gt;Bind
the SSL certificate hash (i.e., thumbprint) to the hosted cache server.&amp;nbsp; Use the following command:
&lt;code&gt;NETSH HTTP ADD SSLCERT IPPORT=0.0.0.0:443 CERTHASH=xxxxxxxxxxx APPID={d673f5ee-a714-454d-8de2-492e4c1bd8f8}&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp; &amp;nbsp; N.B.,&amp;nbsp; CERTHASH is the certificate&#39;s thumbprint.&amp;nbsp; &lt;a href=&quot;http://www.stevenjordan.net/search/label/PKI&quot;&gt;Further certificate information found here&lt;/a&gt;.&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;Step 4.&amp;nbsp; Group Policy&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Use Group Policies to adjust caching attributes and client settings.&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;b&gt;Policies for the File Servers:&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10pt;&quot;&gt;Table 1.&amp;nbsp; BranchCache Policy for File
Servers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 0px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 100.05pt;&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Policy&lt;span style=&quot;color: #2e75b6; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-color: #2E75B6; mso-style-textfill-fill-colortransforms: lumm=75000; mso-style-textfill-fill-themecolor: accent1; mso-themecolor: accent1; mso-themeshade: 191;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 142.55pt;&quot; width=&quot;192&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Path&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 62.65pt;&quot; width=&quot;86&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Setting&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 122.6pt;&quot; width=&quot;166&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 76.35pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;height: 76.35pt; padding: .75pt .75pt .75pt .75pt; width: 100.05pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Turn on BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 76.35pt; padding: .75pt .75pt .75pt .75pt; width: 142.55pt;&quot; valign=&quot;top&quot; width=&quot;192&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;ComputerConfiguration/&lt;br /&gt;
  &amp;nbsp; Administrative Templates/&lt;br /&gt;
  &amp;nbsp; Network/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp;BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 76.35pt; padding: .75pt .75pt .75pt .75pt; width: 62.65pt;&quot; valign=&quot;top&quot; width=&quot;86&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Enabled&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 76.35pt; padding: .75pt .75pt .75pt .75pt; width: 122.6pt;&quot; valign=&quot;top&quot; width=&quot;166&quot;&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 61.5pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;height: 61.5pt; padding: .75pt .75pt .75pt .75pt; width: 100.05pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Hash Publication for BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 61.5pt; padding: .75pt .75pt .75pt .75pt; width: 142.55pt;&quot; valign=&quot;top&quot; width=&quot;192&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;ComputerConfiguration/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Administrative
  Templates/&amp;nbsp; Network/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;LanmanServer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 61.5pt; padding: .75pt .75pt .75pt .75pt; width: 62.65pt;&quot; valign=&quot;top&quot; width=&quot;86&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Enabled:&lt;br /&gt;
  Value 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 61.5pt; padding: .75pt .75pt .75pt .75pt; width: 122.6pt;&quot; valign=&quot;top&quot; width=&quot;166&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;(Hash publication for all shared folders).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 100.05pt;&quot; valign=&quot;top&quot; width=&quot;136&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;MinContentLength Registry Key&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 142.55pt;&quot; valign=&quot;top&quot; width=&quot;192&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;ComputerConfiguration/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Preferences/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Windows
  Settings/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Registry/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;MinContentLength&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 62.65pt;&quot; valign=&quot;top&quot; width=&quot;86&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Reg_D&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;WORD:&lt;br /&gt;
  &lt;br /&gt;
  32768&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;(Decimal)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 122.6pt;&quot; valign=&quot;top&quot; width=&quot;166&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Default caching 64KB.&amp;nbsp; &lt;br /&gt;
  New caching 32K.&lt;br /&gt;
  Set as low as 4KB.&amp;nbsp; &lt;br /&gt;
  &lt;br /&gt;
  N.B., Low values may impact performance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;Policies for&amp;nbsp;Windows clients:&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 13.5pt;&quot;&gt;Table 2.&amp;nbsp;
BranchCache policies for Win 8 and Win 10:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 0px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 159.75pt;&quot; width=&quot;216&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Policy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 165.0pt;&quot; width=&quot;222&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Path&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 78.75pt;&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Setting&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 42.75pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;height: 42.75pt; padding: .75pt .75pt .75pt .75pt; width: 159.75pt;&quot; valign=&quot;top&quot; width=&quot;216&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Turn on BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 42.75pt; padding: .75pt .75pt .75pt .75pt; width: 165.0pt;&quot; valign=&quot;top&quot; width=&quot;222&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;ComputerConfiguration/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;Administrative
  Templates/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp; Network/BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 42.75pt; padding: .75pt .75pt .75pt .75pt; width: 78.75pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Enabled&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 51.15pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;height: 51.15pt; padding: .75pt .75pt .75pt .75pt; width: 159.75pt;&quot; valign=&quot;top&quot; width=&quot;216&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Configure BranchCache for&amp;nbsp;network files&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 51.15pt; padding: .75pt .75pt .75pt .75pt; width: 165.0pt;&quot; valign=&quot;top&quot; width=&quot;222&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Computer Configuration/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;Administrative
  Templates/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp; Network/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp; BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 51.15pt; padding: .75pt .75pt .75pt .75pt; width: 78.75pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Enabled&lt;br /&gt;
  Value:10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 51.15pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;height: 51.15pt; padding: .75pt .75pt .75pt .75pt; width: 159.75pt;&quot; valign=&quot;top&quot; width=&quot;216&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Enable Automatic Hosted Cache Discovery by Service Connection
  Point&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 51.15pt; padding: .75pt .75pt .75pt .75pt; width: 165.0pt;&quot; valign=&quot;top&quot; width=&quot;222&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Computer Configuration/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;Administrative
  Templates/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp; Network/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp; BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 51.15pt; padding: .75pt .75pt .75pt .75pt; width: 78.75pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Enabled&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 46.65pt; mso-yfti-irow: 4; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;height: 46.65pt; padding: .75pt .75pt .75pt .75pt; width: 159.75pt;&quot; valign=&quot;top&quot; width=&quot;216&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Set BranchCache Distributed Cache mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 46.65pt; padding: .75pt .75pt .75pt .75pt; width: 165.0pt;&quot; valign=&quot;top&quot; width=&quot;222&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Computer Configuration/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;Administrative
  Templates/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp; Network/&lt;br /&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; BranchCache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;height: 46.65pt; padding: .75pt .75pt .75pt .75pt; width: 78.75pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Enabled&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Note:&amp;nbsp; BranchCache for
network files uses round trip latency.&amp;nbsp;
Value 10 = 10ms.&amp;nbsp; Hosted Cache mode is for location with dedicated file servers.&amp;nbsp; 
Distributed Caching is for locations without dedicated file servers.&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;BranchCache Firewall Policies:&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;BranchCache requires inbound and outbound client firewall rules.&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP52jdFYr1FJt5WObJGVlf_u-xXNDaQXfB99Huo2OnWZZcBqAqVqGOD4hXnxNDTL0No6yHwa2WAv08YY12kSNXO5Yyibr0dQwNpXv4OfNiXFVDd6viziMFwrpQ6dQYmOV-hw_C29GKdmb1/s1600/BranchCache-Out.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;94&quot; data-original-width=&quot;1175&quot; height=&quot;49&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP52jdFYr1FJt5WObJGVlf_u-xXNDaQXfB99Huo2OnWZZcBqAqVqGOD4hXnxNDTL0No6yHwa2WAv08YY12kSNXO5Yyibr0dQwNpXv4OfNiXFVDd6viziMFwrpQ6dQYmOV-hw_C29GKdmb1/s640/BranchCache-Out.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYQlKdA0LbKnDmWweg7UgNSlmZs-MZW2-O8LiMBNwtEA3YMrqbFCqI7KNICm9QJiZn_mZN7itpUMrf2DssmOcC-pzJKUXxuTl7SkWus_DpXMrZ04Tokoj8En7DuVXS2okZxMXQt_iUXgT/s1600/BranchCache-In.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;71&quot; data-original-width=&quot;1201&quot; height=&quot;36&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYQlKdA0LbKnDmWweg7UgNSlmZs-MZW2-O8LiMBNwtEA3YMrqbFCqI7KNICm9QJiZn_mZN7itpUMrf2DssmOcC-pzJKUXxuTl7SkWus_DpXMrZ04Tokoj8En7DuVXS2okZxMXQt_iUXgT/s640/BranchCache-In.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 13.5pt;&quot;&gt;Table 3.&amp;nbsp;
BranchCache Inbound Firewall Group Policies&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; class=&quot;MsoNormalTable&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; width=&quot;182&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Policy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 169.55pt;&quot; width=&quot;228&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Path&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: .75pt .75pt .75pt .75pt; width: 116.15pt;&quot; width=&quot;158&quot;&gt;&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 42.75pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;height: 42.75pt; padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; valign=&quot;top&quot; width=&quot;182&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;BranchCache Content Retrieval (HTTP-In)&lt;/span&gt;&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td rowspan=&quot;3&quot; style=&quot;height: 42.75pt; padding: .75pt .75pt .75pt .75pt; width: 169.55pt;&quot; width=&quot;228&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Computer Configuration/&lt;br /&gt;
  &amp;nbsp; Policies/ &lt;br /&gt;
  &amp;nbsp; &amp;nbsp;Windows&amp;nbsp; Settings/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; Security Settings/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; &amp;nbsp;Windows Firewall with&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; &amp;nbsp; Advanced Security/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Inbound Rules&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td rowspan=&quot;3&quot; style=&quot;height: 42.75pt; padding: .75pt .75pt .75pt .75pt; width: 116.15pt;&quot; width=&quot;158&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;a. Right-click Inbound Rules.&amp;nbsp; &lt;br /&gt;
  &lt;br /&gt;
  b. Left-click New Rule.&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;
  &lt;br /&gt;
  c. Add predefined BranchCache rules.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 38.25pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;height: 38.25pt; padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; valign=&quot;top&quot; width=&quot;182&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;BranchCache Hosted Cache Server
  (HTTP-In)&lt;/span&gt;&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 45.75pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;height: 45.75pt; padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; valign=&quot;top&quot; width=&quot;182&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;BranchCache Peer Discovery (WSD-In)&lt;/span&gt;&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 35.25pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td style=&quot;height: 35.25pt; padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; valign=&quot;top&quot; width=&quot;182&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;BranchCache Content Retrieval
  (HTTP-Out)&lt;/span&gt;&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td rowspan=&quot;4&quot; style=&quot;height: 35.25pt; padding: .75pt .75pt .75pt .75pt; width: 169.55pt;&quot; width=&quot;228&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;Computer Configuration/&lt;br /&gt;
  &amp;nbsp; Policies/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp;Windows&amp;nbsp; Settings/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; Security Settings/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; &amp;nbsp;Windows Firewall with&lt;br /&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Advanced Security/&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Outbound Rules&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td rowspan=&quot;4&quot; style=&quot;height: 35.25pt; padding: .75pt .75pt .75pt .75pt; width: 116.15pt;&quot; width=&quot;158&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;a. Right-click Inbound Rules.&lt;br /&gt;
  &amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;b. Left-click New Rule.&lt;br /&gt;
  &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;
  &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;c. Add predefined BranchCache rules.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 39.75pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td style=&quot;height: 39.75pt; padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; valign=&quot;top&quot; width=&quot;182&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;BranchCache Hosted Cache Clietnt
  (HTTP-Out)&lt;/span&gt;&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 34.5pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;height: 34.5pt; padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; valign=&quot;top&quot; width=&quot;182&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;BranchCache Hosted Cache Server
  (HTTP-Out)&lt;/span&gt;&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.0pt; mso-yfti-irow: 7; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;height: 27.0pt; padding: .75pt .75pt .75pt .75pt; width: 134.35pt;&quot; valign=&quot;top&quot; width=&quot;182&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;BranchCache Peer Discovery (WSD-Out)&lt;/span&gt;&lt;span style=&quot;color: #2e75b6; font-family: &amp;quot;courier new&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h4&gt;
&lt;span style=&quot;background-color: white; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;Optional:&amp;nbsp; BranchCache for WSUS and IIS Servers&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;b&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;
&lt;/span&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;&quot; style=&quot;background-color: white; border: none; clear: both; color: #333333; font-family: helvetica, arial, georgia, serif; font-size: 14px; font-style: normal; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
BranchCache also accelerates content for web servers and BITS application 
 servers.&amp;nbsp; Simply install the BranchCache feature and ensure the service is 
 running.&amp;nbsp; No other configuration steps are necessary.&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;h4 style=&quot;background-color: white; border: none; clear: both; font-family: helvetica; font-size: 18px; font-style: normal; font-weight: normal; letter-spacing: normal; line-height: 1em; list-style: none; margin: 25px 0px 10px; outline: none; padding: 0px; position: relative; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;span style=&quot;border: none; color: #0b5394; font-weight: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none;&quot;&gt;
Evaluate&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; clear: both; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
User PowerShell and Performance monitor to ensure BranchCache works:&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; clear: both; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;http://www.stevenjordan.net/2013/03/2012-branchcache-troubleshooting.html&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 http://www.stevenjordan.net/2013/03/2012-branchcache-troubleshooting.html&lt;/a&gt;&lt;/div&gt;
That&#39;s It!&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #0b5394; font-family: &amp;quot;helvetica&amp;quot;; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;background-color: white; color: #0b5394; font-family: &amp;quot;helvetica&amp;quot;; font-size: 18px; font-weight: normal;&quot;&gt;References:&lt;/span&gt;&lt;/h4&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: white; border: none; color: #333333; font-family: helvetica, arial, georgia, serif; font-size: 14px; font-style: normal; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;http://social.technet.microsoft.com/wiki/contents/articles/14309.branchcache-frequently-asked-questions.aspx&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 http://social.technet.microsoft.com/wiki/contents/articles/14309.branchcache-frequently-asked-questions.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;http://technet.microsoft.com/en-us/library/hh848420.aspx&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 http://technet.microsoft.com/en-us/library/hh848420.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;http://technet.microsoft.com/en-us/library/jj572970.aspx&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 http://technet.microsoft.com/en-us/library/jj572970.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;http://technet.microsoft.com/en-us/library/dd637785(v=ws.10).aspx&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 http://technet.microsoft.com/en-us/library/dd637785(v=ws.10).aspx&lt;/a&gt;&lt;/div&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;http://technet.microsoft.com/en-us/library/ff710438(v=ws.10).aspx&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 http://technet.microsoft.com/en-us/library/ff710438(v=ws.10).aspx&lt;/a&gt;&lt;/div&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;http://technet.microsoft.com/en-us/library/dd637785(v=ws.10).aspx&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 http://technet.microsoft.com/en-us/library/dd637785(v=ws.10).aspx&lt;/a&gt;&lt;/div&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;https://ammarhasayen.com/2013/10/11/branchcache-course-109-where-files-are-stored/&quot; style=&quot;border: none; color: rgb(0 , 0 , 0); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 https://ammarhasayen.com/2013/10/11/branchcache-course-109-where-files-are-stored/&lt;/a&gt;&lt;/div&gt;
&lt;div lang=&quot;x-none&quot; style=&quot;background-color: rgb(255 , 255 , 255); border: none; color: rgb(51 , 51 , 51); font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;georgia&amp;quot; , serif; font-size: 14px; font-style: normal; font-weight: 400; letter-spacing: normal; list-style: none; margin: 0px; outline: none; padding: 0px; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;
&lt;a href=&quot;https://2pintsoftware.com/branchcache-teeny-weeny-files/&quot; style=&quot;border: none; color: rgb(68 , 68 , 68); font-weight: normal; list-style: none; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: all 0.2s ease-in-out;&quot;&gt;
 https://2pintsoftware.com/branchcache-teeny-weeny-files/&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.stevenjordan.net/feeds/8984445285917051839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.stevenjordan.net/2018/02/guide-quick-and-easy-branchcache-setup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8984445285917051839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6696977109054687352/posts/default/8984445285917051839'/><link rel='alternate' type='text/html' href='http://www.stevenjordan.net/2018/02/guide-quick-and-easy-branchcache-setup.html' title=' How to Setup BranchCache'/><author><name>Steven M. Jordan</name><uri>http://www.blogger.com/profile/08808713004280066782</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8lEEf923Jso4xZ69bmL1XxBKQGwlHilpE7mZ9PG_0auWIt8xNx5IvQ7PM3AJIcvGzuIARQBvAcC4bP1vQL3BPb8vPS3GWGwhhXmSA8AwTDXhjJtNDh-hLedlR6jps4mk/s113/SMJ.PNG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWjm6mt45MkABiPxe2sh4PkuTb0xroeHwDnpC9qdiO0LHOWVaWIvK348e_Vf0DNZop_OeLLjvxdtHYjMbZ6LvlYxPpi5kTpcduf4PMTKUvLVZXy0n179joZorelwwgEQ5-4oc2_xq9LiNz/s72-c/BC2016-B.PNG" height="72" width="72"/><thr:total>0</thr:total></entry></feed>