supernode自动获取ip地址
在 n2n 的 supernode 中,是可以實現針對不同群組 (Community) 分配不同地址段的。這主要依賴於 n2n v2.9+ 版本引入的 Auto-IP 內置分配機制,以及配合 community.list 配置文件來進行精確控制。
直接在 Linux 系統(群暉或 Linux 服務器)上運行
supernode,配置多分段 IP 分配(Auto-IP)非常直接。你需要通過
-c 參數 指定一個 Community 配置文件。以下是具體操作步驟:1. 創建配置文件
在你的系統中找個位置(例如
/etc/n2n/community.list)創建文件:sudo vi /etc/n2n/community.list
2. 編寫地址段規則
在文件中寫入以下內容(每行一個群組):
text
group1 10.100.10.0/25
group2 10.100.10.128/25
- group1: 分配範圍為
10.100.10.1到10.100.10.126。 - group2: 分配範圍為
10.100.10.129到10.100.10.254。
3. 啟動 Supernode
使用
-c 參數加載該文件啟動(假設端口為 7777):supernode -p 7777 -c /etc/n2n/community.list -v
加上
-v 可以實時看到節點註冊和分配 IP 的日誌。4. Edge 端如何獲取地址
在 Edge 端啟動時,刪除原本的
-a [IP] 參數,只需指定對應的群組名:- 加入 Group1:
edge -c group1 -l [Supernode_IP]:7777 -k [密碼] -r - 加入 Group2:
edge -c group2 -l [Supernode_IP]:7777 -k [密碼] -r
Edge 啟動後會自動從 Supernode 獲取該群組對應網段內的空閒 IP。
⚠️ 進階調試提示
- 子網掩碼匹配:
n2n 分配地址時,Edge 端看到的子網掩碼會根據你在community.list中定義的/25自動設置。請確保所有節點都使用自動獲取,不要混用手動設置的/24地址。 - 跨群組互通 (Inter-community):
默認情況下,group1的設備看不到group2的設備(n2n 在二層是隔離的)。
如果你希望這兩個地址段互通,你有兩個選擇:- 方法 A (FRR 路由):在你的群暉上跑兩個 Edge 進程,一個加
group1,一個加group2。然後通過 FRR 在這兩個虛擬網卡之間做路由轉發。 - 方法 B (Supernode 轉發):如果你的 n2n 版本較新,可以在 Supernode 啟動時嘗試開啟轉發,但通常推薦 方法 A,因為配合 FRR 可以更精確控制哪些內網段可以互訪。
- 方法 A (FRR 路由):在你的群暉上跑兩個 Edge 進程,一個加
1. 配置邏輯
n2n 的 Supernode 可以將特定的 Community 名稱與特定的子網段(Subnet)進行綁定。
-
- Group1 (community1): 綁定到
10.100.10.0/25(地址範圍通常為 .1 - .126)。 - Group2 (community2): 綁定到
10.100.10.128/25(地址範圍通常為 .129 - .254)。
- Group1 (community1): 綁定到
2. 具體實施步驟
第一步:準備
community.list 文件在 Supernode 的配置目錄(通常是
/etc/n2n/ 或你掛載的 Docker 目錄)中創建或修改 community.list:# 格式:[Community名稱] [網段/掩碼]
group1 10.100.10.0/25
group2 10.100.10.128/25
注:這會強制要求名為
group1 的節點從前半段取地址,group2 從後半段取地址。 第二步:啟動 Supernode 並加載配置
啟動 Supernode 時,需要使用
-c 參數指定該列表文件:supernode -l [端口] -c /path/to/community.list
第三步:Edge 端獲取地址
在 Edge 端啟動時,不要指定
-a 參數(即不手動設固定 IP),只需指定對應的 Community 名稱:-
- Edge 1:
edge -c group1 -l [Supernode_IP:Port] ...-> 會自動獲得10.100.10.x(1-126 之間)。 - Edge 2:
edge -c group2 -l [Supernode_IP:Port] ...-> 會自動獲得10.100.10.y(129-254 之間)。
- Edge 1:
3. 注意事項
-
- 路由互通:雖然分配在不同的
/25段,但由於它們屬於不同的 Community,n2n 默認情況下不同 Community 是不互通的。 - 跨組訪問:如果你希望這兩個組能互相訪問,你仍然需要依靠你之前配置的 FRR。在群暉上運行一個同時加入
group1和group2的 Edge,並在 FRR 中將這兩個網段宣告出去。 - 掩碼一致性:建議在
community.list中明確定義掩碼,否則 n2n 可能會默認分配/24導致地址段重疊。
- 路由互通:雖然分配在不同的
共有 0 条评论