Qpid-CPP Протокол не получен через 10 секунд, закрытие при использовании SSL/TLS

В настоящее время я работаю над обновлением связи QPID устаревшего приложения для поддержки шифрования SSL/TLS через сертификаты x.509. Мне предоставили виртуальную машину для тестирования, и я думаю, что у меня большая часть ее сглажена. Однако, возможно, в 1 из 10 случаев, когда я запускаю свое приложение, код Qpid C++ просто отказывается открывать какие-либо соединения с другой виртуальной машиной, а также не открывает никаких соединений для обменов, которые размещены в моем приложении.

Я могу заставить эту проблему появиться (в конечном итоге), перезапустив приложение несколько раз. Я не только не могу связаться со своей тестовой виртуальной машиной в этом состоянии ошибки, но я также не могу открывать соединения для своих собственных обменов и видеть множество журналов, таких как [System] error Connection qpid.10.43.1.10:31111-10.43. 1.11:51564 Протокол не получен через 10 секунд, закрытие которых является внутренним IP-адресом.

Когда я включаю ведение журнала протокола с помощью log-enable=trace+:Protocol и просматриваю их, пока мое приложение находится в состоянии ошибки, я вижу массу вызовов SEND и RECV между моей виртуальной машиной и тестовой виртуальной машиной, что, кажется, указывает на наличие определенного уровня связи. происходит, но я не совсем уверен, как разобрать то, что я вижу (фрагмент из журналов ниже). Эта проблема никогда не возникает, когда я запускаю свое приложение без включенного материала SSL/TLS x.509.

Я попытался использовать Wireshark для отслеживания трафика сообщений, когда это происходит, и я вижу, что нет никакого трафика TLS, когда я нахожусь в состоянии ошибки, когда все работает, как задумано, я вижу множество пакетов TLS 1.2, возвращающихся обратно и вперед.

Я преследовал эту проблему в течение нескольких недель, и я не чувствую себя ближе к поиску решения. Если у кого-то есть какие-либо идеи, которые могли бы привести меня на правильный путь, я был бы очень признателен!

клиент, сервер и инструменты qpid-cpp версии 1.39.0-1.

Выдержка из журналов протокола: 192.168.56.2 — это IP-адрес внешнего сетевого интерфейса моей виртуальной машины, 192.168.56.55 — это тестовая виртуальная машина, с которой я хотел бы поговорить. IP-адреса 10.43.1.XX являются внутренними адресами бирж, за хостинг которых я отвечаю. Параметры журнала qpidd: trace+:Protocol и error:System:

Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [System] error Connection qpid.10.43.1.10:31111-10.43.1.11:54704 No protocol received after 10s, closing
Dec 22 20:38:10 stbdlcp qpidd[28517]: 2020-12-22 20:38:10 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=0; {ConnectionHeartbeatBody: }]
Dec 22 20:38:10 stbdlcp qpidd[28517]: 2020-12-22 20:38:10 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=0; {ConnectionHeartbeatBody: }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {SessionKnownCompletedBody: commands={ [5708,5739] }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {MessageReleaseBody: transfers={ }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {MessageCancelBody: destination=a662b9ed-f116-4c91-a9aa-7e7bd58221e1#; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {QueueQueryBody: queue=a662b9ed-f116-4c91-a9aa-7e7bd58221e1#; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {ExecutionResultBody: command-id=5743; value=\x08\x01\xFB\x00%a662b9ed-f116-4c91-a9aa-7e7bd58221e1#\x00\
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {SessionCompletedBody: commands={ [5740,5743] }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {MessageReleaseBody: transfers={ }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {MessageCancelBody: destination=a662b9ed-f116-4c91-a9aa-7e7bd58221e1#; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {QueueQueryBody: queue=a662b9ed-f116-4c91-a9aa-7e7bd58221e1#; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {ExecutionResultBody: command-id=5743; value=\x08\x01\xFB\x00%a662b9ed-f116-4c91-a9aa-7e7bd58221e1#\x00\
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {SessionCompletedBody: commands={ [5740,5743] }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {QueueDeleteBody: queue=a662b9ed-f116-4c91-a9aa-7e7bd58221e1#; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {SessionCompletedBody: commands={ [5740,5744] }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {ExecutionSyncBody: }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {SessionCompletedBody: commands={ [5740,5745] }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {MessageReleaseBody: transfers={ }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {ExchangeBoundBody: exchange=3c2637c8-b488-4387-82eb-7469cdf9dd0e#; queue=3c2637c8-b488-4387-82eb-7469cd
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {ExecutionResultBody: command-id=5747; value=\x07\x02\x03\x00; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {SessionCompletedBody: commands={ [5740,5747] }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {QueueDeclareBody: queue=3c2637c8-b488-4387-82eb-7469cdf9dd0e#; alternate-exchange=; exclusive=1; auto-d
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {ExecutionSyncBody: }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace SENT [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {SessionCompletedBody: commands={ [5740,5749] }; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[BEbe; channel=1; {MessageSubscribeBody: queue=3c2637c8-b488-4387-82eb-7469cdf9dd0e#; destination=3c2637c8-b488-4387-82eb-
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[Bbe; channel=1; {MessageTransferBody: destination=qmf.default.direct; accept-mode=1; acquire-mode=0; }]
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[be; channel=1; header (198 bytes); properties={{MessageProperties: content-length=106; correlation-id=3778; reply-to={Rep
Dec 22 20:38:09 stbdlcp qpidd[28517]: 2020-12-22 20:38:09 [Protocol] trace RECV [qpid.192.168.56.2:31111-192.168.56.55:42624]: Frame[Ebe; channel=1; content (106 bytes) \x00\x00\x00f\x00\x00\x00\x02

person joshru    schedule 22.12.2020    source источник


Ответы (1)


Думаю, я понял это. По какой-то причине проблема связана с защитой пароля моей базы данных NSS. После удаления пароля я не могу воспроизвести проблему, как раньше.

Я не уверен, почему это так, мне нужно провести дополнительное исследование, чтобы выяснить, что именно я делал неправильно. Если бы пароль базы данных NSS был неправильно настроен, я бы не ожидал, что аутентификация QPID вообще будет работать, а не возникнут проблемы со случайным подключением, как это было.

Очень запутанно.

person joshru    schedule 04.01.2021