<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://utiliy.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://utiliy.com/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-08-17T18:09:32-07:00</updated><id>https://utiliy.com/feed.xml</id><title type="html">Utiliy</title><subtitle>Practical guides on home networking, privacy, and earning from tech — written without the hype.</subtitle><author><name>Mike Chen</name><email>hello@utiliy.com</email></author><entry><title type="html">DNS Explained Without the Computer Science Degree</title><link href="https://utiliy.com/blog/dns-explained-simply/" rel="alternate" type="text/html" title="DNS Explained Without the Computer Science Degree" /><published>2026-08-17T00:00:00-07:00</published><updated>2026-08-17T00:00:00-07:00</updated><id>https://utiliy.com/blog/dns-explained-simply</id><content type="html" xml:base="https://utiliy.com/blog/dns-explained-simply/"><![CDATA[<p>Every networking article assumes you already know DNS. You don’t — and that’s fine. I didn’t really get it until my third year on the job, when a misconfigured CNAME took down email for a dental office.</p>

<p>Here’s the version I wish someone sent me before I touched Pi-hole.</p>

<figure class="diagram">
  <img src="/assets/img/dns-path.svg" alt="Four boxes showing a browser asking a resolver, which walks root and TLD servers to the authoritative answer" />
  <figcaption>Your laptop almost never talks to the authoritative server itself. The resolver does the walking — and caches the answer.</figcaption>
</figure>

<h2 id="the-phone-book-analogy-accurate-enough">The phone book analogy (accurate enough)</h2>

<p>Your browser doesn’t know where <code class="language-plaintext highlighter-rouge">gmail.com</code> lives. It asks DNS: <strong>“What’s the IP address?”</strong></p>

<p>DNS responds: <code class="language-plaintext highlighter-rouge">142.250.80.46</code> (simplified — Google uses many IPs).</p>

<p>Browser connects to that number. You see Gmail.</p>

<h2 id="the-cast-of-characters">The cast of characters</h2>

<table>
  <thead>
    <tr>
      <th>Piece</th>
      <th>Role</th>
      <th>Example in my house</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Stub resolver</strong></td>
      <td>App asking the question</td>
      <td>Chrome on laptop</td>
    </tr>
    <tr>
      <td><strong>Recursive resolver</strong></td>
      <td>Does the legwork</td>
      <td>Pi-hole → Unbound</td>
    </tr>
    <tr>
      <td><strong>Authoritative server</strong></td>
      <td>Source of truth for a domain</td>
      <td>Google’s nameservers</td>
    </tr>
    <tr>
      <td><strong>Cache</strong></td>
      <td>Remembers recent answers</td>
      <td>Pi-hole FTL database</td>
    </tr>
  </tbody>
</table>

<p>When I type <code class="language-plaintext highlighter-rouge">amazon.com</code>, my laptop asks Pi-hole. Pi-hole asks Unbound. Unbound walks the DNS tree from root servers down. Answer cached for the TTL (time-to-live).</p>

<h2 id="record-types-youll-actually-see">Record types you’ll actually see</h2>

<ul>
  <li><strong>A / AAAA</strong> — name → IPv4 / IPv6</li>
  <li><strong>CNAME</strong> — alias pointing to another name</li>
  <li><strong>MX</strong> — mail server for a domain</li>
  <li><strong>TXT</strong> — verification strings (SPF, DKIM, Google Search Console)</li>
  <li><strong>PTR</strong> — reverse lookup (IP → name), mostly diagnostics</li>
</ul>

<p>Home users break things with <strong>CNAME chasing</strong> when blocklists block the wrong target.</p>

<h2 id="why-change-dns-to-1111-fixes-stuff">Why “change DNS to 1.1.1.1” fixes stuff</h2>

<p>Your ISP’s resolver might be:</p>

<ul>
  <li>Slow</li>
  <li>Logging queries for ads (historically true in some markets)</li>
  <li>Broken during outages</li>
</ul>

<p>Switching to Cloudflare or Quad9 changes <strong>who answers</strong> — not magic, just a different resolver with different policies and uptime.</p>

<p>Pi-hole adds: <strong>“And I’ll block answers I don’t like.”</strong></p>

<h2 id="ttl-why-changes-take-time">TTL: why changes take time</h2>

<p>TTL tells resolvers how long to cache. Set <code class="language-plaintext highlighter-rouge">300</code> (5 minutes) before migrating services; lower TTL days ahead of cutover.</p>

<p>I’ve seen people panic when email moved but TTL was 86400 (24 hours). Patience or flush local cache — not both help instantly.</p>

<h2 id="debugging-commands-copy-these">Debugging commands (copy these)</h2>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># What does my system think?</span>
dig example.com +short

<span class="c"># Trace full resolution path</span>
dig example.com +trace

<span class="c"># Which DNS server answered?</span>
dig example.com @192.168.1.53

<span class="c"># Reverse lookup</span>
dig <span class="nt">-x</span> 8.8.8.8 +short
</code></pre></div></div>

<p>On Windows: <code class="language-plaintext highlighter-rouge">nslookup example.com</code>.</p>

<h2 id="common-dns-broke-my-life-symptoms">Common “DNS broke my life” symptoms</h2>

