SheepDev

IP與網路計算

縮寫的 IPv6 是否相同?同時檢查範圍

使用工具

長 IPv6 字串常讓同位址看似不同目標,省略前導零和連續零可大改外觀。排查日誌漏搜或設定差異前,先用 IPv6 表記工具統一形式。

互換長短表示

同位址的兩個輸入
2001:0db8:0000:0000:0000:0000:0000:0001
2001:db8::1

分別輸入後完整表示和數值相同。IPv6 由八組十六位元構成,每組十六進位,0db8 去前零為 db8 值不變。:: 表示省略零組,不僅是兩個分隔符。

十六進位大小寫不改位址,2001:DB8::1 與小寫文字不同但位址同。監控審查應區分原文與正規值,不必改原日誌。

展開 :: 使總數為八組

完整表示檢查位置
2001:db8:0:1::1
2001:0db8:0000:0001:0000:0000:0000:0001

可見五組 2001、db8、0、1、末 1,故 :: 補三組零。壓縮會隱藏位元位置,讀 /64 等邊界前先展開八組。

兩處 :: 無法唯一分配省略組數,2001::db8::1 無效。壓縮須可還原,不能隨意改冒號。非十六進位或超長組也不應期待自動修成有效位址。

多段零也可統一表示

2001:db8:0:0:1:0:0:1 有兩段等長零,工具輸出 2001:db8::1:0:0:1,最長優先、同長取左。其他有效壓縮形式不一定數值不同。

查目標是否改變就比完整或整數值;查是否符合格式規範則也看文字。分開數值身分與顯示一致性,可減少無用變更通知而保留格式檢查。

位址壓縮與 /64 範圍不同

2001:db8:1::1234 是單位址,加 /64 表前綴範圍,網路為 2001:db8:1::,終點 2001:db8:1:0:ffff:ffff:ffff:ffff。:: 變短不縮位元數或範圍。

/64 共 2⁶⁴=18,446,744,073,709,551,616,不應全列。包含差異用 CIDR 範圍比較,也不套 IPv4 廣播保留機械減二。

末尾像 IPv4 仍可能是 IPv6

同一 IPv4 對應 IPv6 值
::ffff:192.0.2.1
::ffff:c000:201
0000:0000:0000:0000:0000:ffff:c000:0201

192.0.2.1 對應十六進位 c000:0201,工具輸出 ::ffff:c000:201。只取熟悉點分後綴可能丟 IPv6 語境,應先確認日誌/API 表示再定符合規則。

能解析不等於接通 IPv4/IPv6 網路。表記轉換不設定通道轉換器也不連線目標,讀取值與啟用網路功能不同。

可讀不等於可用

例子用文件前綴 2001:db8::/32,不指真實目標。語法有效不證明存在、路由或許可,SheepDev 只算輸入,不 DNS 查詢或探連接埠。

比日誌值先看完整與整數,範圍用 CIDR 計算,包含用 CIDR 比較。連接埠、介面識別和 URL 語法是另資訊,應辨識輸入組成後給適當工具。

URL 中的 IPv6 還需區分括號的作用

https://[2001:db8::1]:8443/path 同時有 IPv6 冒號與連接埠分隔符。方括號屬於 URL 語法,不是位址本身。位址轉換輸入 2001:db8::1,整個字串則用 URL 分解。簡單按冒號切分即使對 IPv4 有效,也可能誤拆 IPv6。

展開八組有助核對零的位置,文字變長並不改變位址。台帳與日誌可先統一表示再比身分。僅前部相似也不能判定同網路,還需前綴長。位址相同與屬於某範圍是不同問題,後者用 CIDR 或包含比較。

2001:db8:: 是文件範例位址,解析成功不表示可從網際網路到達。語法、配置、路由和存取控制需分別核對。先用正規化消除表示歧義,再繼續定位。依靠 128 位元值與前綴關係而非逐位址列舉,才能處理巨大 IPv6 範圍。

參考資料

使用工具

指南 →