---
title: networking
description: Notes on DHCP, DNS, PROXY
editor: markdown
author: wompmacho
date: '2024-04-27 23:53:26.059000+00:00'
lastmod: '2025-02-08'
tags: ['network', 'infrastructure', 'homelab']
---

## IP Address

An Internet Protocol address (IP) address is a numerical label assigned to each
device connected to a computer network that uses the Internet Protocol for
communication. Think of it like a street address for your computer on the
internet. It's how devices find each other and exchange information.

Here's a breakdown:

* **Numerical Identifier:** An IP address is a set of numbers, typically
  represented in dotted decimal notation (e.g., 192.168.1.1).  There are two
  main versions: IPv4 (the older version) and IPv6 (the newer version, which
  uses a different format to accommodate more addresses).
* **Device Identification:** Every device that connects to a network (computers,
  smartphones, tablets, servers, etc.) needs a unique IP address to be
  identified and communicate.
* **Location Information:**  While not precise, parts of an IP address can
  provide some general information about the device's location.
* **Routing:** IP addresses are used by routers to direct network traffic to the
  correct destination.  When you send data over the internet, routers use IP
  addresses to figure out where to send it.

In short, an IP address is a crucial element of networking. It's the unique
identifier that allows devices to communicate with each other over a network,
whether it's a local network or the vast expanse of the internet.

---

## IPv4 & IPv6

IPv4 and IPv6 are two versions of the Internet Protocol (IP), which is the
fundamental protocol that enables devices to communicate over the internet.
They are essentially addressing systems that allow devices to be uniquely
identified and located on a network.

Here's a breakdown:

* **IPv4 (Internet Protocol version 4):** This is the original version of IP,
  using 32-bit addresses represented in dotted decimal notation (e.g.,
  192.168.1.1).  It offers roughly 4.3 billion unique addresses.  Due to the
  explosive growth of the internet, IPv4 addresses are now largely exhausted.

* **IPv6 (Internet Protocol version 6):** This is the newer version of IP,
  designed to address the limitations of IPv4. It uses 128-bit addresses
  represented in hexadecimal notation (e.g.,
  2001:0db8:85a3:0000:0000:8a2e:0370:7334).  IPv6 offers a vastly larger address
  space, virtually eliminating the problem of address exhaustion.

Key Differences and Why IPv6 is Needed:

* **Address Space:** IPv4 has a limited number of addresses, while IPv6 offers a
  practically unlimited number.
* **Address Format:** IPv4 uses dotted decimal notation, while IPv6 uses
  hexadecimal notation.
* **Automatic Configuration:** IPv6 supports more advanced automatic
  configuration features, simplifying network management.
* **Security:** IPv6 includes built-in security features, such as IPSec, which
  enhances network security.

In short, IPv4 is the older, widely used addressing system that is now facing
address exhaustion. IPv6 is the newer, more robust addressing system designed to
replace IPv4 and provide the necessary address space for the continued growth of
the internet. The transition to IPv6 is ongoing.

---

## DHCP

Dynamic Host Configuration Protocol (DHCP) is a network management protocol that
automates the process of assigning IP addresses and other network configuration
parameters to devices on a network. Think of it as a way to automatically give
each device on your network its own "address" so it can communicate with other
devices and the internet.

Here's a breakdown:

* **Automatic IP Assignment:** DHCP eliminates the need to manually configure IP
  addresses for each device on a network. This is especially useful in large
  networks where it would be tedious to assign addresses manually.
* **Lease-Based System:** DHCP uses a "lease" system, where IP addresses are
  assigned to devices for a specific period of time. When the lease expires, the
  device must renew it or the IP address becomes available for other devices.
  This helps ensure that IP addresses are used efficiently.
* **Centralized Management:** DHCP allows network administrators to manage IP
  addresses from a central server. This simplifies network administration and
  makes it easier to track which devices have which IP addresses.
* **Other Configuration Parameters:** In addition to IP addresses, DHCP can also
  provide other network configuration parameters, such as subnet mask, default
  gateway, and DNS server addresses.

Why someone might use DHCP:

* **Simplified Network Administration:** DHCP makes it much easier to manage IP
  addresses in a network, especially in large networks.
* **Reduced Configuration Errors:** Manual IP address configuration can lead to
  errors, such as duplicate IP addresses, which can cause network conflicts.
  DHCP helps prevent these errors.
* **Efficient IP Address Usage:** The lease-based system ensures that IP
  addresses are used efficiently and that addresses that are no longer in use
  are reclaimed.
* **Plug-and-Play Networking:** DHCP allows devices to connect to a network and
  automatically receive the necessary network configuration, making it easier to
  add new devices to the network.

In short, DHCP is a valuable tool for network administrators that simplifies IP
address management and makes networks more efficient and reliable.

---

## Static IP