<table>
  <thead>
    <tr>
      <th>Symptom</th>
      <th>Often actually</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>“Wi-Fi works but internet doesn’t” on phone</td>
      <td>Captive portal / blocked connectivity check domain</td>
    </tr>
    <tr>
      <td>Site loads on LTE, not home Wi-Fi</td>
      <td>Pi-hole blocklist or parental control</td>
    </tr>
    <tr>
      <td>Email works, website doesn’t</td>
      <td>Unrelated — stop blaming MX records</td>
    </tr>
    <tr>
      <td>Everything slow</td>
      <td>Usually not DNS — check Wi-Fi or ISP</td>
    </tr>
  </tbody>
</table>

<h2 id="when-to-stop-tweaking-dns">When to stop tweaking DNS</h2>

<p>If pages load, streaming works, and Pi-hole query log isn’t red with your own devices failing — <strong>leave it alone</strong>. DNS rabbit holes are deep.</p>

<h2 id="update-log">Update log</h2>

<ul>
  <li><strong>Aug 17, 2026:</strong> Published as the networking starting point</li>
</ul>]]></content><author><name>Mike Chen</name></author><category term="Networking" /><summary type="html"><![CDATA[A plain-language guide to DNS: resolvers, records, caching, and why changing DNS fixes weird problems.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://utiliy.com/assets/img/og-cover.svg" /><media:content medium="image" url="https://utiliy.com/assets/img/og-cover.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Five Router Settings I Change on Every Home Network — Including My Own</title><link href="https://utiliy.com/blog/router-settings-security/" rel="alternate" type="text/html" title="Five Router Settings I Change on Every Home Network — Including My Own" /><published>2026-08-17T00:00:00-07:00</published><updated>2026-08-17T00:00:00-07:00</updated><id>https://utiliy.com/blog/router-settings-security</id><content type="html" xml:base="https://utiliy.com/blog/router-settings-security/"><![CDATA[<p>I’ve logged into maybe 200 consumer routers for friends and family. Five settings account for the majority of avoidable problems — and none require buying new hardware.</p>

<h2 id="1-admin-password-and-remote-management">1. Admin password and remote management</h2>

<p>Default credentials for ISP routers live in PDFs online. Change the admin password to <strong>20+ random characters</strong> in a password manager.</p>

<p>Then find <strong>Remote Management / WAN Admin / Web Access from Internet</strong> and disable it. If you need remote access later, use Tailscale on a internal device — not an exposed router login.</p>

<p>On a Arris NV4551, this hides under <strong>Firewall → Remote Admin</strong>.</p>

<h2 id="2-firmware-check-monthly-not-yearly">2. Firmware (check monthly, not yearly)</h2>

<p>Router exploits don’t wait for you. Log in, open <strong>System → Firmware</strong>, click check.</p>

<p>Schedule a calendar reminder. Many breaches in consumer routers are patched months before people update.</p>

<h2 id="3-wi-fi-encryption-wpa3-or-wpa2-aes-only">3. Wi-Fi encryption: WPA3 or WPA2-AES only</h2>

<table>
  <thead>
    <tr>
      <th>Setting</th>
      <th>Use</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>WPA3-Personal</td>
      <td>Best if all devices support it</td>
    </tr>
    <tr>
      <td>WPA2-AES</td>
      <td>Safe fallback for mixed households</td>
    </tr>
    <tr>
      <td>WPA/WPA2 mixed</td>
      <td>Avoid — keeps legacy modes alive</td>
    </tr>
    <tr>
      <td>WEP / Open</td>
      <td>Never</td>
    </tr>
  </tbody>
</table>

<p>Disable <strong>WPS</strong>. The physical button is convenient; the protocol isn’t.</p>

<h2 id="4-guest-network-with-client-isolation">4. Guest network with client isolation</h2>

<p>Create <code class="language-plaintext highlighter-rouge">YourName-Guest</code>. Enable <strong>AP isolation</strong> so guests can’t see Chromecasts, NAS boxes, or your work laptop.</p>

<p>Move smart devices here when they’re chatty or cheap — see my <a href="/blog/fix-parents-wifi-without-mesh/">parents’ Wi-Fi case study</a>.</p>

<h2 id="5-dns-that-isnt-your-isps-default">5. DNS that isn’t your ISP’s default</h2>

<p>Set router DNS to <strong>1.1.1.1</strong> and <strong>1.0.0.1</strong> (Cloudflare) or <strong>9.9.9.9</strong> (Quad9). Faster lookups, slightly better privacy posture.</p>

<p>For filtering, point DNS to a Pi-hole IP instead — but only after Pi-hole is stable.</p>

<h2 id="bonus-things-i-dont-bother-with-on-stock-routers">Bonus: things I don’t bother with on stock routers</h2>

<ul>
  <li><strong>MAC filtering:</strong> Spoofing is trivial; maintenance burden high</li>
  <li><strong>Hidden SSID:</strong> Makes client setup annoying, not security</li>
  <li><strong>Manual port forwards for games:</strong> UPnP on, but logged — whole separate post</li>
</ul>

<h2 id="the-honest-ceiling">The honest ceiling</h2>

<p>These changes remove <strong>low-hanging fruit</strong>. They won’t stop a targeted attack from a skilled adversary. They stop drive-by scans and nosy neighbors — which is the actual threat model for most homes.</p>

<h2 id="update-log">Update log</h2>

<ul>
  <li><strong>Aug 17, 2026:</strong> Published from field notes I still use on family routers</li>
</ul>]]></content><author><name>Mike Chen</name></author><category term="Networking" /><category term="Security" /><summary type="html"><![CDATA[Default router configs favor convenience over safety. These five changes are the first things I do on any home network.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://utiliy.com/assets/img/og-cover.svg" /><media:content medium="image" url="https://utiliy.com/assets/img/og-cover.svg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>