上一篇我們理解了 interface、IP 與 route。這一篇要更進一步,解釋子網路與 CIDR,並連結到 Kubernetes 的世界。
子網路是把一個大範圍的 IP 切成多個小區塊,讓管理與規劃更有彈性。
192.168.1.0/24
→ 從 192.168.1.0
到 192.168.1.255
。192.168.2.0/24
→ 從 192.168.2.0
到 192.168.2.255
。這兩個不會重疊,所以不同的區段可以清楚分開,方便公司內部分網(例如辦公室一區,伺服器一區)。
如果寫 /25
:
192.168.1.0/25
→ 192.168.1.0
到 192.168.1.127
192.168.1.128/25
→ 192.168.1.128
到 192.168.1.255
👉 這就是把 /24
切成兩半,適合更小規模的子網劃分。
假設你有一個 service IP 範圍是 10.0.0.0/16
,但你的 Pod IP 範圍也設成 10.0.0.0/16
,結果會是:
在企業內部常見的錯誤是:公司內網和 Kubernetes Pod 網段重疊,導致某些流量永遠無法到達,這也是很多初學者在自建 K8s cluster 時踩過的坑。
👉 所以 規劃網段 是 Kubernetes 管理裡一個很重要的功課。這部分通常會跟網管部門一起協調,避免與現有內網衝突。
CIDR (Classless Inter-Domain Routing
) 的寫法是:
IP位址/位元數
/24
= 256 個位址 (2^(32-24))/25
= 128 個位址/16
= 65536 個位址👉 位元數越小,範圍越大;位元數越大,範圍越小。
實務上:
/24
(夠一個小區域的設備使用)。/16
,方便劃分多個子網。/24
或 /16
當 Pod 與 Service 的範圍。在 Kubernetes 裡:
👉 實際除錯時:
kubectl exec -it <pod> -- ip addr
kubectl exec -it <pod> -- ip route
這些基本的 Linux 指令,仍然是 K8s 網路問題排查的利器。
10.0.0.0/8
,結果 K8s 也用 10.0.0.0/16
,導致 VPN 流量斷線。/24
→ 一個子網路有 256 個位址。/25
→ 一個子網路有 128 個位址。理解這些基礎,就能更快看懂 K8s 的網路設計,從節點到 Pod,到 Service 到 Ingress,背後都是這些 Linux 網路觀念的延伸。未來如果你遇到 K8s 網路問題,不妨回頭先用 ip
指令檢查,往往能快速找到關鍵。