A static IP address is a manually assigned IP address that remains constant for
a specific device on a network.  Unlike a dynamic IP address (assigned by DHCP),
a static IP doesn't change.  This makes it useful for devices that need a
consistent and predictable address, such as servers, printers, or network
devices.  However, it requires manual configuration and careful management to
avoid IP address conflicts.

---

## DNS

Domain Name System (DNS) is essentially the phone book of the internet. It
translates human-readable domain names (like **google.com**) into the numerical
IP addresses (like 172.217.160.142) that computers use to communicate with each
other.

Here's a breakdown:

* **Human-Friendly to Machine-Friendly:** We remember names like "google.com"
  easily, but computers communicate using IP addresses. DNS bridges this gap by
  converting domain names into their corresponding IP addresses.
* **Distributed Database:** DNS is a massive, distributed database. It's not
  stored in one single location, but rather spread across a network of servers
  around the world. This makes it robust and efficient.
* **Hierarchical Structure:** DNS is organized in a hierarchical structure, like
  a tree. This structure helps to manage the vast number of domain names and IP
  addresses.
* **Resolution Process:** When you type a domain name into your browser, your
  computer initiates a DNS resolution process. It queries various DNS servers to
  find the IP address associated with that domain name.

Why someone might use DNS:

* **Easy Access to Websites:** DNS allows us to access websites by using
  easy-to-remember domain names instead of complex IP addresses.
* **Email Delivery:** DNS is also used to route email to the correct mail
  servers.
* **Internet Functionality:** DNS is a fundamental component of the internet,
  without which we wouldn't be able to easily browse the web or send emails.

In short, DNS is a critical part of the internet infrastructure. It's the system
that allows us to use domain names to access websites and other internet
resources, making the internet user-friendly and accessible.

---

## PROXY

A proxy acts as an intermediary between a client (like your computer) and a
server (like a website). Instead of your computer directly connecting to the
server, it connects to the proxy server, which then forwards the request to the
server. The server's response comes back to the proxy, which then forwards it to
your computer. Think of it like a middleman.

Here's a breakdown:

* **Intermediary:** The core function of a proxy is to act as a go-between for
  client and server.
* **Hiding IP Address:** One common use of a proxy is to mask the client's IP
  address. The server sees the proxy's IP address, not the client's, providing a
  degree of anonymity.
* **Caching:** Proxies often cache frequently accessed content. If a client
  requests something that's already in the cache, the proxy can serve it
  directly, speeding up access.
* **Filtering and Security:** Proxies can be used to filter content, block
  access to certain websites, or scan for malware.  This is common in corporate
  environments.
* **Load Balancing:** In some situations, proxies can distribute traffic across
  multiple servers, helping to balance the load and improve performance.

In short, a proxy server provides a layer of separation between clients and
servers, offering a variety of benefits related to privacy, security,
performance, and network management.

---

## Reverse Proxy

A reverse proxy sits in front of one or more backend servers, intercepting
client requests and forwarding them to the appropriate server.  It acts as a
gateway, but unlike a regular proxy (which protects clients), a reverse proxy
protects the servers.  Clients connect to the reverse proxy, which then handles
the connection to the actual servers.

Here's a breakdown:

* **Server Protection:**  Reverse proxies shield backend servers from direct
  exposure to the internet, enhancing security by preventing direct attacks.
* **Load Balancing:** They can distribute client traffic across multiple
  servers, preventing any single server from becoming overloaded.
* **Caching:** Reverse proxies can cache content, reducing the load on backend
  servers and speeding up response times for clients.
* **SSL Termination:** They can handle SSL encryption and decryption, offloading
  this task from the backend servers.
* **URL Rewriting:** Reverse proxies can modify URLs, making them more
  user-friendly or hiding the internal structure of the backend servers.

In short, a reverse proxy acts as a gatekeeper for backend servers, providing a
range of benefits related to security, performance, scalability, and
flexibility.  It's a common component in modern web architectures.

## SSL

Secure Sockets Layer (SSL) is a security protocol that creates an encrypted
connection between a web server and a web browser. This ensures that any data
exchanged between them remains private and secure. Think of it as a secret
tunnel that prevents eavesdropping and tampering.

Here's a breakdown:

* **Encryption:** SSL encrypts the data transmitted between the browser and the
  server, making it unreadable to anyone who might try to intercept it. This
  protects sensitive information like passwords, credit card numbers, and
  personal details.
* **Authentication:** SSL verifies the identity of the website, assuring users
  that they are connecting to the legitimate website and not a fake one. This
  helps prevent phishing attacks.
* **Data Integrity:** SSL ensures that the data transmitted between the browser
  and the server is not altered or corrupted during transit. This guarantees
  that the information received is exactly what was sent.

In short, SSL is a crucial security technology that protects online
communication and helps build trust between websites and their users. It's the
foundation of secure online transactions and a vital component of a safe
internet experience.
