Product SiteDocumentation Site

章 10. 網路架構

10.1. 閘道器
10.2. X.509 certificates
10.2.1. Creating gratis trusted certificates
10.2.2. 公鑰基礎設施:easy-rsa
10.3. 虛擬專用網路
10.3.1. OpenVPN
10.3.2. SSH 下的虛擬專屬網路
10.3.3. 網際網路安全協定
10.3.4. PPTP
10.4. 品質服務
10.4.1. 原則與機制
10.4.2. 組態與應用
10.5. Dynamic Routing
10.6. IPv6
10.6.1. Tunneling
10.7. Domain Name Servers (DNS)
10.7.1. DNS software
10.7.2. Configuring bind
10.8. DHCP
10.8.1. 配置
10.8.2. DHCP and DNS
10.9. Network Diagnosis Tools
10.9.1. Local Diagnosis: netstat
10.9.2. Remote Diagnosis: nmap
10.9.3. Sniffers: tcpdump and wireshark
Linux 繼承整個 Unix 的網路功能,Debian 提供整套建立與管理網路的工具。本章介紹這些工具。

10.1. 閘道器

閘道器是連結多個網路的系統。此名詞通常用於本地網路通往外部 IP 位址的 “出口”。閘道器把每個網路連結在一起,且做為路由器在不同介面間傳送 IP 封包。
區域網路接在私人網址範圍內 (不在網路網路的路由上),閘道器就需要 位址掩蔽 讓其經由網路與外界溝通。掩蔽作業是網路層次的代理工作:內部機器,都被閘道器取代 (因為閘道器有外部的路由位址),藉由掩蔽連結,資料送出出去,進來的資料經由掩蔽連結至內部機器。閘道器以指定的 TCP 埠執行此工作,通常是較高的號碼 (超過 60000)。對外部而言,經由內部機器的連結,就是來自此等保留埠號。
閘道器有兩種 網路位址轉換 (英文縮寫 NAT) 的功能。第一種是 目的 NAT (DNAT),改變封包目的 IP 位址 (與 TCP 或 UDP 埠)。連結追蹤機制同時改變後續封包的連結。第二種 NAT 是 來源 NAT (SNAT),其中的 偽裝 是特例之一;SNAT 改變出去連結的來源 IP 位址 (與 TCP 或 UDP 埠)。如同 DNAT,所有的封包由連結追蹤機制處理。NAT 祗用於 IPv4 及其限制的位址空間;在 IPv6 內,其寬廣的位址技術允許直接在網際網路路由 (並不表示可以近用內部機器,因為防火牆可以過濾流量) 減少 NAT 的用途。
理論講多了,看看實務怎麼做。system into a gateway is a simple matter of enabling the appropriate option in the Linux kernel, 經由 /proc/ 虛擬檔案系統,從 Linux 核心進入 Debian 系統的閘道器:
# echo 1 > /proc/sys/net/ipv4/conf/default/forwarding
/etc/sysctl.conf 設定 net.ipv4.conf.default.forwarding 選項為 1,就能以此方式在開機時自動啟用。

範例 10.1. /etc/sysctl.conf 檔案

net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
在 IPv6 也能取得同樣的效果,把手冊中的 ipv4 換為 ipv6,並使用 net.ipv6.conf.all.forwarding/etc/sysctl.conf 檔案內。
啟用 IPv4 偽裝就有點複雜,涉及組態 netfilter 防火牆。
需組態 netfilter,才能使用 NAT (IPv4)。因為此種組件的主要目的是套件篩選,詳情列在 章 14: “Security (見 節 14.2, “Firewall or Packet Filtering”)。