原創練習教材CCNA · V2.2
LEARN BY CONNECTING CCNA LABS

從一條連線,開始練習。

選擇 Lab、找到合適設備,讓每一次練習都有清楚的起點。

練習指南
31精選練習主題
31已發布教案
CLI可複製設定範例

CCNA 200-301 · Version 2.2

DISCOVERY 04TCP/IP基礎

檢視 TCP/IP 應用程式

Inspect TCP/IP Applications

從 DNS、HTTP 與 TCP 連線狀態理解應用程式如何使用網路。

40 分鐘

基本拓撲 TOPOLOGY

原創示意圖 · 靜態拓撲
需要看清接線與埠名時,可切換原尺寸閱讀
Discovery 4 原創練習拓撲pc1 連接 sw1,Ethernet ↔ Fa0/1。sw1 連接 srv1,Fa0/2 ↔ Ethernet。 Ethernet ↔ Fa0/1 Fa0/2 ↔ Ethernet PC1Windows · 192.168.40.10 SW1Catalyst 2960 · IOS 15.x SRV1DNS + HTTP · 192.168.40.53 示意連線 · 非執行中的網路 · 實際埠名請對照接線表
路由器 交換器 / 終端設備實線表示實體乙太網路連線

設備與位址 ADDRESSING

先確認介面名稱,再開始設定
設備 DEVICE介面IPv4 位址子網路遮罩預設閘道
PC1Ethernet192.168.40.10255.255.255.0不需要
SRV1Ethernet192.168.40.53255.255.255.0不需要
SRV1DNS A recordweb.ccna.test → 192.168.40.53——
查看線路對照表(2 條連線)
起點終點介面對照
pc1sw1Ethernet ↔ Fa0/1
sw1srv1Fa0/2 ↔ Ethernet
WHAT YOU WILL LEARN

這次練習,你會學到

  • 將 DNS 名稱解析、TCP 建立與 HTTP 請求分開檢查。
  • 辨識本地臨時埠與伺服器服務埠。
  • 使用自己的測試服務,避免掃描或負載他人主機。
BEFORE YOU START

開始之前

  • 具備本題涉及的 IPv4/IPv6 與子網路基礎,能在自己的隔離練習環境開啟 Console。
  • 使用合法設備與軟體映像,先備份現有設定,介面名稱以自己的裝置為準。

適用環境與驗證狀態

Windows 10/11 + 自有 HTTP/DNS 實驗服務待驗證原創教案,尚未於實體設備驗證。依實際硬體、IOS/AireOS 版本與授權核對命令;介面名稱不可直接套用至正式設備。

設備準備好了嗎?從第一個設定開始。

循序操作 STEP BY STEP

在你自己的練習環境操作。命令複製不包含提示字元;所有輸出皆為示例。

01

01 準備受控 DNS / HTTP 服務

兩個交換器埠放同一 VLAN40。於自己的 SRV1 準備 DNS(UDP/TCP53)與 HTTP(TCP8080),建立 web.ccna.test 的 A 記錄,測試頁顯示 CCNA HTTP LAB。.test 為測試名稱,不應送到公開 DNS。PC1 設 192.168.40.10/24,DNS 192.168.40.53。網站不會替你啟動這些服務。

查看預期結果 範例輸出,非真實執行
PC1 與 SRV1 同網段,SRV1 確有監聽 DNS53 與 HTTP8080。
02

準備 A 設定交換器的 VLAN40

SW1 Fa0/1 接 PC1、Fa0/2 接 SRV1。兩端都設 /24;同網段不需要路由器。PC1/SRV1 在作業系統網路設定中配置靜態位址;SRV1 使用自己的隔離 Ubuntu 24.04/26.04 VM,先確認安裝套件所需來源,完成後回到隔離網段。

展開參考指令 SW1 · 依每行命令切換;主機命令在作業系統終端機執行
提示字元僅供辨識
enable
configure terminal
vlan 40
name APP_LAB
interface range FastEthernet0/1 - 2
switchport mode access
switchport access vlan 40
no shutdown
end
show vlan brief

SW1 Fa0/1 接 PC1、Fa0/2 接 SRV1。兩端都設 /24;同網段不需要路由器。PC1/SRV1 在作業系統網路設定中配置靜態位址;SRV1 使用自己的隔離 Ubuntu 24.04/26.04 VM,先確認安裝套件所需來源,完成後回到隔離網段。

查看預期結果 範例輸出,非真實執行
VLAN40 包含 Fa0/1、Fa0/2;PC1 能 ping 192.168.40.53。
03

準備 B 啟動自己的 DNS

以下僅用於新建、專用 SRV1。先確認 192.168.40.53 已綁定且沒有既有服務使用該位址的 TCP/UDP53。dnsmasq 不提供 DHCP、也不轉送外部 DNS。Ubuntu 的 systemd-resolved 通常只綁 loopback;若有衝突先檢查 ss,不任意停用正式 DNS。必要時在自己的防火牆允許來源 192.168.40.10 到 TCP/UDP53。

展開參考指令 SRV1 Linux · 依每行命令切換;主機命令在作業系統終端機執行
提示字元僅供辨識
sudo apt-get update
sudo apt-get install -y dnsmasq python3
ip -br address
sudo ss -lntup
printf '%s\n' 'listen-address=192.168.40.53' 'bind-interfaces' 'no-resolv' 'no-hosts' 'address=/web.ccna.test/192.168.40.53' | sudo tee /etc/dnsmasq.d/ccna-lab.conf
sudo dnsmasq --test
sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq --no-pager

以下僅用於新建、專用 SRV1。先確認 192.168.40.53 已綁定且沒有既有服務使用該位址的 TCP/UDP53。dnsmasq 不提供 DHCP、也不轉送外部 DNS。Ubuntu 的 systemd-resolved 通常只綁 loopback;若有衝突先檢查 ss,不任意停用正式 DNS。必要時在自己的防火牆允許來源 192.168.40.10 到 TCP/UDP53。

