Block 3 constructs the foundational network resolution and application delivery layer for the enterprise lab. We configure authoritative Forward and Reverse DNS Zones with A, PTR, and CNAME records, deploy IIS 8.5 Web Server with multi-site host header routing, configure a virtual directory, and review Network Load Balancing (NLB) cluster deployment strategies.

๐Ÿ’ก
How Host Headers Solve IP Scarcity Without Host Headers, hosting 100 websites would require 100 individual IP addresses. With HTTP 1.1 Host Headers, IIS reads the requested domain name (portal.lab.local vs www.lab.local) inside the application-layer HTTP packet and routes traffic to the correct web folder over a single IP (192.168.10.10:80).

๐ŸŒ DNS Architecture & Zone Hierarchy

Our lab establishes two authoritative DNS zones:

  1. Primary Forward Lookup Zone: lab.local
    • srv-01.lab.local -> 192.168.10.10 (Host A)
    • www.lab.local -> 192.168.10.10 (Host A)
    • portal.lab.local -> 192.168.10.10 (Host A)
    • ftp.lab.local -> 192.168.10.10 (Host A)
    • web.lab.local -> srv-01.lab.local (Alias CNAME)
  2. Primary Reverse Lookup Zone: 10.168.192.in-addr.arpa
    • 192.168.10.10 -> srv-01.lab.local (PTR Record)

Step 1: Configure Static IP & DNS Server Zones

# 1. Assign Static IP to Ethernet Adapter
$adapter = Get-NetAdapter | Where-Object Status -eq 'Up' | Select-Object -First 1
New-NetIPAddress -InterfaceIndex $adapter.ifIndex -IPAddress "192.168.10.10" -PrefixLength 24 -DefaultGateway "192.168.10.1"
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ServerAddresses "192.168.10.10", "127.0.0.1"

# 2. Install DNS Server Role
Install-WindowsFeature -Name DNS -IncludeManagementTools

# 3. Create Forward & Reverse Primary Zones
Add-DnsServerPrimaryZone -Name "lab.local" -ZoneFile "lab.local.dns"
Add-DnsServerPrimaryZone -NetworkId "192.168.10.0/24" -ZoneFile "10.168.192.in-addr.arpa.dns"

# 4. Populate Resource Records (A, PTR, CNAME)
Add-DnsServerResourceRecordA -ZoneName "lab.local" -Name "srv-01" -IPv4Address "192.168.10.10" -CreatePtr
Add-DnsServerResourceRecordA -ZoneName "lab.local" -Name "www" -IPv4Address "192.168.10.10"
Add-DnsServerResourceRecordA -ZoneName "lab.local" -Name "portal" -IPv4Address "192.168.10.10"
Add-DnsServerResourceRecordA -ZoneName "lab.local" -Name "ftp" -IPv4Address "192.168.10.10"
Add-DnsServerResourceRecordCName -ZoneName "lab.local" -Name "web" -HostNameAlias "srv-01.lab.local"

Step 2: Deploy IIS 8.5 Multi-Site Web Server & Virtual Directory

We install IIS 8.5, configure the primary Default Web Site on port 80, create a secondary site PortalSite on port 8080 and port 80 with the portal.lab.local host header, and map a virtual directory /downloads:

# 1. Install IIS Web Server Role
Install-WindowsFeature -Name Web-Server, Web-WebServer, Web-Common-Http, Web-Default-Doc, Web-Dir-Browsing, Web-Mgmt-Console -IncludeManagementTools
Import-Module WebAdministration

# 2. Provision PortalSite (portal.lab.local:80 & Port 8080)
$portalDir = "C:\inetpub\portalsite"
if (-not (Test-Path $portalDir)) { New-Item -Path $portalDir -ItemType Directory | Out-Null }
New-Website -Name "PortalSite" -Port 8080 -PhysicalPath $portalDir
New-WebBinding -Name "PortalSite" -IPAddress "*" -Port 80 -HostHeader "portal.lab.local"

# 3. Create Virtual Directory /downloads
$downDir = "C:\inetpub\shared_downloads"
if (-not (Test-Path $downDir)) { New-Item -Path $downDir -ItemType Directory | Out-Null }
New-Item "IIS:\Sites\PortalSite\downloads" -Type VirtualDirectory -PhysicalPath $downDir

โš– Network Load Balancing (NLB) Clustering

NLB balances incoming HTTP/HTTPS requests across multiple web servers under a single shared Virtual IP (VIP).

NLB Cluster Mode MAC Address Behavior Switch Requirement
Unicast Mode Replaces adapter MAC with cluster MAC. Nodes cannot communicate with each other directly via that NIC. Works on all standard switches without special configuration.
Multicast Mode Retains native adapter MAC and adds a multicast MAC for cluster traffic. Allows inter-node traffic. Requires switch support for static ARP and multicast filtering.

Step 3: Verification & HTTP Endpoint Checks

& ".\scripts\03_Block3_IIS_DNS\Verify-Block3.ps1"
โ† Previous Block 2: iSCSI SAN Target