Dell NativeEdge: Как проверить возможность подключения к общедоступному серверу Dell Rendezvous Server
Сводка: При наличии доступа к Интернету конечные точки NativeEdge подключаются к NativeEdge Orchestrator (NEO) с помощью сервера Dell Public Rendezvous (RV). В этой статье объясняется, как устранить неполадки подключения RV. ...
Инструкции
Dell RV Server — это общедоступный защищенный сайт, который участвует в передаче ваучеров. NativeEdge Endpoint при регистрации ищет сервер RV, подтверждает подключение и завершает процесс внедрения.
Рекомендации по поиску и устранению неисправностей.
- Загрузите прилагаемое краткое представление двоичного объекта (CBOR)
msg30_pkb.zipиз вложений к этой статье - Извлеките
msg30.cborв системе, которая имеет доступ к Интернету и может использоватьCURL - Выполните следующую команду:
Orchestrator Online (доступ в Интернет)
curl -v -H "Content-Type: application/cbor" -H "User-Agent: fdo" --data-binary "@msg30.cbor" https://rv.dell.com/fdo/101/msg/30
Ожидаемые выходные данные:
Trying 143.166.28.30:443...
Connected to rv.dell.com (143.166.28.30) port 443 (#0)
ALPN, offering h2
ALPN, offering http/1.1
CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
TLSv1.0 (OUT), TLS header, Certificate Status (22):
TLSv1.3 (OUT), TLS handshake, Client hello (1):
TLSv1.2 (IN), TLS header, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, Server hello (2):
TLSv1.2 (IN), TLS header, Certificate Status (22):
TLSv1.2 (IN), TLS handshake, Certificate (11):
TLSv1.2 (IN), TLS header, Certificate Status (22):
TLSv1.2 (IN), TLS handshake, Server key exchange (12):
TLSv1.2 (IN), TLS header, Certificate Status (22):
TLSv1.2 (IN), TLS handshake, Server finished (14):
TLSv1.2 (OUT), TLS header, Certificate Status (22):
TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
TLSv1.2 (OUT), TLS header, Finished (20):
TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
TLSv1.2 (OUT), TLS header, Certificate Status (22):
TLSv1.2 (OUT), TLS handshake, Finished (20):
TLSv1.2 (IN), TLS header, Finished (20):
TLSv1.2 (IN), TLS header, Certificate Status (22):
TLSv1.2 (IN), TLS handshake, Finished (20):
SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
ALPN, server did not agree to a protocol
Server certificate:
subject: C=US; ST=Texas; L=Round Rock; O=Dell Technologies Inc.; CN=*.apis.dell.com
start date: Oct 16 00:00:00 2024 GMT
expire date: Nov 16 23:59:59 2025 GMT
subjectAltName: host "rv.dell.com" matched cert's "rv.dell.com"
issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
SSL certificate verify ok.
TLSv1.2 (OUT), TLS header, Supplemental data (23):
> POST /fdo/101/msg/30 HTTP/1.1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> Host: rv.dell.com
> User-Agent: curl/7.81.0
> Accept: /
> Content-Type: application/cbor
> Content-Length: 22
>
TLSv1.2 (IN), TLS header, Supplemental data (23):
Mark bundle as not supporting multiuse
< HTTP/1.1 200
< Server: Dell
< Date: Thu, 01 May 2025 10:46:04 GMT
< Content-Type: application/cbor
< Content-Length: 22
< Connection: keep-alive
< X-Correlation-ID: f31fe5e7-80fb-42a2-ab25-36407b865803
< Authorization: Bearer 0oREoQE4IqBYTacBY3J2cwJjdG8xA2NmZG8EGmgTUSgFGmgTUOwGGmgTUOwHWCiCglDq1woPL9xJ+qmoXvrDWGHmgjgiQFCC9Da8qWJGRZW80AbOGC7IWGAltbUnQgHBeTAB7AhrTZKsh64utf7ELY0iVhe+ZoK90Ma+tMYK24n27gkKNS7gBeZdX51+Jlq+x+xc0DY6X7W0vx0Zyk8ClGYRea2gk4W22TrDJydtUAUC+8MpiWOfIaA=
< Message-Type: 31<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
< Strict-Transport-Security: max-age=63072000; includeSubDomains
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< X-Frame-Options: SAMEORIGIN
< X-Content-Type-Options: nosniff
< X-Xss-Protection: 1; mode=block
<
Оркестратор с физической изоляцией (без доступа к Интернету)
- Переменная
curl -kflag игнорирует проверку сертификата. - Хост, на котором работает
CURLдолжна быть способна разрешить rv-сервер (через DHCP-запись или локально). - IP-адрес rv-сервера может быть использован вместо
rv.local.edge, если разрешение недоступно.
curl -k -v -H "Content-Type: application/cbor" --data-binary "@msg30.cbor" https://rv.local.edge/fdo/101/msg/30
Ожидаемые выходные данные:
* Host rv.local.edge:443 was resolved.
* IPv6: (none)
* IPv4: 172.28.1.100
* Trying 172.28.1.100:443...
* Connected to rv.local.edge (172.28.1.100) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / id-ecPublicKey
* ALPN: server accepted http/1.1
* Server certificate:
* subject: CN=orchestrator.domain.com
* start date: Jun 16 09:50:36 2025 GMT
* expire date: Jun 9 08:50:41 2055 GMT
* issuer: O=DELL-EDGE; CN=eo.edge.dell.com
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA256
* using HTTP/1.x
> POST /fdo/101/msg/30 HTTP/1.1
> Host: rv.local.edge
> User-Agent: curl/8.5.0
> Accept: */*
> Content-Type: application/cbor
> Content-Length: 22
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/1.1 200
< Server: nginx/1.25.4
< Date: Thu, 31 Jul 2025 12:12:58 GMT
< Content-Type: application/cbor
< Content-Length: 22
< Connection: keep-alive
< Authorization: Bearer 0oREoQE4IqBYTacBY3J2cwJjdG8xA2NmZG8EGmiLXgYFGmiLXcoGGmiLXcoHWCiCglDq1woPL9xJ+qmoXvrDWGHmgjgiQFChbTZ5Sw9PAZF+6dEMjeEmWGA58QTMFctxVT35hc1cp2TygR9KMN+ncVIHN35D1RB3qvhYdQBkp43l6TeYc10XfPvpBUmef7rIdKgV9JKHUrcudTCBpqqsc6XUkvVw4TBL2OeZnZNq4iLpFgZqITde4zs=
< Message-Type: 31
<
* Connection #0 to host rv.local.edge left intact
В приведенном выше примере результат представляет интерес следующие области:
Запрос HTTPS
> POST /fdo/101/msg/30 HTTP/1.1 > Host: rv.dell.com > User-Agent: curl/7.81.0 > Accept: / > Content-Type: application/cbor > Content-Length: 22
- Система отправляет 22 байта двоичных данных CBOR из
msg30.cbor. - Это сообщение протокола FIDO Device Onboard (FDO) 30:
TO1.HelloRendezvousили аналогичную в процессе адаптации
Ответ HTTPS
< HTTP/1.1 200 < Content-Type: application/cbor < Content-Length: 22 < Message-Type: 31 < Authorization: Bearer ...
- Авторизация: Носителем...: Сервер выдает токен носителя — это сообщение FDO 31,
TO1.HelloRendezvousAck - Тип сообщения: 31: Подтверждает тип сообщения в обмене FDO
Дополнительная информация
Более подробную информацию о сообщениях HelloRV (тип 30) и HelloRVAck (тип 31) можно найти в спецификации FDO: https://fidoalliance.org/specs/FDO/FIDO-Device-Onboard-PS-v1.1-20220419/FIDO-Device-Onboard-PS-v1.1-20220419.html#TO1HelloRV
Поиск и устранение распространенных проблем.
Признаки превышения
предельного размера HTTP-заголовка:
Ошибки подтверждения подключения FDO с ошибками
синтаксического анализа длины сообщения Сообщения об ошибках в журналах сервисной консоли:
ERROR:[get_msg_length():691] Strcat() failed!
ERROR:[fdo_con_recv_msg_header():761] Msg len parsing from REST Header failed!!
ERROR:[fdo_prot_ctx_run():385] fdo_con_recv_msg_header() Failed!
Для протокола FDO требуется, чтобы размер заголовков HTTP не превышал 1 Кбайт.
Для анализа полных заголовков HTTP с точным подсчетом байтов, включая окончания строк CRLF (критично для протокола FDO), пользователь может использовать следующую команду (скопируйте весь блок кода):
curl -v -H "Content-Type: application/cbor" -H "User-Agent: fdo" --data-binary "@msg30.cbor" https://rv.dell.com/fdo/101/msg/30 2>&1 | awk '
BEGIN {
print "=== Dell Rendezvous Server Connectivity Check ==="
print ""
print "[INFO] RV Host: rv.dell.com"
print "[INFO] RV URL: https://rv.dell.com/fdo/101/msg/30"
print "[INFO] Payload: msg30.cbor (22 bytes)"
print ""
print "[INFO] Sending FDO Message 30 (TO1.HelloRendezvous)..."
print ""
print "--- Request Headers ---"
print ""
request_total = 0
response_total = 0
http_status = ""
}
/^> / {
line = substr($0, 3)
line_bytes = length(line) + 2
request_total += line_bytes
printf "%5d %s\n", line_bytes, line
}
/^< HTTP/ {
http_status = $3
line = substr($0, 3)
line_bytes = length(line) + 2
response_total += line_bytes
print "--- Response Headers ---"
print ""
printf "%5d %s\n", line_bytes, line
}
/^< / && !/^< HTTP/ {
line = substr($0, 3)
line_bytes = length(line) + 2
response_total += line_bytes
printf "%5d %s\n", line_bytes, line
}
END {
print " ------"
printf "%7d (total incl. CRLF line endings)\n", request_total
print ""
print " ------"
printf "%7d (total incl. CRLF line endings)\n", response_total
print ""
print "--- Analysis ---"
print ""
if (http_status != "200") {
print "[ERROR] HTTP Status: " http_status " - Service Unavailable!"
print "[INFO] rv.dell.com may be temporarily down or rate limiting"
print ""
print "=== RESULT: FAIL ==="
print ""
print "RV server rv.dell.com returned HTTP " http_status
print "Unable to complete FDO protocol analysis."
} else if (response_total > 1024) {
print "[ERROR] Response headers exceed 1KB FDO protocol limit!"
print "[INFO] Expected limit: 1024 bytes"
print "[INFO] Actual size: " response_total " bytes"
print "[INFO] Over limit by: " response_total-1024 " bytes"
print ""
print "--- Payload Summary ---"
print ""
print " Request headers " request_total " bytes"
print " Request body (CBOR) 22 bytes"
print " Request total " request_total+22 " bytes"
print ""
print " Response headers " response_total " bytes"
print " Response body (CBOR) 22 bytes"
print " Response total " response_total+22 " bytes"
print ""
print " Exchange total " request_total+22+response_total+22 " bytes"
print "[INFO] (excludes TLS handshake overhead)"
print ""
print "=== RESULT: FAIL ==="
print ""
print "RV server rv.dell.com is reachable but headers exceed FDO protocol limit."
print "FDO Message 31 (TO1.HelloRendezvousAck) not processed due to header size violation."
} else {
print "[INFO] HTTP Status: " http_status " - OK"
print "[INFO] Response headers within FDO protocol limit: " response_total " bytes"
print ""
print "--- Payload Summary ---"
print ""
print " Request headers " request_total " bytes"
print " Request body (CBOR) 22 bytes"
print " Request total " request_total+22 " bytes"
print ""
print " Response headers " response_total " bytes"
print " Response body (CBOR) 22 bytes"
print " Response total " response_total+22 " bytes"
print ""
print " Exchange total " request_total+22+response_total+22 " bytes"
print "[INFO] (excludes TLS handshake overhead)"
print ""
print "=== RESULT: PASS ==="
print ""
print "RV server rv.dell.com is reachable and responding correctly."
print "FDO Message 31 (TO1.HelloRendezvousAck) received."
}
}'
Пример выходных данных хорошего запроса:
=== Dell Rendezvous Server Connectivity Check ===
[INFO] RV Host: rv.dell.com
[INFO] RV URL: https://rv.dell.com/fdo/101/msg/30
[INFO] Payload: msg30.cbor (22 bytes)
[INFO] Sending FDO Message 30 (TO1.HelloRendezvous)...
--- Request Headers ---
29 POST /fdo/101/msg/30 HTTP/1.1
17 Host: rv.dell.com
11 Accept: */*
30 Content-Type: application/cbor
15 User-Agent: fdo
18 Content-Length: 22
------
134 (total incl. CRLF line endings)
--- Response Headers ---
13 HTTP/1.1 200
35 Date: Tue, 14 Apr 2026 12:52:20 GMT
30 Content-Type: application/cbor
18 Content-Length: 22
22 Connection: keep-alive
50 X-Correlation-ID: 4479e39491dce8a4965a1dfdf45041ed
270 Authorization: Bearer 0oREoQE4IqBYTacBY3J2cwJjdG8xA2NmZG8EGmneOMAFGmneOIQGGmneOIQHWCiCglDq1woPL9xJ+qmoXvrDWGHmgjgiQFAfT/w8LypPSb/Ad7VUbhuJWGB7aS8rrAYJT60UyIdGdZ+peCBnnxplC5mAAbCJ2fYVdmBChALRXRC+aYRXXmnj1HJY/uD8KA6LvkIastByxsl9Qi0fCHK5gqBddtgBL2CiydYITRqUAY9G0pxBFDtHNtQ=
16 Message-Type: 31
31 X-Content-Type-Options: nosniff
19 X-XSS-Protection: 0
61 Cache-Control: no-cache, no-store, max-age=0, must-revalidate
16 Pragma: no-cache
10 Expires: 0
21 X-Frame-Options: DENY
79 Server-Timing: dtTrId;desc="2c3636bbbd7db72dec0b69becb9dd11d", dtSInfo;desc="0"
38 Server-Timing: dtRpid;desc="199532116"
------
763 (total incl. CRLF line endings)
--- Analysis ---
[INFO] HTTP Status: 200
[INFO] Response body: 22 bytes
[INFO] Content-Type: application/cbor
[INFO] Message-Type: 31
[INFO] Authorization: Bearer 0oREoQE4IqBYTacBY3J2cwJjdG8xA2NmZ...
--- Payload Summary ---
Request headers 134 bytes
Request body (CBOR) 22 bytes
Request total 156 bytes
Response headers 763 bytes
Response body (CBOR) 22 bytes
Response total 785 bytes
Exchange total 941 bytes
[INFO] (excludes TLS handshake overhead)
[INFO] TLS: SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 / prime256v1 / rsaEncryption
[INFO] Certificate subject: C=US; ST=Texas; L=Round Rock; O=Dell Technologies Inc.; CN=*.apis.dell.com
[INFO] Certificate issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
[INFO] Certificate expire date: Sep 26 23:59:59 2026 GMT
=== RESULT: PASS ===
RV server rv.dell.com is reachable and responding correctly.
FDO Message 31 (TO1.HelloRendezvousAck) received.