查看預期結果 範例輸出,非真實執行
dnsmasq 語法檢查成功,服務 active;PC1 指定 DNS 查詢回傳 192.168.40.53。
04

準備 C 開啟可辨識的 HTTP 測試頁

在 SRV1 的另一個終端機執行,下列 HTTP server 留在前景。只供隔離實驗,不是正式網站伺服器;如防火牆啟用,允許 PC1 到 TCP8080。練習結束按 Ctrl+C 停止;移除本題 dnsmasq 設定後重新啟動 dnsmasq,依原紀錄還原主機網路設定。

展開參考指令 SRV1 Linux · 依每行命令切換;主機命令在作業系統終端機執行
提示字元僅供辨識
mkdir -p "$HOME/ccna-http-lab"
printf 'CCNA HTTP LAB\n' > "$HOME/ccna-http-lab/index.html"
python3 -m http.server 8080 --bind 192.168.40.53 --directory "$HOME/ccna-http-lab"

在 SRV1 的另一個終端機執行,下列 HTTP server 留在前景。只供隔離實驗,不是正式網站伺服器;如防火牆啟用,允許 PC1 到 TCP8080。練習結束按 Ctrl+C 停止;移除本題 dnsmasq 設定後重新啟動 dnsmasq,依原紀錄還原主機網路設定。

查看預期結果 範例輸出,非真實執行
PC1 的 curl 顯示 HTTP 200 與 CCNA HTTP LAB;SRV1 終端機可見來源 IP 與 GET 記錄。
05

02 向指定 DNS 解析名稱

在 Windows PC1 命令提示字元執行;明確指定 DNS 位址避免受系統預設 DNS 影響。DNS 成功不代表 HTTP 可連線。

展開參考指令 PC1 · Windows CMD
C:\> 提示字元僅供辨識
ipconfig /all
nslookup web.ccna.test 192.168.40.53

在 Windows PC1 命令提示字元執行;明確指定 DNS 位址避免受系統預設 DNS 影響。DNS 成功不代表 HTTP 可連線。

查看預期結果 範例輸出,非真實執行
Name: web.ccna.test
Address: 192.168.40.53
06

03 分別測試 IP 與名稱的 HTTP

Windows10/11 通常附 curl.exe;PowerShell 使用 curl.exe 避免舊版別名。以 --resolve 暫時指定 HTTP 名稱到 IP 可單獨排除 DNS,但此方式本身沒有測試 DNS。

展開參考指令 PC1 · Windows CMD
C:\> 提示字元僅供辨識
curl.exe -v http://192.168.40.53:8080/
curl.exe -v http://web.ccna.test:8080/

TCP8080 建立連線後,HTTP GET 才要求頁面;-v 顯示連線與回應標頭。

查看預期結果 範例輸出,非真實執行
Connected to ... port 8080
< HTTP/1.1 200 OK
CCNA HTTP LAB
07

04 觀察連線與埠

HTTP 連線可能很快關閉。先開瀏覽器載入測試頁,再查看 ESTABLISHED 或 TIME_WAIT。找不到即時連線不代表未曾成功;可使用自己的封包擷取工具觀察 TCP SYN/SYN-ACK/ACK,DNS UDP 與 TCP 不可混為一談。

展開參考指令 PC1 · Windows CMD
C:\> 提示字元僅供辨識
netstat -ano
nslookup -type=A web.ccna.test 192.168.40.53

HTTP 連線可能很快關閉。先開瀏覽器載入測試頁,再查看 ESTABLISHED 或 TIME_WAIT。找不到即時連線不代表未曾成功;可使用自己的封包擷取工具觀察 TCP SYN/SYN-ACK/ACK,DNS UDP 與 TCP 不可混為一談。

查看預期結果 範例輸出,非真實執行
LocalAddress:臨時埠 → 192.168.40.53:8080;狀態依連線時點而異。
08

05 建立可判讀的故障對照

只在自己的 SRV1 暫停 HTTP8080 服務,再保持 DNS 運作並重做 nslookup/curl,觀察「解析成功但服務連線失敗」。之後恢復 HTTP。再關閉 DNS 作對照前先記錄設定,不修改公用 DNS 或掃描其他 IP。

查看預期結果 範例輸出,非真實執行
DNS 正常、HTTP 停止時,名稱可解析但 curl 連線被拒絕或逾時;恢復服務後回應200。

確認你的設定 VERIFICATION

以下是驗證方法及預期狀態,並非網站實際執行的結果。
nslookup web.ccna.test 192.168.40.53

預期狀態 回傳 192.168.40.53。

NXDOMAIN 與 DNS timeout 是不同問題。

curl.exe -v http://web.ccna.test:8080/

預期狀態 HTTP200 與自訂頁內容。

TCP refusal 先查服務監聽;HTTP404 表示已到達 HTTP 服務但路徑不存在。

常見問題與排查

IP 可開、名稱不可開

核對 DNS 指向、A record、.test 名稱及查詢伺服器;不要誤認為整個 TCP/IP 失效。

DNS 有答案但 HTTP 失敗

核對8080監聽、防火牆、URL scheme 與服務日誌,先排除服務層。

參考資料

把理解,化成進度 CHECKPOINTS

手動完成 0/8

請在你自己的設備確認後勾選。這些是手動紀錄,並非設備自動測試結果。

登入後即可跨裝置保存進度。訪客勾選僅供本頁參考。

依 CCNA v2.2 主題自行編寫之練習,非官方逐字教材。
發布版本 1 · 範例輸出供理解,指令尚待實機驗證。

ORIGINAL LAB