跳转至

设备配置指南

This translation was generated using artificial intelligence and has not been reviewed by a human translator. It may contain inaccuracies or errors and should not be relied upon.

本指南将引导您从头到尾完成DoubleZero设备(DZD)的配置。每个阶段与入驻清单相对应。


整体架构概览

在深入步骤之前,先了解您正在构建的整体架构:

flowchart TB
    subgraph Onchain
        SC[DoubleZero账本]
    end

    subgraph Your Infrastructure
        MGMT[管理服务器<br/>DoubleZero CLI]
        DZD[您的DZD<br/>Arista交换机]
        DZD ---|WAN链路| DZD2[您的其他DZD]
    end

    subgraph Other Contributor
        OtherDZD[他们的DZD]
    end

    subgraph Users
        VAL[验证器]
        RPC[RPC节点]
    end

    MGMT -.->|注册设备、<br/>链路、接口| SC
    DZD ---|DZX链路| OtherDZD
    VAL ---|通过互联网连接| DZD
    RPC ---|通过互联网连接| DZD

阶段1:前提条件

在配置设备之前,您需要完成物理硬件的安装并分配一些IP地址。

所需条件

要求 用途
DZD硬件 Arista 7280CR3A交换机(参见硬件规格
机架空间 4U,需要适当的气流
电源 冗余供电,建议约4KW
管理访问 SSH/控制台访问以配置交换机
互联网连接 用于发布指标和从控制器获取配置
公共IPv4地址块 DZ前缀池至少需要/29(参见下方)

安装DoubleZero CLI

DoubleZero CLI(doublezero)在整个配置过程中用于注册设备、创建链路和管理您的贡献。应将其安装在管理服务器或虚拟机上——而不是DZD交换机本身。交换机只运行Config Agent和Telemetry Agent(在阶段4中安装)。

Ubuntu / Debian:

curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero

Rocky Linux / RHEL:

curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero

验证守护进程正在运行:

sudo systemctl status doublezerod

了解您的DZ前缀

您的DZ前缀是DoubleZero协议管理用于IP分配的公共IP地址块。

flowchart LR
    subgraph "您的/29地址块(8个IP)"
        IP1["第一个IP<br/>为您的设备<br/>保留"]
        IP2["IP 2"]
        IP3["IP 3"]
        IP4["..."]
        IP8["IP 8"]
    end

    IP1 -->|分配给| LO[DZD上的<br/>Loopback100]
    IP2 -->|分配给| U1[用户1]
    IP3 -->|分配给| U2[用户2]

DZ前缀的使用方式:

  • 第一个IP:为您的设备保留(分配给Loopback100接口)
  • 剩余IP:分配给连接到您DZD的特定用户类型:
    • IBRLWithAllocatedIP用户
    • EdgeFiltering用户
    • 多播发布者
  • IBRL用户:不消耗此池中的IP(他们使用自己的公共IP)

DZ前缀规则

您不能将这些地址用于:

  • 您自己的网络设备
  • DIA接口上的点对点链路
  • 管理接口
  • DZ协议之外的任何基础设施

要求:

  • 必须是全球可路由(公共)IPv4地址
  • 私有IP范围(10.x、172.16-31.x、192.168.x)会被智能合约拒绝
  • 最小大小:/29(8个地址),建议使用更大的前缀(例如/28、/27)
  • 整个地址块必须可用——不要预先分配任何地址

如果您需要为自己的设备(DIA接口IP、管理等)分配地址,请使用单独的地址池


阶段2:账户设置

在此阶段,您将创建在网络上标识您和您设备的加密密钥。

在哪里运行CLI

请勿在交换机上安装CLI

DoubleZero CLI(doublezero)应安装在管理服务器或虚拟机上,而不是您的Arista交换机上。

flowchart LR
    subgraph "管理服务器/虚拟机"
        CLI[DoubleZero CLI]
        KEYS[您的密钥对]
    end

    subgraph "您的DZD交换机"
        CA[Config Agent]
        TA[Telemetry Agent]
    end

    CLI -->|创建设备、链路| BC[区块链]
    CA -->|拉取配置| CTRL[控制器]
    TA -->|提交指标| BC
安装在管理服务器上 安装在交换机上
doublezero CLI Config Agent
您的服务密钥 Telemetry Agent
您的指标发布者密钥 指标发布者密钥(副本)

什么是密钥?

可以将密钥理解为安全登录凭据:

  • 服务密钥:您的贡献者身份——用于运行CLI命令
  • 指标发布者密钥:您设备用于提交遥测数据的身份

两者都是加密密钥对(您共享的公钥,您保密的私钥)。

flowchart LR
    subgraph "您的密钥"
        SK[服务密钥<br/>~/.config/solana/id.json]
        MK[指标发布者密钥<br/>~/.config/doublezero/metrics-publisher.json]
    end

    SK -->|用于| CLI[CLI命令<br/>doublezero device create<br/>doublezero link create]
    MK -->|用于| TEL[Telemetry Agent<br/>链上提交指标]

步骤2.1:生成服务密钥

这是您与DoubleZero交互的主要身份。

doublezero keygen

这将在默认位置创建一个密钥对。输出显示您的公钥——这是您将与DZF共享的内容。

步骤2.2:生成指标发布者密钥

此密钥由Telemetry Agent用于签署指标提交。

doublezero keygen -o ~/.config/doublezero/metrics-publisher.json

步骤2.3:向DZF提交密钥

联系DoubleZero基金会或Malbec Labs并提供:

  1. 您的服务密钥公钥
  2. 您的GitHub用户名(用于仓库访问)

他们将:

  • 在链上创建您的贡献者账户
  • 授予对私有贡献者仓库的访问权限

步骤2.4:验证您的账户

确认后,验证您的贡献者账户是否存在:

doublezero contributor list

您应该在列表中看到您的贡献者代码。

步骤2.5:访问贡献者仓库

malbeclabs/contributors 仓库包含:

  • 基础设备配置
  • TCAM配置文件
  • ACL配置
  • 额外的安装说明

请按照其中的说明进行设备特定配置。


阶段3:设备配置

现在您将在区块链上注册物理设备并配置其接口。

了解设备类型

flowchart TB
    subgraph "边缘设备"
        E[边缘DZD]
        EU[用户连接到此处]
        EU --> E
        E <-->|DZX链路| ED[其他DZD]
    end

    subgraph "传输设备"
        T[传输DZD]
        T <-->|WAN链路| T2[另一个DZD]
        T <-->|DZX链路| TD[其他DZD]
    end

    subgraph "混合设备"
        H[混合DZD]
        HU[用户连接到此处]
        HU --> H
        H <-->|WAN链路| H2[另一个DZD]
        H <-->|DZX链路| HD[其他DZD]
    end
类型 功能 使用时机
边缘 仅接受用户连接 单一位置,仅面向用户
传输 在设备之间传输流量 骨干连接,无用户
混合 同时支持用户连接和骨干 最常见——功能全面

步骤3.1:查找您的位置和交换中心

在创建设备之前,查找您的数据中心位置和最近交换中心的代码:

# 列出可用位置(数据中心)
doublezero location list

# 列出可用交换中心(互连点)
doublezero exchange list

步骤3.2:在链上创建您的设备

在区块链上注册您的设备:

doublezero device create \
  --code <YOUR_DEVICE_CODE> \
  --contributor <YOUR_CONTRIBUTOR_CODE> \
  --device-type hybrid \
  --location <LOCATION_CODE> \
  --exchange <EXCHANGE_CODE> \
  --public-ip <DEVICE_PUBLIC_IP> \
  --dz-prefixes <YOUR_DZ_PREFIX>

示例:

doublezero device create \
  --code nyc-dz001 \
  --contributor acme \
  --device-type hybrid \
  --location EQX-NY5 \
  --exchange nyc \
  --public-ip "203.0.113.10" \
  --dz-prefixes "198.51.100.0/28"

预期输出:

Signature: 4vKz8H...truncated...7xPq2

验证您的设备是否已创建:

doublezero device list | grep nyc-dz001

参数说明:

参数 含义
--code 您设备的唯一名称(例如,nyc-dz001
--contributor 您的贡献者代码(由DZF提供)
--device-type hybridtransitedge
--location 来自location list的数据中心代码
--exchange 来自exchange list的最近交换中心代码
--public-ip 用户通过互联网连接到您设备的公共IP
--dz-prefixes 分配给用户的IP地址块

步骤3.3:创建必需的环回接口

每个设备需要两个环回接口用于内部路由:

# VPNv4环回
doublezero device interface create <DEVICE_CODE> Loopback255 --loopback-type vpnv4

# IPv4环回
doublezero device interface create <DEVICE_CODE> Loopback256 --loopback-type ipv4

预期输出(每个命令):

Signature: 3mNx9K...truncated...8wRt5

步骤3.4:创建物理接口

注册您将使用的物理端口:

# 基础接口
doublezero device interface create <DEVICE_CODE> Ethernet1/1

预期输出:

Signature: 7pQw2R...truncated...4xKm9

步骤3.5:创建CYOA接口(用于边缘/混合设备)

混合型和边缘型DZD需要两个公共IP地址,用户在这些地址上终止其GRE隧道。用户可以通过单播、多播或两者连接,哪个IP用于哪个目的会按用户轮换。

两个IP都必须使用--user-tunnel-endpoint true注册,可以在物理接口或环回接口上。这包括您在设备创建时提供的IP;该IP仍需在此处明确注册。

如果您受IP约束,可以使用DZ前缀的第一个/32作为两个IP之一。

CYOA和DIA

类型 标志 用途
DIA --interface-dia dia 将端口标记为直接互联网访问
CYOA --interface-cyoa <子类型> 声明用户如何将GRE隧道连接到您的设备

CYOA标志始终设置在物理接口(以太网端口或端口聚合)上,从不设置在环回接口上。

CYOA子类型 使用场景
gre-over-dia 用户通过公共互联网连接。最常见。
gre-over-private-peering 用户通过直接交叉连接或私有电路连接
gre-over-public-peering 用户在互联网交换点(IX)与您对等
gre-over-fabric 用户共同托管并通过本地网络结构连接
gre-over-cable 直接电缆连接到单个专用用户

场景A:单物理接口

到ISP的一个物理上行链路。Ethernet1/1是CYOA和DIA接口,承载两个公共IP之一。Loopback100承载第二个公共IP。

flowchart LR
    USERS(["终端用户"])

    subgraph DZD["DZD"]
        E1["Eth1/1
        203.0.113.1/30
        CYOA · DIA · user tunnel endpoint"]
        LO["Loopback100
        198.51.100.1/32\n        user tunnel endpoint"]
        E1 --- LO
    end

    ISP["ISP路由器
    203.0.113.2/30"]

    ISP -- "10GbE" --- E1
    USERS -. "GRE隧道" .-> E1
    USERS -. "GRE隧道" .-> LO
接口 --interface-cyoa --interface-dia --ip-net --bandwidth --cir --routing-mode --user-tunnel-endpoint
Ethernet1/1 gre-over-dia dia 贡献者分配的IP/子网 端口速度 承诺速率 bgpstatic true
Loopback100 您的公共/32 0bps true

场景A的示例命令:

doublezero device interface create mydzd-nyc01 Ethernet1/1 \
  --interface-cyoa gre-over-dia \
  --interface-dia dia \
  --ip-net 203.0.113.1/30 \
  --bandwidth 10Gbps \
  --cir 1Gbps \
  --routing-mode bgp \
  --user-tunnel-endpoint true

doublezero device interface create mydzd-nyc01 Loopback100 \
  --ip-net 198.51.100.1/32 \
  --bandwidth 0bps \
  --user-tunnel-endpoint true

场景B:端口聚合(LAG)

DZD通过带有IP的端口聚合连接到上游设备。端口聚合承载一个公共IP并是CYOA端点。Loopback100承载第二个公共IP。

flowchart LR
    USERS(["终端用户"])

    subgraph SW["上游路由器/交换机"]
        SWPC(["bond0
        203.0.113.2/30"])
    end

    subgraph DZD["DZD"]
        subgraph PC["Port-Channel1 · 203.0.113.1/30 · CYOA · DIA · user tunnel endpoint"]
            E1["Eth1/1"]
            E2["Eth2/1"]
        end
        LO["Loopback100
        198.51.100.1/32\n        user tunnel endpoint"]
        PC --- LO
    end

    SWPC -- "2x 10GbE" --- PC
    USERS -. "GRE隧道" .-> PC
    USERS -. "GRE隧道" .-> LO
接口 --interface-cyoa --interface-dia --ip-net --bandwidth --cir --routing-mode --user-tunnel-endpoint
Port-Channel1 gre-over-dia dia 贡献者分配的IP/子网 组合LAG速度 承诺速率 bgpstatic true
Loopback100 您的公共/32 0bps true

场景B的示例命令:

doublezero device interface create mydzd-fra01 Port-Channel1 \
  --interface-cyoa gre-over-dia \
  --interface-dia dia \
  --ip-net 203.0.113.1/30 \
  --bandwidth 20Gbps \
  --cir 2Gbps \
  --routing-mode bgp \
  --user-tunnel-endpoint true

doublezero device interface create mydzd-fra01 Loopback100 \
  --ip-net 198.51.100.1/32 \
  --bandwidth 0bps \
  --user-tunnel-endpoint true

场景C:到独立路由器的双物理上行链路

每个物理接口连接到不同的上游路由器。两个公共IP位于Loopback100和Loopback101上,均注册为用户隧道端点。

flowchart LR
    USERS(["终端用户"])

    RA["路由器A
    203.0.113.2/30"]
    RB["路由器B
    203.0.113.6/30"]

    subgraph DZD["DZD"]
        E1["Eth1/1
        203.0.113.1/30
        CYOA · DIA"]
        E2["Eth2/1
        203.0.113.5/30
        CYOA · DIA"]
        LO0["Loopback100
        198.51.100.1/32\n        user tunnel endpoint"]
        LO1["Loopback101
        198.51.100.2/32\n        user tunnel endpoint"]
        E1 --> LO0
        E2 --> LO1
    end

    RA -- "10GbE" --- E1
    RB -- "10GbE" --- E2
    USERS -. "GRE隧道" .-> LO0
    USERS -. "GRE隧道" .-> LO1
接口 --interface-cyoa --interface-dia --ip-net --bandwidth --cir --routing-mode --user-tunnel-endpoint
Ethernet1/1 gre-over-dia dia 贡献者分配的IP/子网 端口速度 承诺速率 bgpstatic
Ethernet2/1 gre-over-dia dia 贡献者分配的IP/子网 端口速度 承诺速率 bgpstatic
Loopback100 您的公共/32 0bps true
Loopback101 您的公共/32 0bps true

场景C的示例命令:

doublezero device interface create mydzd-ams01 Ethernet1/1 \
  --interface-cyoa gre-over-dia \
  --interface-dia dia \
  --ip-net 203.0.113.1/30 \
  --bandwidth 10Gbps \
  --cir 1Gbps \
  --routing-mode bgp

doublezero device interface create mydzd-ams01 Ethernet2/1 \
  --interface-cyoa gre-over-dia \
  --interface-dia dia \
  --ip-net 203.0.113.5/30 \
  --bandwidth 10Gbps \
  --cir 1Gbps \
  --routing-mode bgp

doublezero device interface create mydzd-ams01 Loopback100 \
  --ip-net 198.51.100.1/32 \
  --bandwidth 0bps \
  --user-tunnel-endpoint true

doublezero device interface create mydzd-ams01 Loopback101 \
  --ip-net 198.51.100.2/32 \
  --bandwidth 0bps \
  --user-tunnel-endpoint true

步骤3.6:验证您的设备

doublezero device list

示例输出:

 account                                      | code      | contributor | location | exchange | device_type | public_ip    | dz_prefixes     | users | max_users | status    | health  | mgmt_vrf | owner
 7xKm9pQw2R4vHt3...                          | nyc-dz001 | acme        | EQX-NY5  | nyc      | hybrid      | 203.0.113.10 | 198.51.100.0/28 | 0     | 14        | activated | pending |          | 5FMtd5Woq5XAAg54...

您的设备应显示状态activated


阶段4:链路建立与代理安装

链路将您的设备连接到DoubleZero网络的其余部分。

了解链路

flowchart LR
    subgraph "您的网络"
        D1[您的DZD 1<br/>NYC]
        D2[您的DZD 2<br/>LAX]
    end

    subgraph "其他贡献者"
        O1[他们的DZD<br/>NYC]
    end

    D1 ---|WAN链路<br/>同一贡献者| D2
    D1 ---|DZX链路<br/>不同贡献者| O1
链路类型 连接对象 接受方式
WAN链路 您的两个设备 自动(您拥有两端)
DZX链路 您的设备与另一个贡献者 需要对方接受

步骤4.1:创建WAN链路(如果您有多个设备)

WAN链路连接您自己的设备:

doublezero link create wan \
  --code <LINK_CODE> \
  --contributor <YOUR_CONTRIBUTOR> \
  --side-a <DEVICE_1_CODE> \
  --side-a-interface <INTERFACE_ON_DEVICE_1> \
  --side-z <DEVICE_2_CODE> \
  --side-z-interface <INTERFACE_ON_DEVICE_2> \
  --bandwidth 10000 \
  --mtu 9000 \
  --delay-ms 20 \
  --jitter-ms 1

示例:

doublezero link create wan \
  --code nyc-lax-wan01 \
  --contributor acme \
  --side-a nyc-dz001 \
  --side-a-interface Ethernet3/1 \
  --side-z lax-dz001 \
  --side-z-interface Ethernet3/1 \
  --bandwidth 10000 \
  --mtu 9000 \
  --delay-ms 65 \
  --jitter-ms 1

预期输出:

Signature: 5tNm7K...truncated...9pRw2

步骤4.2:创建DZX链路

DZX链路将您的设备直接连接到另一个贡献者的DZD:

doublezero link create dzx \
  --code <DEVICE_CODE_A:DEVICE_CODE_Z> \
  --contributor <YOUR_CONTRIBUTOR> \
  --side-a <YOUR_DEVICE_CODE> \
  --side-a-interface <YOUR_INTERFACE> \
  --side-z <OTHER_DEVICE_CODE> \
  --bandwidth <BANDWIDTH in Kbps, Mbps, or Gbps> \
  --mtu <MTU> \
  --delay-ms <DELAY> \
  --jitter-ms <JITTER>

预期输出:

Signature: 8mKp3W...truncated...2nRx7

创建DZX链路后,另一个贡献者必须接受它:

# 另一个贡献者运行此命令
doublezero link accept \
  --code <LINK_CODE> \
  --side-z-interface <THEIR_INTERFACE>

预期输出(接受方贡献者):

Signature: 6vQt9L...truncated...3wPm4

步骤4.3:验证链路

doublezero link list

示例输出:

 account                                      | code          | contributor | side_a_name | side_a_iface_name | side_z_name | side_z_iface_name | link_type | bandwidth | mtu  | delay_ms | jitter_ms | delay_override_ms | tunnel_id | tunnel_net      | status    | health  | owner
 8vkYpXaBW8RuknJq...                         | nyc-dz001:lax-dz001 | acme        | nyc-dz001   | Ethernet3/1       | lax-dz001   | Ethernet3/1       | WAN       | 10Gbps    | 9000 | 65.00ms  | 1.00ms    | 0.00ms            | 42        | 172.16.0.84/31  | activated | pending | 5FMtd5Woq5XAAg54...

一旦两端都配置完成,链路应显示状态activated


代理安装

两个软件代理在您的DZD上运行:

flowchart TB
    subgraph "您的DZD"
        CA[Config Agent]
        TA[Telemetry Agent]
        HW[交换机硬件/软件]
    end

    CA -->|轮询配置| CTRL[控制器服务]
    CA -->|应用配置| HW

    HW -->|指标| TA
    TA -->|链上提交| BC[DoubleZero账本]
代理 功能
Config Agent 从控制器拉取配置,应用到您的交换机
Telemetry Agent 测量到其他设备的延迟/丢包,链上报告指标

步骤4.4:安装Config Agent

在交换机上启用API

添加到EOS配置:

management api eos-sdk-rpc
    transport grpc eapilocal
        localhost loopback vrf default
        service all
        no disabled

VRF注意事项

如果您的管理VRF名称不同(例如management),请将default替换为您的管理VRF名称。

下载并安装代理

# 在交换机上进入bash
switch# bash
$ sudo bash
# cd /mnt/flash
# wget AGENT_DOWNLOAD_URL
# exit
$ exit

# 安装为EOS扩展
switch# copy flash:AGENT_FILENAME extension:
switch# extension AGENT_FILENAME
switch# copy installed-extensions boot-extensions

验证扩展

switch# show extensions

状态应为"A, I, B":

Name                                        Version/Release     Status     Extension
------------------------------------------- ------------------- ---------- ---------
AGENT_FILENAME    MAINNET_CLIENT_VERSION/1             A, I, B    1

A: available | NA: not available | I: installed | F: forced | B: install at boot

配置并启动代理

添加到EOS配置:

daemon doublezero-agent
    exec /usr/local/bin/doublezero-agent -pubkey <YOUR_DEVICE_PUBKEY>
    no shut

VRF注意事项

如果您的管理VRF不是default(即命名空间不是ns-default),请在exec命令前加上exec /sbin/ip netns exec ns-<VRF>。例如,如果您的VRF是management

daemon doublezero-agent
    exec /sbin/ip netns exec ns-management /usr/local/bin/doublezero-agent -pubkey <YOUR_DEVICE_PUBKEY>
    no shut

doublezero device list获取您的设备公钥(account列)。

验证是否正在运行

switch# show agent doublezero-agent logs

您应该看到"Starting doublezero-agent"以及成功的控制器连接。

步骤4.5:安装Telemetry Agent

将指标发布者密钥复制到设备

scp ~/.config/doublezero/metrics-publisher.json <SWITCH_IP>:/mnt/flash/metrics-publisher-keypair.json

在链上注册指标发布者

doublezero device update \
  --pubkey <DEVICE_ACCOUNT> \
  --metrics-publisher <METRICS_PUBLISHER_PUBKEY>

从您的metrics-publisher.json文件获取公钥。

下载并安装代理

switch# bash
$ sudo bash
# cd /mnt/flash
# wget TELEMETRY_DOWNLOAD_URL
# exit
$ exit

# 安装为EOS扩展
switch# copy flash:TELEMETRY_FILENAME extension:
switch# extension TELEMETRY_FILENAME
switch# copy installed-extensions boot-extensions

验证扩展

switch# show extensions

状态应为"A, I, B":

Name                                        Version/Release     Status     Extension
------------------------------------------- ------------------- ---------- ---------
TELEMETRY_FILENAME    MAINNET_CLIENT_VERSION/1             A, I, B    1

A: available | NA: not available | I: installed | F: forced | B: install at boot

配置并启动代理

添加到EOS配置:

daemon doublezero-telemetry
    exec /usr/local/bin/doublezero-telemetry --local-device-pubkey <DEVICE_ACCOUNT> --env mainnet --keypair /mnt/flash/metrics-publisher-keypair.json
    no shut

VRF注意事项

如果您的管理VRF不是default(即命名空间不是ns-default),请在exec命令中添加--management-namespace ns-<VRF>。例如,如果您的VRF是management

daemon doublezero-telemetry
    exec /usr/local/bin/doublezero-telemetry --management-namespace ns-management --local-device-pubkey <DEVICE_ACCOUNT> --env mainnet --keypair /mnt/flash/metrics-publisher-keypair.json
    no shut

验证是否正在运行

switch# show agent doublezero-telemetry logs

您应该看到"Starting telemetry collector"和"Starting submission loop"。


阶段5:链路磨合

所有新链路在承载流量前必须完成磨合

新链路必须至少排水24小时,然后才能激活用于生产流量。此磨合要求在RFC12:网络配置中定义,规定链路就绪前需要约200,000个DZ账本槽位(约20小时)的干净指标。

在代理安装并运行后,在metrics.doublezero.xyz上监控您的链路至少连续24小时:

  • "DoubleZero Device-Link Latencies"仪表板——验证链路上随时间零丢包
  • "DoubleZero Network Metrics"仪表板——验证链路上零错误

只有当磨合期显示干净的链路(零丢包和零错误)时,才能解除排水状态。


阶段6:验证与激活

通过此清单确认一切正常工作。

您的设备初始锁定(max_users = 0

创建设备时,max_users默认设置为0。这意味着还没有用户可以连接到它。这是有意为之——您必须在接受用户流量之前验证一切正常。

在将max_users设置为0以上之前,您必须:

  1. 确认所有链路已在metrics.doublezero.xyz上完成24小时磨合,零丢包/错误
  2. 与DZ/Malbec Labs协调进行连接测试:
    • 测试用户能否连接到您的设备?
    • 用户是否通过DZ网络接收路由?
    • 用户是否能端到端通过DZ网络路由流量?
  3. 仅在DZ/ML确认测试通过后,将max_users设置为96:
doublezero device update --pubkey <DEVICE_ACCOUNT> --max-users 96

设备检查

# 您的设备应显示状态"activated"
doublezero device list | grep <YOUR_DEVICE_CODE>

预期输出:

 7xKm9pQw2R4vHt3... | nyc-dz001 | acme | EQX-NY5 | nyc | hybrid | 203.0.113.10 | 198.51.100.0/28 | 0 | 14 | activated | pending | | 5FMtd5Woq5XAAg54...
# 您的接口应被列出
doublezero device interface list | grep <YOUR_DEVICE_CODE>

预期输出:

 nyc-dz001 | Loopback255 | loopback | vpnv4 | none | none | 0 | 0 | 1500 | static | 0 | 172.16.1.91/32  | 56 | false | activated
 nyc-dz001 | Loopback256 | loopback | ipv4  | none | none | 0 | 0 | 1500 | static | 0 | 172.16.1.100/32 | 0  | false | activated
 nyc-dz001 | Ethernet1/1 | physical | none  | none | none | 0 | 0 | 1500 | static | 0 |                 | 0  | false | activated

链路检查

# 链路应显示状态"activated"
doublezero link list | grep <YOUR_DEVICE_CODE>

预期输出:

 8vkYpXaBW8RuknJq... | nyc-lax-wan01 | acme | nyc-dz001 | Ethernet3/1 | lax-dz001 | Ethernet3/1 | WAN | 10Gbps | 9000 | 65.00ms | 1.00ms | 0.00ms | 42 | 172.16.0.84/31 | activated | pending | 5FMtd5Woq5XAAg54...

代理检查

在交换机上:

# Config Agent应显示成功的配置拉取
switch# show agent doublezero-agent logs | tail -20

# Telemetry Agent应显示成功的提交
switch# show agent doublezero-telemetry logs | tail -20

最终验证图

flowchart TB
    subgraph "验证清单"
        D[设备状态:已激活?]
        I[接口:已注册?]
        L[链路:已激活?]
        CA[Config Agent:正在拉取配置?]
        TA[Telemetry Agent:正在提交指标?]
    end

    D --> PASS
    I --> PASS
    L --> PASS
    CA --> PASS
    TA --> PASS

    PASS[所有检查通过] --> NOTIFY[通知DZF/Malbec Labs<br/>您在技术上已准备就绪!]

故障排除

设备创建失败

  • 验证您的服务密钥已获授权(doublezero contributor list
  • 检查位置和交换中心代码是否有效
  • 确保DZ前缀是有效的公共IP范围

链路卡在"requested"状态

  • DZX链路需要另一个贡献者的接受
  • 联系他们运行doublezero link accept

Config Agent无法连接

  • 验证管理网络有互联网访问
  • 检查VRF配置是否与您的设置匹配
  • 确保设备公钥正确

Telemetry Agent未提交

  • 验证指标发布者密钥已在链上注册
  • 检查密钥文件是否存在于交换机上
  • 确保设备账户公钥正确

后续步骤

  • 查阅运营指南了解代理升级和链路管理
  • 词汇表中查看术语定义
  • 如遇问题,请联系DZF/Malbec Labs