diagnosis
采集于 2026-07-28,来自本部署中的某个 CE。sitecli/capture-manifest.json
记录了具体是哪个节点,而 scripts/capture-sitecli.sh --check
会针对一个实际运行的 CE 重新校验命令接口。
diagnosis
Section titled “diagnosis”{ "curl_response": { "https://api.bcti.brightcloud.com": { "status": { "f5-xc-ce-vm-01": "OK" } }, "https://downloads.volterra.io": { "status": { "f5-xc-ce-vm-01": "OK" } }, "https://identityauthority.ves.volterra.io": { "status": { "f5-xc-ce-vm-01": "OK" } }, "https://myip.volterra.io": { "status": { "f5-xc-ce-vm-01": "OK" } }, "https://register.ves.volterra.io": { "status": { "f5-xc-ce-vm-01": "OK" } } }, "registration_status": { "f5-xc-ce-vm-01": "OK" }, "responses": { "f5-xc-ce-vm-01": { "arp_result": "? (10.0.1.1) at 12:34:56:78:9a:bc [ether] on vhost0\n? (169.254.0.15) at 60:45:bd:eb:3f:f2 [ether] on vhost0\n? (169.254.0.10) at 60:45:bd:eb:3f:f2 [ether] on vhost0\n? (169.254.100.2) at f6:ed:78:28:3b:84 [ether] on host-envoy-0\n? (169.254.10.1) at 60:45:bd:eb:3f:f2 [ether] on vhost0\n? (169.254.0.11) at 60:45:bd:eb:3f:f2 [ether] on vhost0\n", "dns_connectivity": [ { "avg_rtt": "0s", "dest_ip": "168.63.129.16", "lost": 100, "max_rtt": "0s", "min_rtt": "0s", "received": 0, "sent": 5, "std_dev_rtt": "0s" } ], "dns_query_result": [ "\n; <<>> DiG 9.16.23-RH <<>> @168.63.129.16 downloads.volterra.io\n; (1 server found)\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52476\n;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1224\n; COOKIE: f3d9849150fa05a1 (echoed)\n;; QUESTION SECTION:\n;downloads.volterra.io.\t\tIN\tA\n\n;; ANSWER SECTION:\ndownloads.volterra.io.\t1800\tIN\tCNAME\tvesio.azureedge.net.\nvesio.azureedge.net.\t1800\tIN\tCNAME\tvesio.afd.azureedge.net.\nvesio.afd.azureedge.net. 60\tIN\tCNAME\tmr-afd-azuredge.tm-azurefd.net.\nmr-afd-azuredge.tm-azurefd.net.\t10 IN\tA\t<public-ip>\n\n;; Query time: 7 msec\n;; SERVER: 168.63.129.16#53(168.63.129.16)\n;; WHEN: Mon Aug 03 16:30:28 UTC 2026\n;; MSG SIZE rcvd: 176\n\n", "\n; <<>> DiG 9.16.23-RH <<>> @168.63.129.16 register.ves.volterra.io\n; (1 server found)\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49291\n;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1224\n; COOKIE: a762e6a2edd99549 (echoed)\n;; QUESTION SECTION:\n;register.ves.volterra.io.\tIN\tA\n\n;; ANSWER SECTION:\nregister.ves.volterra.io. 1787\tIN\tCNAME\tcompass.ves.volterra.io.\ncompass.ves.volterra.io. 1347\tIN\tCNAME\taadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com.\naadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com. 48 IN A <public-ip>\naadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com. 48 IN A <public-ip>\naadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com. 48 IN A <public-ip>\n\n;; Query time: 3 msec\n;; SERVER: 168.63.129.16#53(168.63.129.16)\n;; WHEN: Mon Aug 03 16:30:28 UTC 2026\n;; MSG SIZE rcvd: 220\n\n", "\n; <<>> DiG 9.16.23-RH <<>> @168.63.129.16 myip.volterra.io\n; (1 server found)\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35511\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1224\n; COOKIE: ed6a28fc9221744b (echoed)\n;; QUESTION SECTION:\n;myip.volterra.io.\t\tIN\tA\n\n;; ANSWER SECTION:\nmyip.volterra.io.\t1800\tIN\tA\t<public-ip>\n\n;; Query time: 31 msec\n;; SERVER: 168.63.129.16#53(168.63.129.16)\n;; WHEN: Mon Aug 03 16:30:28 UTC 2026\n;; MSG SIZE rcvd: 73\n\n", "\n; <<>> DiG 9.16.23-RH <<>> @168.63.129.16 identityauthority.ves.volterra.io\n; (1 server found)\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3635\n;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1224\n; COOKIE: aef230a064279a94 (echoed)\n;; QUESTION SECTION:\n;identityauthority.ves.volterra.io. IN\tA\n\n;; ANSWER SECTION:\nidentityauthority.ves.volterra.io. 1800\tIN CNAME compass.ves.volterra.io.\ncompass.ves.volterra.io. 1374\tIN\tCNAME\taadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com.\naadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com. 60 IN A <public-ip>\naadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com. 60 IN A <public-ip>\naadfb86c2e09f11e9aaec02a37ff0c3f-1690825742.us-east-2.elb.amazonaws.com. 60 IN A <public-ip>\n\n;; Query time: 58 msec\n;; SERVER: 168.63.129.16#53(168.63.129.16)\n;; WHEN: Mon Aug 03 16:30:28 UTC 2026\n;; MSG SIZE rcvd: 229\n\n", "\n; <<>> DiG 9.16.23-RH <<>> @168.63.129.16 api.bcti.brightcloud.com\n; (1 server found)\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11162\n;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1224\n; COOKIE: 74305dc8420605cf (echoed)\n;; QUESTION SECTION:\n;api.bcti.brightcloud.com.\tIN\tA\n\n;; ANSWER SECTION:\napi.bcti.brightcloud.com. 60\tIN\tA\t<public-ip>\napi.bcti.brightcloud.com. 60\tIN\tA\t<public-ip>\napi.bcti.brightcloud.com. 60\tIN\tA\t<public-ip>\napi.bcti.brightcloud.com. 60\tIN\tA\t<public-ip>\napi.bcti.brightcloud.com. 60\tIN\tA\t<public-ip>\napi.bcti.brightcloud.com. 60\tIN\tA\t<public-ip>\n\n;; Query time: 79 msec\n;; SERVER: 168.63.129.16#53(168.63.129.16)\n;; WHEN: Mon Aug 03 16:30:28 UTC 2026\n;; MSG SIZE rcvd: 161\n\n" ], "domain_curl_result": { "https://api.bcti.brightcloud.com": "OK", "https://downloads.volterra.io": "OK", "https://identityauthority.ves.volterra.io": "OK", "https://myip.volterra.io": "OK", "https://register.ves.volterra.io": "OK" }, "errors": {}, "gateway_connectivity": { "avg_rtt": "0s", "dest_ip": "10.0.1.1", "lost": 100, "max_rtt": "0s", "min_rtt": "0s", "received": 0, "sent": 5, "std_dev_rtt": "0s" }, "ifconfig_result": "a-i-eth0: flags=4675<UP,BROADCAST,RUNNING,ALLMULTI,MULTICAST> mtu 1500\n ether 60:45:bd:eb:3f:f2 txqueuelen 1000 (Ethernet)\n RX packets 4535562 bytes 6503103252 (6.0 GiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 417609 bytes 141796059 (135.2 MiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nargo-end: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n ether 76:e0:23:f6:48:8b txqueuelen 1000 (Ethernet)\n RX packets 1 bytes 54 (54.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 0 bytes 0 (0.0 B)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nargo-envoy-0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1520\n ether 00:00:5e:00:01:00 txqueuelen 1000 (Ethernet)\n RX packets 1416 bytes 329120 (321.4 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 1659 bytes 330958 (323.2 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\ndocker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500\n inet 100.64.255.1 netmask 255.255.255.248 broadcast 100.64.255.7\n ether 62:61:2b:33:cd:42 txqueuelen 0 (Ethernet)\n RX packets 4 bytes 112 (112.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 0 bytes 0 (0.0 B)\n TX errors 0 dropped 2 overruns 0 carrier 0 collisions 0\n\neth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 10.0.2.4 netmask 255.255.255.192 broadcast 10.0.2.63\n ether 60:45:bd:eb:38:ea txqueuelen 1000 (Ethernet)\n RX packets 34 bytes 3530 (3.4 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 8 bytes 1534 (1.4 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\neth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 10.0.3.4 netmask 255.255.255.192 broadcast 10.0.3.63\n inet6 fe80::55af:2cd4:23a1:7e06 prefixlen 64 scopeid 0x20<link>\n ether 60:45:bd:eb:3d:f3 txqueuelen 1000 (Ethernet)\n RX packets 40 bytes 3516 (3.4 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 21 bytes 1934 (1.8 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nhost-envoy-0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 169.254.100.1 netmask 255.255.255.252 broadcast 0.0.0.0\n ether ee:95:ea:b5:8c:2a txqueuelen 1000 (Ethernet)\n RX packets 6459 bytes 1555262 (1.4 MiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 6620 bytes 749429 (731.8 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nkeepalived-tap: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500\n inet 169.254.10.13 netmask 255.255.255.252 broadcast 169.254.10.15\n ether 32:1d:e4:ae:46:0e txqueuelen 1000 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 0 bytes 0 (0.0 B)\n TX errors 0 dropped 2 overruns 0 carrier 0 collisions 0\n\nlinkquality0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 590\n ether 00:00:5e:00:01:00 txqueuelen 0 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 0 bytes 0 (0.0 B)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nlo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536\n inet 127.0.0.1 netmask 255.0.0.0\n loop txqueuelen 1000 (Local Loopback)\n RX packets 1597326 bytes 1119030726 (1.0 GiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 1597326 bytes 1119030726 (1.0 GiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\ntap_eth0: flags=4675<UP,BROADCAST,RUNNING,ALLMULTI,MULTICAST> mtu 1500\n ether 60:45:bd:eb:3f:f2 txqueuelen 1000 (Ethernet)\n RX packets 270853 bytes 130222660 (124.1 MiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 382848 bytes 353721870 (337.3 MiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nvethbfd0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n ether 00:00:5e:00:01:00 txqueuelen 1000 (Ethernet)\n RX packets 3364 bytes 219184 (214.0 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 3364 bytes 219024 (213.8 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nvethdnsmasq0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 169.254.254.103 netmask 255.255.255.255 broadcast 169.254.255.255\n ether 02:01:02:03:04:07 txqueuelen 1000 (Ethernet)\n RX packets 16 bytes 1216 (1.1 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 0 bytes 0 (0.0 B)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nvethfrr0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500\n ether 02:01:02:03:04:05 txqueuelen 1000 (Ethernet)\n RX packets 4861 bytes 425490 (415.5 KiB)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 3941 bytes 297923 (290.9 KiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nvhost0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n inet 10.0.1.4 netmask 255.255.255.192 broadcast 10.0.1.63\n ether 60:45:bd:eb:3f:f2 txqueuelen 1000 (Ethernet)\n RX packets 367530 bytes 337031399 (321.4 MiB)\n RX errors 0 dropped 9 overruns 0 frame 0\n TX packets 259721 bytes 118058536 (112.5 MiB)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nxc-br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n ether aa:db:2f:e1:15:2c txqueuelen 1000 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 2 bytes 108 (108.0 B)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\nxc-br0-end: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n ether aa:db:2f:e1:15:2c txqueuelen 1000 (Ethernet)\n RX packets 0 bytes 0 (0.0 B)\n RX errors 0 dropped 0 overruns 0 frame 0\n TX packets 1 bytes 54 (54.0 B)\n TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n\n", "node_name": "f5-xc-ce-vm-01", "nodes_connectivity": [], "ntp_sync_status": " Local time: Mon 2026-08-03 16:30:28 UTC\n Universal time: Mon 2026-08-03 16:30:28 UTC\n RTC time: Mon 2026-08-03 16:30:28\n Time zone: Etc/UTC (UTC, +0000)\nSystem clock synchronized: yes\n NTP service: active\n RTC in local TZ: no\n", "registration_status": "OK", "resolv_conf": "# Generated by Docker Engine.\n# This file can be edited; Docker Engine will not make further changes once it\n# has been modified.\n\nnameserver 168.63.129.16\nsearch <vnet-dns-label>.bx.internal.cloudapp.net\n\n# Based on host file: '/etc/resolv.conf'\n# Overrides: []\n", "route_result": "Kernel IP routing table\nDestination Gateway Genmask Flags Metric Ref Use Iface\n0.0.0.0 10.0.1.1 0.0.0.0 UG 90 0 0 vhost0\n10.0.1.0 0.0.0.0 255.255.255.192 U 90 0 0 vhost0\n10.0.2.0 0.0.0.0 255.255.255.192 U 2048 0 0 eth1\n10.0.3.0 0.0.0.0 255.255.255.192 U 100 0 0 eth2\n100.64.255.0 0.0.0.0 255.255.255.248 U 0 0 0 docker0\n100.127.0.0 10.0.1.1 255.255.192.0 UG 3000 0 0 vhost0\n168.63.129.16 10.0.1.1 255.255.255.255 UGH 90 0 0 vhost0\n169.254.0.0 0.0.0.0 255.255.0.0 U 3000 0 0 vhost0\n169.254.10.12 0.0.0.0 255.255.255.252 U 0 0 0 keepalived-tap\n169.254.100.0 0.0.0.0 255.255.255.252 U 0 0 0 host-envoy-0\n169.254.169.254 10.0.1.1 255.255.255.255 UGH 90 0 0 vhost0\n" } }}结果按节点分别报告,因此在多节点站点上,每个节点各占一个区块。
gateway_connectivity 和 dns_connectivity 各自带有一份 ping 汇总 —— dest_ip、sent、
received、lost 以及往返时间。
首先值得关注的字段位于响应的其他部分:registration_status、
curl_response(节点所需的每个 F5 端点各占一条,标记为 OK 或非 OK)、
dns_query_result 以及 ntp_sync_status。
resolv_conf 显示节点实际会使用的解析器,在花时间使用 dig 之前,
值得将它与你的预期进行比对。