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.110.100.10.126
  • group2: 分配範圍為 10.100.10.12910.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。

⚠️ 進階調試提示
  1. 子網掩碼匹配
    n2n 分配地址時,Edge 端看到的子網掩碼會根據你在 community.list 中定義的 /25 自動設置。請確保所有節點都使用自動獲取,不要混用手動設置的 /24 地址。
  2. 跨群組互通 (Inter-community)
    默認情況下,group1 的設備看不到 group2 的設備(n2n 在二層是隔離的)。
    如果你希望這兩個地址段互通,你有兩個選擇:
    • 方法 A (FRR 路由):在你的群暉上跑兩個 Edge 進程,一個加 group1,一個加 group2。然後通過 FRR 在這兩個虛擬網卡之間做路由轉發。
    • 方法 B (Supernode 轉發):如果你的 n2n 版本較新,可以在 Supernode 啟動時嘗試開啟轉發,但通常推薦 方法 A,因為配合 FRR 可以更精確控制哪些內網段可以互訪。


1. 配置邏輯
n2n 的 Supernode 可以將特定的 Community 名稱與特定的子網段(Subnet)進行綁定。 
    • Group1 (community1): 綁定到 10.100.10.0/25 (地址範圍通常為 .1 - .126)。
    • Group2 (community2): 綁定到 10.100.10.128/25 (地址範圍通常為 .129 - .254)。

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 之間)。

3. 注意事項
    • 路由互通:雖然分配在不同的 /25 段,但由於它們屬於不同的 Community,n2n 默認情況下不同 Community 是不互通的
    • 跨組訪問:如果你希望這兩個組能互相訪問,你仍然需要依靠你之前配置的 FRR。在群暉上運行一個同時加入 group1group2 的 Edge,並在 FRR 中將這兩個網段宣告出去。
    • 掩碼一致性:建議在 community.list 中明確定義掩碼,否則 n2n 可能會默認分配 /24 導致地址段重疊。 

版权声明:
作者:yxbinghe
链接:https://www.zhanhao.ch/?p=686
来源:ice.99
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>