Modern cyber infrastructure relies heavily on secure name resolution. In standard desktop environments without DNS filtering, your client device queries root and authoritative servers across public networks...
DNS Fundamentals & Baseline Browsing Setup
Understand how Domain Name System (DNS) functions, observe standard un-filtered DNS behavior, and record baseline browsing results on your Windows VM.
Key Learning Objectives
- DNS UDP/TCP Port 53: Translates human-readable domain names (e.g.,
example.com) into IP addresses (e.g.,93.184.216.34). - Standard Recursive DNS: By default, host OS DNS requests bypass filtering, loading intrusive ad networks, privacy tracking scripts, and potentially inappropriate/harmful web destinations.
- DNS Sinkholing: Intercepting specific domain lookups at the local resolver level and returning
0.0.0.0orNXDOMAINto block connections before traffic leaves the browser.
Target Virtual Lab Topology
Step 1.1: Standard "Before" Browsing Session Test
Before installing Pi-hole, launch your Windows VM browser and observe how standard public DNS (ISP / 8.8.8.8) handles webpage requests, ad scripts, and restricted domains.
- Baseline & Ad-Blocking Test: Visit
https://www.cnn.comorhttps://www.msn.comand runnslookup doubleclick.net. - OpenDNS Safeguard Test: Visit
https://www.poker.comorhttps://www.gambling.comand runnslookup www.poker.com.
CNN International & World News
Live Edition • Unfiltered DNSPS C:\Users\Student> nslookup doubleclick.net
Server: Unfiltered-Public-DNS
Address: 8.8.8.8
Non-authoritative answer:
Name: doubleclick.net
Addresses: 142.250.190.46
2607:f8b0:4004:837::200e
Deploying Pi-hole on Proxmox VE (LXC / VM)
Deploy a lightweight Linux instance inside Proxmox VE, execute the official Pi-hole installation, assign a static IP, and log into the administrative web GUI.
Step 2.1: Proxmox Container / VM Specs
Inside your Proxmox VE Web Console (https://<proxmox-ip>:8006), create a new LXC Container or Virtual Machine using the following specification parameters:
Step 2.2: Automated Pi-hole Installation
Open the console of your newly created Debian/Ubuntu container in Proxmox and execute the official automated installer command:
root@pihole:~# curl -sSL https://install.pi-hole.net | bash
Wizard Configuration Choices (Follow Carefully):
- Static IP Warning: Click OK to confirm assigning
192.168.1.50as your permanent static IP address. - Upstream DNS Provider: Select
Google (8.8.8.8 / 8.8.4.4)orCloudflare (1.1.1.1)for this initial phase. - Blocklists (StevenBlack): Leave default
StevenBlack Unified Listenabled (blocks ~150,000+ ad/malware domains). - Admin Web Interface: Select
On(Install web interface & lighttpd web server). - Query Logging: Select
On(Show all queries & privacy mode: Show everything).
Step 2.3: Set Admin Password & Log In
Once installation finishes, reset your Web Admin password in the Proxmox console using the command below:
root@pihole:~# pihole -a -p
[?] Please enter a new password for the Pi-hole web interface: ********
[✓] Password changed successfully!
http://192.168.1.50/admin from your browser to confirm the Pi-hole dashboard is live and operational.
Attaching Windows VM Client & Pi-hole Ad-Blocking Comparison
Reconfigure your Windows VM DNS server settings to point to the Pi-hole IP, flush local resolver caches, and evaluate ad-blocking performance.
Step 3.1: Configure Windows VM DNS Server
On your Windows VM, change the IPv4 DNS Server address to point directly to your Pi-hole container IP address (192.168.1.50).
PS C:\Windows\system32> Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("192.168.1.50")
- Press
Win + R, typencpa.cpland press Enter. - Right-click your active Network Adapter (e.g. Ethernet) and select Properties.
- Select Internet Protocol Version 4 (TCP/IPv4) → Click Properties.
- Select Use the following DNS server addresses:
Preferred DNS server:192.168.1.50 - Click OK and close network windows.
Step 3.2: Flush Windows Resolver Cache
Windows caches previous DNS lookups locally. You MUST flush the local DNS resolver cache to enforce queries through Pi-hole:
PS C:\Users\Student> ipconfig /flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
Step 3.3: "After Pi-hole" Browsing & Ad Sinkholing Test
Refresh your test page or run nslookup doubleclick.net on the Windows VM. Pi-hole will intercept known advertising & tracking domains, returning 0.0.0.0 (sinkhole).
CNN International & World News
Live Edition • Pi-hole ProtectionModern cyber infrastructure relies heavily on secure name resolution. In standard desktop environments without DNS filtering, your client device queries root and authoritative servers across public networks...
PS C:\Users\Student> nslookup doubleclick.net
Server: pi.hole
Address: 192.168.1.50
Name: doubleclick.net
Addresses: 0.0.0.0
Integrating OpenDNS Content Safeguards (Parental Control & Gambling Block)
Learn how local DNS sinkholing (Pi-hole) pairs with upstream content filtering (OpenDNS FamilyShield) to protect network users from adult, gambling, and dangerous web content.
Why Upstream Content Filtering is Needed
While Pi-hole is effective at stripping ad-trackers, standard ad lists do not categorize or filter web domains by content types (such as adult websites, gambling, violence, or phishing). Connecting Pi-hole to OpenDNS FamilyShield creates a multi-layered security shield.
🛡️ Tier 1: Pi-hole (Local Level)
Blocks invasive scripts, doubleclick banners, malware telemetry, and user tracking scripts instantly at the local LAN edge.
🔒 Tier 2: OpenDNS FamilyShield (Upstream Level)
Categorizes millions of websites worldwide and blocks harmful or inappropriate content categories (e.g. gambling, adult, illicit material).
Step 4.1: Configure OpenDNS Upstream in Pi-hole GUI
Configure Pi-hole to route all non-cached queries to OpenDNS FamilyShield servers:
- Log into Pi-hole Admin Dashboard (
http://192.168.1.50/admin). - Navigate to Settings → DNS tab.
- Under Upstream DNS Servers, uncheck standard providers (Google/Cloudflare).
- Check OpenDNS OR manually enter Custom 1 (IPv4) and Custom 2 (IPv4):
208.67.222.122(OpenDNS FamilyShield Primary)208.67.220.220(OpenDNS FamilyShield Secondary)
- Scroll down and click Save.
Step 4.2: OpenDNS Block Page & Gambling Domain Test
Flush Windows VM DNS cache (ipconfig /flushdns) and attempt to load a gambling domain (e.g. https://www.poker.com or https://www.gambling.com):
ACCESS RESTRICTED BY CONTENT SAFEGUARD
This website (www.poker.com) has been blocked by your network administrator because it is categorized under Gambling & Inappropriate Content.
PS C:\Users\Student> nslookup www.poker.com
Server: pi.hole
Address: 192.168.1.50
Non-authoritative answer:
Name: www.poker.com
Address: 67.215.92.220 <-- OpenDNS Block Guide Landing IP
Interactive DNS Resolution Simulator & Lab Assessment
Test real-time domain lookups across different DNS modes, complete the lab reflection quiz, and generate your official lab report.
Interactive Live DNS Resolution Simulator
Select a active DNS mode and type any domain name to observe how requests pass through local cache, Pi-hole Gravity lists, and OpenDNS filters.
Knowledge Check Assessment
Answer the following questions to verify your understanding of DNS architecture, Pi-hole, and OpenDNS filtering.
1. What IP address does Pi-hole return by default when a domain is blocked by a Gravity ad list (sinkholed)?
2. Why is executing ipconfig /flushdns on the Windows client necessary after changing DNS servers?
3. What is the primary difference between standard Pi-hole adlists and OpenDNS FamilyShield?
4. Which network transport protocol and port number are standard for DNS name resolution queries?
Lab Reflection & Student Summary
Summarize your findings regarding how DNS filtering impacts user privacy, network bandwidth, and content safety:
🎓 Complete Assignment & Export Lab Report
Verify all modules are checked and download your formatted lab summary report for instructor submission.