0Pricing
Linux Networking & TCP/IP for Developers · 课时

DHCP 与 DNS 服务

了解如何搭建和管理 DHCP 服务器以分配 IP 地址,以及 DNS 服务器以进行名称解析

DHCP 与 DNS 服务 是 CoddyKit 上的免费 Linux Networking & TCP/IP for Developers 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Networking & TCP/IP for Developers 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Networking & TCP/IP for Developers 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Network's Dynamic Duo: DHCP & DNS

Welcome to understanding two foundational services in any Linux network: DHCP and DNS.

These protocols work behind the scenes to make network communication smooth and user-friendly. One assigns network details, the other translates names.

DHCP: Automatic IP Assignment

DHCP stands for Dynamic Host Configuration Protocol. Its main job is to automatically assign IP addresses and other network settings (like subnet mask, default gateway, and DNS server addresses) to devices on a network.

  • Saves time: No need to manually configure each device.
  • Prevents errors: Avoids duplicate IP addresses.
  • Flexible: Easily manage IP address pools.

How DHCP Works: The DORA Process

When a device connects to a network, it uses a four-step process called DORA to get an IP address from a DHCP server:

  • Discover: Client broadcasts a request for a DHCP server.
  • Offer: DHCP server offers an available IP address.
  • Request: Client accepts the offered IP.
  • Acknowledge: Server confirms the lease and provides full configuration.

Setting Up a DHCP Server on Linux

On Linux, a common DHCP server is provided by the isc-dhcp-server package (or dhcpd). The primary configuration file is typically located at /etc/dhcp/dhcpd.conf.

This file defines subnets, IP ranges, default gateways, and DNS servers that clients will receive.

`dhcpd.conf` Example for a Subnet

Here's a simplified example of a dhcpd.conf entry for a local network. This tells the server what IPs to offer and what network details to provide.

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.150;
  option routers 192.168.1.1;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  option domain-name "example.com";
  default-lease-time 600;
  max-lease-time 7200;
}

DNS: Translating Names to IPs

DNS, or the Domain Name System, is like the internet's phonebook. It translates human-readable domain names (e.g., google.com) into machine-readable IP addresses (e.g., 142.250.191.46).

Without DNS, you'd have to remember complex IP addresses for every website!

How DNS Resolution Works

When you type a domain name into your browser, a DNS query goes through several steps:

  1. Your computer checks its local cache.
  2. If not found, it asks a recursive DNS resolver (often provided by your ISP or a public one like 8.8.8.8).
  3. The resolver queries root servers, then TLD servers (.com, .org), and finally the authoritative name server for the specific domain.
  4. The authoritative server returns the IP address, which your computer then uses to connect.

Setting Up a DNS Server (BIND)

On Linux, BIND (Berkeley Internet Name Domain) is the most common DNS server software. It's also known as named.

BIND manages zones, which are files containing records that map domain names to IP addresses (and vice versa) for specific domains.

Zone files are typically configured in /etc/bind/.

Simple DNS Forward Zone File

This is an example of a forward zone file for example.com. It defines how specific names within that domain map to IP addresses.

  • @ represents the domain itself.
  • NS records specify name servers.
  • A records map hostnames to IPv4 addresses.
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
                2023010101 ; Serial
                3600       ; Refresh
                1800       ; Retry
                604800     ; Expire
                86400      ; Minimum TTL
)
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.10
www IN A 192.168.1.10
mail IN A 192.168.1.20

Troubleshooting DHCP and DNS

When things go wrong, these commands are your friends:

  • systemctl status dhcpd / named: Check service status.
  • journalctl -u dhcpd / named: View service logs.
  • ip a: Verify your device's IP address (from DHCP).
  • dig example.com: Query DNS for a domain.
  • nslookup example.com: Another tool to query DNS.

Quick Check: DHCP vs. DNS

You've learned about the distinct roles of DHCP and DNS. Let's test your understanding!

Recap: DHCP & DNS Essentials

In this lesson, you gained insight into DHCP and DNS:

  • DHCP automates IP address assignment, saving time and preventing errors.
  • DNS translates human-readable domain names into machine-readable IP addresses.
  • Both are critical services for any functional network, ensuring devices get online and can find each other by name.

Keep exploring these services to master network configuration!

常见问题解答

「DHCP 与 DNS 服务」课时是免费的吗?

是的 — 「DHCP 与 DNS 服务」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Networking & TCP/IP for Developers 课程的其余内容,请升级到 CoddyKit PRO。 Linux Networking & TCP/IP for Developers 课程共包含 4 节课。

「DHCP 与 DNS 服务」这节课中我会学到什么?

了解如何搭建和管理 DHCP 服务器以分配 IP 地址,以及 DNS 服务器以进行名称解析 你通过在浏览器中直接运行的动手代码来练习 Linux Networking & TCP/IP for Developers,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Linux Networking & TCP/IP for Developers 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Linux Networking & TCP/IP for Developers 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「DHCP 与 DNS 服务」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Linux Networking & TCP/IP for Developers 课中编写并运行代码吗?

能。每节 Linux Networking & TCP/IP for Developers 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 SSH 安全远程访问
  2. HTTP/HTTPS Web 服务
  3. DHCP 与 DNS 服务
  4. NTP 与时间同步服务
← 返回 Linux Networking & TCP/IP for Developers