第三階段:進階網路應用、資訊安全與新興技術
總結: 本階段是拉開分數差距的關鍵。ACL 匹配邏輯、NAT 類型差異、AAA 框架、SNMP 版本安全性、SDN 架構原理、Python 自動化是競賽新興高頻考點。
必背清單
| 項目 | 必背內容 |
|---|
| ACL 編號 | 基本=2000-2999(只比源IP);高級=3000-3999(五元組);二層=4000-4999(MAC) |
| ACL 匹配 | 從小到大依序匹配,命中即停,預設放行 |
| ACL 應用方向 | Inbound=過濾進入設備的流量;Outbound=過濾離開的流量 |
| NAT 類型 | 靜態=一對一;動態=多對多;PAT/NAPT=多對一(最常用,轉換Port) |
| Easy-IP | NAPT 簡化版,直接用出口介面 IP,公網IP不固定時使用 |
| AAA | Authentication(認證)+ Authorization(授權)+ Accounting(計費/審計) |
| RADIUS Port | 認證/授權=1812;計費=1813;使用 UDP |
| SNMP v3 | 唯一支援加密+認證的版本;v1/v2c 明文不安全 |
| SNMP Port | 查詢=UDP 161;Trap 告警=UDP 162 |
| SDN 核心 | 控制平面與轉發平面分離;OpenFlow=南向介面協定 |
| SSH vs Telnet | SSH=加密(Port 22);Telnet=明文(Port 23),必須禁用 |
一、ACL 存取控制清單
三種 ACL 類型比較(必背)
| 類型 | 編號範圍 | 匹配條件 | 建議部署位置 |
|---|
| 基本 ACL | 2000–2999 | 僅來源 IP + 分片資訊 + 生效時間 | 靠近目的端介面(因為條件少,遠離源端) |
| 高級 ACL | 3000–3999 | 源IP + 目的IP + 協定 + 源Port + 目的Port(五元組) | 靠近源端介面(條件精確,減少不必要流量) |
| 二層 ACL | 4000–4999 | 源/目的 MAC + 以太網協定類型 | 交換機二層介面 |
ACL 工作邏輯(必背)
封包進入 → 按 Rule ID 從小到大依序比對 ACL 規則
→ 命中 permit → 放行,停止繼續比對
→ 命中 deny → 丟棄,停止繼續比對
→ 所有規則都不匹配 → 預設動作(通常是放行)
- 規則編號預設步長為 5(5, 10, 15…)方便日後插入新規則
- 建議明確加入
rule permit source any 放行其他流量,不依賴預設行為
ACL 配置指令(華為)
| 步驟 | 指令 | 說明 |
|---|
| 建立基本 ACL | acl 2000 | 進入 ACL 視圖 |
| 拒絕特定來源 | rule 5 deny source 192.168.1.0 0.0.0.255 | 拒絕 192.168.1.x 網段 |
| 允許其他 | rule 10 permit source any | 放行其他流量 |
| 建立高級 ACL | acl 3000 | |
| 拒絕 Telnet | rule 5 deny tcp source any destination 10.0.0.1 0 destination-port eq 23 | 拒絕任何到 10.0.0.1:23 的流量 |
| 套用至介面(入) | interface GE0/0/1 → traffic-filter inbound acl 2000 | 過濾進入方向 |
| 套用至介面(出) | interface GE0/0/1 → traffic-filter outbound acl 3000 | 過濾離開方向 |
| 查看 ACL | display acl 2000 | |
二、NAT 網路位址轉換
四種 NAT 類型詳細(必背)
| 類型 | 映射關係 | 轉換埠號 | 支援外網主動訪問 | 使用場景 |
|---|
| 靜態 NAT | 1個私網IP ↔ 1個公網IP | 否 | 是 | 對外提供服務的伺服器 |
| 動態 NAT | 多個私網IP → IP 地址池(多對多) | 否 | 否 | 較少使用 |
| PAT / NAPT | 多個私網IP → 1個公網IP(不同Port) | 是 | 否 | 家庭/辦公室上網(最常用) |
| Easy-IP | 多個私網IP → 出口介面IP(動態) | 是 | 否 | 公網IP不固定環境(PPPoE) |
NAPT 工作原理
內網 PC 路由器(出口) 外網伺服器
192.168.1.10:1234 ──→ 203.1.1.1:60001 ──────────→ 8.8.8.8:80
192.168.1.11:5678 ──→ 203.1.1.1:60002 ──────────→ 8.8.8.8:80
路由器維護 NAT 轉換表:
私網IP:Port 公網IP:Port
192.168.1.10:1234 ↔ 203.1.1.1:60001
192.168.1.11:5678 ↔ 203.1.1.1:60002
NAT 配置指令(華為)
| 類型 | 指令 |
|---|
| 靜態 NAT | nat static global 203.1.1.1 inside 192.168.1.10 |
| 定義內網 ACL | acl 2001 → rule permit source 192.168.1.0 0.0.0.255 |
| 建立公網地址池 | nat address-group 1 200.0.0.2 200.0.0.20 |
| NAPT(介面下) | nat outbound 2001 address-group 1 |
| Easy-IP(介面下) | nat outbound 2001 |
| NAT Server(連接埠映射) | nat server protocol tcp global 203.1.1.1 80 inside 192.168.1.10 8080 |
| 查看 NAT 表 | display nat session all |
三、AAA 安全管理框架
AAA 三個核心功能(必背)
| 功能 | 英文 | 說明 |
|---|
| 認證 | Authentication | 驗證「你是誰」→ 帳號密碼/憑證/OTP |
| 授權 | Authorization | 決定「你能做什麼」→ 指令權限/可訪問資源 |
| 計費/審計 | Accounting | 記錄「你做了什麼」→ 操作日誌/時長/流量 |
RADIUS vs TACACS+
| 特性 | RADIUS | TACACS+ |
|---|
| 傳輸層 | UDP | TCP |
| Port | 認證/授權=1812,計費=1813 | 49 |
| 加密範圍 | 僅加密密碼 | 加密整個封包 |
| 認證/授權 | 合併處理 | 分開處理(更靈活) |
| 廠商 | 開放標準 | 思科私有(Cisco) |
AAA 配置流程(華為)
| 步驟 | 指令 | 說明 |
|---|
| 建立認證方案 | authentication-scheme local_auth | |
| 設定認證模式 | authentication-mode local | 本地認證(也可用 radius) |
| 建立域 | domain default | |
| 綁定方案至域 | authentication-scheme local_auth | 在域視圖下 |
| 建立本地用戶 | local-user admin@default password cipher Admin123 | |
| 設定服務類型 | service-type telnet ssh | |
| 設定權限級別 | privilege level 15 | 15=最高權限 |
| VTY 使用 AAA | user-interface vty 0 4 → authentication-mode aaa | |
四、網路安全基礎
常見攻擊類型與防禦
| 攻擊類型 | 描述 | 防禦方式 |
|---|
| DoS / DDoS | 耗盡目標資源,阻斷正常服務 | 防火牆流量清洗、限速 |
| 中間人(MITM) | 竊聽或篡改通訊內容 | SSL/TLS 加密、SSH 取代 Telnet |
| ARP 欺騙 | 偽造 ARP 回應,劫持流量 | 動態 ARP 檢測(DAI)、靜態 ARP 綁定 |
| 網路釣魚 | 偽裝合法站點騙取帳密 | 用戶教育、URL 過濾、反釣魚工具 |
| 暴力破解 | 窮舉所有密碼組合 | 強密碼政策、帳號鎖定機制 |
| 惡意軟體 | 病毒/蠕蟲/勒索軟體 | 防毒軟體、及時打補丁 |
設備安全加固清單(必背,競賽常考)
| 措施 | 說明 |
|---|
| 禁用 Telnet → 啟用 SSH | Telnet 明文傳輸帳密,SSH 加密通道 |
| 加密密碼儲存 | service password-encryption |
| 設定最短密碼長度 | password-policy minimum-length 8 |
| 設定登入超時 | idle-timeout 5 0(5分鐘自動斷線) |
| 關閉不必要服務 | 關閉 HTTP/FTP 伺服器、CDP(思科)等 |
| 定期備份設定檔 | 備份至 FTP/TFTP 伺服器 |
| 及時更新韌體 | 修補已知漏洞,防零日攻擊 |
無線網路安全等級(必背)
| 標準 | 加密算法 | 安全性 | 狀態 |
|---|
| WEP | RC4 | 極低 | 已淘汰,禁用 |
| WPA | TKIP | 低 | 建議避免 |
| WPA2 | CCMP/AES | 高 | 現行標準 |
| WPA3 | SAE | 最高 | 最新標準 |
五、SNMP 網路管理協定
SNMP 核心組件
| 組件 | 說明 |
|---|
| NMS | Network Management System,管理工作站 |
| Agent | 被管設備上的代理程式,回應 NMS 查詢 |
| MIB | Management Information Base,設備資訊資料庫(樹狀結構) |
| OID | 物件識別碼,MIB 中每個物件的唯一編號 |
| Trap | Agent 主動向 NMS 發送的告警報文(事件觸發) |
SNMP 三個版本對比(必背)
| 版本 | 認證方式 | 加密 | 安全性 | 特點 |
|---|
| v1 | Community String(明文) | 無 | 低 | 5種基本操作 |
| v2c | Community String(明文) | 無 | 低 | 新增 GetBulk,效率更高 |
| v3 | 使用者帳號+密碼 | 支援 | 高 | 唯一安全版本,競賽推薦 |
SNMP Port 號(必背)
- UDP 161:NMS 主動查詢 Agent
- UDP 162:Agent 主動發送 Trap 告警給 NMS
六、SDN 軟體定義網路
SDN 與傳統網路架構對比
| 比較項目 | 傳統網路 | SDN |
|---|
| 控制平面 | 分散在每台設備(如 OSPF 各自計算) | 集中在 SDN Controller(統一管理) |
| 轉發平面 | 與控制平面合一 | 與控制平面分離,只負責轉發 |
| 設備配置 | 逐台 CLI 配置,繁瑣 | 集中下發,自動化 |
| 靈活性 | 低 | 高(軟體定義策略) |
| 標準協定 | OSPF/BGP/STP 等 | OpenFlow(南向介面) |
SDN 三層架構
┌─────────────────────────────────────┐
│ 應用層(業務應用) │ ← 網路應用(防火牆/負載均衡/流量分析)
│ 北向介面(REST API) │
├─────────────────────────────────────┤
│ 控制層(SDN Controller) │ ← 核心(iMaster NCE / OpenDaylight)
│ 南向介面(OpenFlow) │
├─────────────────────────────────────┤
│ 轉發層(交換機/路由器) │ ← 只負責按流表轉發
└─────────────────────────────────────┘
SDN 核心概念
| 概念 | 說明 |
|---|
| OpenFlow | SDN 南向介面標準協定,控制器向轉發設備下發流表 |
| 流表(Flow Table) | 替代傳統路由表,可匹配 MAC/IP/Port 多種欄位 |
| 北向介面(NBI) | 控制器與應用層的介面(REST API/Python SDK) |
| 南向介面(SBI) | 控制器與轉發設備的介面(OpenFlow/NETCONF) |
七、NFV 網路功能虛擬化
NFV 核心概念
| 概念 | 說明 |
|---|
| 目的 | 將防火牆/路由器/LB 等硬體功能軟體化,跑在通用 x86 伺服器上 |
| VNF | 虛擬網路功能(如虛擬防火牆、虛擬路由器) |
| NFVi | 基礎設施(計算/儲存/網路虛擬化資源) |
| 軟硬體解耦 | 網路功能不再依賴特定廠商硬體 |
MANO 管理架構
| 組件 | 說明 |
|---|
| NFVO | NFV Orchestrator,整體業務編排 |
| VNFM | VNF Manager,管理 VNF 生命週期(部署/擴縮/刪除) |
| VIM | Virtualised Infrastructure Manager,管理底層虛擬化資源(如 OpenStack) |
八、Python 網路自動化
常用程式庫對比
| 庫名 | 通訊方式 | 適用場景 | 安全性 |
|---|
telnetlib | Telnet | 舊設備自動化 | 低(明文) |
paramiko | SSH | SSH 自動化(底層) | 高 |
netmiko | SSH | 多廠商設備自動化(推薦) | 高 |
NAPALM | SSH/NETCONF | 跨廠商統一 API | 高 |
nornir | 多種 | 大規模並發自動化 | 高 |
telnetlib 基本操作(竟賽考點)
import telnetlib
import time
tn = telnetlib.Telnet('192.168.1.1')
tn.read_until(b'Username:')
tn.write(b'admin\n')
tn.read_until(b'Password:')
tn.write(b'password\n')
tn.write(b'display ip routing-table\n')
time.sleep(1)
output = tn.read_very_eager()
print(output.decode('utf-8'))
tn.close()
netmiko 基本操作
from netmiko import ConnectHandler
device = {
'device_type': 'huawei',
'host': '192.168.1.1',
'username': 'admin',
'password': 'Admin123',
}
with ConnectHandler(**device) as conn:
output = conn.send_command('display ip routing-table')
print(output)
commands = [
'vlan 10',
'vlan 20',
]
conn.send_config_set(commands)
現代開放介面
| 介面 | 協定 | 資料格式 | 用途 |
|---|
| NETCONF | SSH(Port 830) | XML | 結構化設備配置 |
| RESTCONF | HTTP/HTTPS | JSON/XML | RESTful 網路管理 |
| YANG | — | — | 資料建模語言,定義配置結構 |