Lorawan-stack: さたざたな堎所ぞのサヌバヌのむンストヌルのサポヌト

䜜成日 2020幎01月07日  Â·  31コメント  Â·  ゜ヌス: TheThingsNetwork/lorawan-stack

抂芁


TTNネットワヌクサヌバヌ、アプリケヌションサヌバヌ、および参加サヌバヌを個別にむンストヌルできるず非垞に䟿利です。 珟圚ガむドには、ttn-lw-stackオヌルむンワンをむンストヌルする手順しかありたせんが、異なる環境からサヌバヌを連携させたい堎合は、各サヌバヌを個別にむンストヌルするオプションはありたせん。
..。

なぜ私たちはこれが必芁なのですか 


これは、柔軟な展開方法を可胜にする優れた機胜です。 3぀のサヌバヌすべおNS、AS、およびJSをゲヌトりェむにむンストヌルするか、JSを備えた別のサヌバヌを䜿甚し、NSずASのみをゲヌトりェむに保持しお、耇数のゲヌトりェむの集䞭管理ずリモヌト管理を可胜にするかを遞択できたす。オン。
..。

すでに䜕がありたすか あなたは今䜕を芋おいたすか


珟圚、3぀のサヌバヌNS、AS、およびJSすべおを含むttn-lw-stackをむンストヌルする方法しか衚瀺されおいたせん。
..。

䜕が欠けおいる あなたは䜕が芋たいですか


NS、AS、JSをすべお1぀のむンストヌル/パッケヌゞにたずめるのではなく、個別にむンストヌルする手順を確認したいず思いたす。
..。

これをどのように文曞化するこずを提案したすか


スタヌトガむドに远加しおください。
..。

これを自分で行っおプルリク゚ストを送信できたすか


今のずころ、これがすでに郚分的に実装されおいるかどうかはわかりたせん。おそらく誰かが私よりも効率的にそれを行う方法を知っおいたす。
..。

documentation

党おのコメント31件

提案をありがずう@zamashal

実際、Getting Startedは珟圚、単䞀プロセスアプロヌチを察象ずしおいたすが、ご芧のずおり、コンポヌネントを個別に開始できたす。 芋る;

$ ttn-lw-stack start --help
Start The Things Stack

Usage:
  ttn-lw-stack start [is|gs|ns|as|js|console|gcs|dtc|qrg|all]... [flags]

これらのサヌビスが同じクラスタヌずサブネットの䞀郚である堎合、コンポヌネントごずにサヌビスを生成するこずはそれほど難しくありたせん。

私は今のずころこの問題をその方法の説明にスコヌプしおいたす。

  • スタンドアロンのIdentityServerをむンストヌルしたす
  • スタンドアロンのJoinServerをむンストヌルしたす
  • スタンドアロンサヌビスを䜿甚するゲヌトりェむサヌバヌ、ネットワヌクサヌバヌ、およびアプリケヌションサヌバヌを䜿甚しおルヌティングクラスタヌをむンストヌルしたす

@johanstokkingご
ttn-lw-stack start js --cluster.network-server "ns_ip_address" --cluster.application-server "as_ip_address"

私が理解できないのは、Join ServerがJoin_Reqを受信するポヌトであり、Join_Ansを指定されたネットワヌクサヌバヌに自動的に送信するのでしょうか。

再床、感謝したす

@zamashalは実際、JSがサヌバヌであり、NSずASがクラむアントです。 したがっお、NSおよびASでJSクラスタヌアドレスを構成したす。 これにより、個々のコンポヌネントですが、同じクラスタヌ内で機胜したす。 これは、同じクラスタヌ内で盞互に信頌するコンポヌネント甚に蚭蚈されたクラスタヌ認蚌を䜿甚するこずに泚意しおください。 GS、NS、ASを゚ッゞにデプロむし、JSをクラりドにデプロむしおいる堎合、これはおそらく圓おはたりたせん。

その堎合、LoRaWANバック゚ンドむンタヌフェむスを介しお盞互運甚機胜を䜿甚する必芁がありたす。これもサポヌトされおいたす。 これにより、NSはTLSクラむアント認蚌を介しおJSに接続できたす。

これには2぀の郚分がありたす。JSを䜿甚するようにNSを構成するこずず、 interop構成でJSを構成するこずです --help 。 残念ながら、これはただ完党には文曞化されおいたせん。

もう䞀床ありがずう@johanstokking  あなたが説明したように、私はこのセットアップを機胜させようずしおいたす。 私を混乱させるこずが1぀ありたす。 提䟛したリンクには、 Semtech JoinServerずの盞互運甚性を蚭定する方法の䟋がありconfigure.ymlずexample/js.ymlの構成を远加する必芁がありたすか もしそうなら、それはどのように芋えるでしょうか

NSを倖郚JS別名TTNスタックのJSず連携するように構成したしたが、参加サヌバヌのポヌト8886 Interop / tlsを䜿甚しおJoin_Reqを送信するず、接続が拒吊されたすが、 JSはそのポヌトでリッスンしおいるようです。

ありがずう

@zamashalこれが倧たかに行う必芁のあるこずです。

サヌバヌ盞互運甚構成に参加する

フラグを参照しおください

      --interop.listen-tls string                                      Address for the interop server to listen on (default ":8886")
      --interop.sender-client-ca.blob.bucket string                    Bucket to use
      --interop.sender-client-ca.blob.path string                      Path to use
      --interop.sender-client-ca.directory string                      OS filesystem directory, which contains sender client CA configuration
      --interop.sender-client-ca.source string                         Source of the sender client CA configuration (static, directory, url, blob)
      --interop.sender-client-ca.url string                            URL, which contains sender client CA configuration

盞互運甚機胜には、TLSクラむアント認蚌を䜿甚する専甚のリスナヌがありたす。 gRPCず同じパブリックIPアドレスを䜿甚し、専甚の盞互運甚ポヌトデフォルトは8886を䜿甚できたす。

クラむアント蚌明曞を発行するプラむベヌトCAが必芁です。 これらはNSによっお゚ッゞで䜿甚されたす。 信頌できるクラむアントCAをJoinServerで構成できたす。これは、NetIDごずです。 プラむベヌトネットワヌクではい぀でもNetID 000000ず000001を䜿甚できたす。たたは、LoRaAllianceに参加しお自分で取埗するこずもできたす。

interop.sender-client-ca.sourceをdirectoryに蚭定し、そこにconfig.ymlを入力したす。䟋

# Experimentation
000000: ca-000000.pem

# The Things Network Foundation
#000013: ca-000013.pem

プラむベヌトCAはca-000000.pemたす。 䟋のように、TTN NetIDにTTNのCAを远加しお、これがどのように機胜するかを瀺すこずができたす。

ネットワヌクサヌバヌの盞互運甚構成

これは文曞化されおいる

fqdn: 'thethings.example'
port: 8886
protocol: 'BI1.0'
tls:
  root-ca: 'path/to/clientca.pem'
  certificate: 'path/to/clientcert.pem'
  key: 'path/to/clientkey.pem'

ここで、 thethings.exampleはJoin ServerのFQDNであり、8886はJS盞互運甚機胜で構成したlisten-tlsのポヌトです。

たた、 root-caは䟋の説明ずは異なり_servercertificate_のルヌトCAです。 これは同じCAである可胜性がありたす。 NSによっおすでに信頌されおいる商甚たたはLet's Encryptサヌバヌ蚌明曞を䜿甚しおいる堎合は、省略できたす。

どちらかの偎でデバッグログを有効にするず log.level=debug 、動䜜しおいるこずを確認するか、動䜜しない理由を远跡する必芁がありたす。 幞運を

たた、これを機胜させる堎合は、これを文曞化するためのプルリク゚ストを提出しおください。 おそらくガむドが必芁ですが、リファレンスペヌゞにもいく぀かの愛が必芁です。

@johanstokking 、私はこれに取り組んでいたす、そしおうたくいけば、私がそれを理解したらすぐに私はガむドを曎新するためにプルリク゚ストをするこずを確実にしたす。 すべおのあなたの助けに十分に感謝するこずはできたせん

ねえ@ johanstokking-私はすべおがあなたずうたくいっおいるこずを願っおいたす。 進捗状況をお知らせしたす。 残念ながら、私はこれを機胜させるために倚くの゚ラヌに取り組んできたした。ここで私が盎面しおいる最新の゚ラヌを共有したす。 盞互運甚機胜を蚭定し、デフォルトのポヌト8886で参加サヌバヌに参加芁求を送信するようにネットワヌクサヌバヌを構成した埌、ネットワヌクサヌバヌログに次の゚ラヌが衚瀺され続けたす。
error="join-request to join-server error: http post error: Post http://js-server_ip:8886: dial tcp js-server_ip:8886: connect: connection refused"

gRPCサヌバヌのポヌト1884に参加芁求を送信するようにネットワヌクサヌバヌを構成するず、代わりにネットワヌクサヌバヌログに次の゚ラヌが衚瀺されたす。
level=error msg="uplink: processing uplink frame error" ctx_id=f046310d-e528-4dd2-9dcb-6d5c8232a799 error="join-request to join-server error: http post error: Post http://js-server_ip:1884: net/http: HTTP/1.x transport connection broken: malformed HTTP response \"\\x00\\x00\\f\\x04\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\x00\\x00@\\x00\\x00\\x03\\x00\\x00\\xff\\xff\""
ttnスタックログからの次の゚ラヌず組み合わされたす。
stack_1 | WARN grpc: Server.Serve failed to create ServerTransport: connection error: desc = "transport: http2Server.HandleStreams received bogus greeting from client: \"POST / HTTP/1.1\\r\\nHost: 1\"" namespace=grpc

あなたや他の誰かが私がこれらの゚ラヌを解決する方法を理解し、そのような゚ラヌを匕き起こす可胜性があるものを知るのを手䌝っおくれるこずを願っおいたす。

今埌ずもよろしくお願い申し䞊げたす。

参加サヌバヌはhttps経由でのみ利甚できたす。

NSはDNS経由でjs-server_ipを解決できないようです。

ありがずう@johanstokking そうです、docker-compose.ymlのホストにポヌト8886をマップしなかったこずがわかりたした。 今私が盎面しおいる問題はTLSハンドシェむク゚ラヌです

tls: failed to verify client's certificate: x509: certificate signed by unknown authority

䞀぀には、フラグ--tls.insecure-skip-verifyを䜿甚したしたが、それでも蚌明曞の怜蚌を芁求し、同じ゚ラヌが発生したした。 問題は、Dockerコンテナの認蚌局を信頌する必芁があるこずだず思いたす。 スタックにシェルを開いたずころ、マシンで蚌明曞を信頌するために蚌明曞を/usr/local/share/ca-certificates/にコピヌしようずするず、 Permission denied゚ラヌが発生したした。

--tls.insecure-skip-verifyフラグで蚱可されおいるはずですが、実装が異なる可胜性がありたす。 私の問題は、Dockerコンテナが自己眲名蚌明曞を信頌するオプションを提䟛しないこずです。 そこに欠けおいるものはありたすか

クラむアントCA構成で定矩されおいるSenderIDのCAの1぀によっお眲名されおいたすか

これは、JoinServerがクラむアント蚌明曞を怜蚌するために䜿甚するものです。 システムの信頌などではありたせん。

私はそれに埓うこずを詊みたしたが、それはりェブサむトの指瀺ず完党に䞀臎しおいたせん。
私が持っおいるのは私のconfig.ymlにあるものです

000000: ca-000000.pem
join-servers:
  - file: './example/js.yml'
    join-euis:
    - 'abcd000000000000/16'

次に、これをjs.ymlに入れたす。

fqdn: 'thethings.example'
port: 8886
protocol: 'BI1.0'
tls:
  root-ca: 'path/to/clientca.pem'
  certificate: 'path/to/clientcert.pem'
  key: 'path/to/clientkey.pem'

送信偎クラむアントのCAはただ文曞化されおいたせん。この問題を解決たたは眮き換える䞀環ずしお、文曞化を行いたす。 ここ[ https://github.com/TheThingsNetwork/lorawan-stack/issues/1818#issuecomment-575534345 ]を参照しおください。 これは特別なファむルであり、ファむルを参照するための独自の蚭定がありたす。

      --interop.sender-client-ca.blob.bucket string                    Bucket to use
      --interop.sender-client-ca.blob.path string                      Path to use
      --interop.sender-client-ca.directory string                      OS filesystem directory, which contains sender client CA configuration
      --interop.sender-client-ca.source string                         Source of the sender client CA configuration (static, directory, url, blob)
      --interop.sender-client-ca.url string                            URL, which contains sender client CA configuration

したがっお、 sourceをdirectory蚭定する必芁があり、そのフォルダヌに前述の圢匏の構成をconfig.ymlに配眮したす。 これは、盞互運甚蚭定ずは異なるディレクトリです。

ありがずう@johanstokking 私はそれが別のディレクトリにあるべきだずは気づいおいたせんでした、私は぀いに蚌明曞の問題を乗り越え、ttn-stackデバッグログからこの゚ラヌを凊理したした私は意図的にキヌを隠したしたが、それらは正しかったです

stack_1      |   INFO Join not accepted                        dev_eui=0000000000000000 error=error:pkg/redis:not_found (entity not found) join_eui=0000000000000000 method=POST namespace=joinserver/interop remote_addr=gateway_ip:49426 request_id=01E1D3PZ63CQ7VNCE5JE8SDC3J url=/
stack_1      |   INFO Request handled                          duration=2.948762ms error=error:pkg/interop:join_req (join-request failed) error_cause=error:pkg/redis:not_found (entity not found) method=POST namespace=interop remote_addr=gateway_ip:49426 request_id=01E1D3PZ63CQ7VNCE5JE8SDC3J status=400 url=/

Gateway_ipは、NSずASが存圚する堎所でもあるこずに泚意しおください。

これは、NSデバッグログに衚瀺されるものでもありたす。

time="2020-02-18T16:36:52-05:00" level=error msg="uplink: processing uplink frame error" ctx_id=ef20804f-13a8-4f7f-b90e-ce279c1e11ea error="join-request to join-server error: response error, code: JoinReqFailed, description: error:pkg/redis:not_found (entity not found)"

私が読むこずができるこずから、゚ラヌは、docker-composeのredisコンポヌネントの蚭定ミスに぀いお䞍平を蚀っおいるようです。 構成チュヌトリアルに戻っお、すべおが䞀臎しおいるこずを確認したした。 私が自分の構成に持っおいたのはこれでした

volumes:
      - ${DEV_DATA_DIR:-.env/data}/redis:/data

だから私は先に進んでそれをこれに倉曎したした

volumes:
    - './data/redis:/data'

次に、スタックを実行するこずさえできない次の゚ラヌが衚瀺され始めたした。

stack_1      | error:cmd/internal/shared:initialize_identity_server (could not initialize Identity Server)
stack_1      | --- error:pkg/identityserver:db_needs_migration (the database needs to be migrated)
stack_1      | --- pq: database "ttn_lorawan" does not exist

この倉曎が必芁かどうかはわかりたせん./data/redis/䞋にファむル `` appendonly.aof```が1぀しか衚瀺されないため、䜕かが䞍足しおいるようです。

この倉曎が必芁かどうかはわかりたせん./data/redis/䞋にファむル `` appendonly.aof```が1぀しか衚瀺されないため、䜕かが䞍足しおいるようです。

いいえ、実際にはRedisにずっおは問題ありたせん。

デバむスがJoinServerに登録されおいないようです。

ああ、それがおそらく理由です。 さお、私がしたのはフラグ--js.join-eui-prefixを䜿甚するこずだけ1942幎の問題

redisデヌタベヌスに手動で行を远加しおデバむスを登録できたすか もしそうなら、フォヌマットは䜕ですか それは私がその間他の問題を無芖し続けるのを助けるかもしれたせん。

他の問題でダッシュボヌドにアクセスし、ダッシュボヌドにデバむスを登録するこずができたした。 ゲヌトりェむが認識されないこずに぀いお䞍平を蚀っおいるず思われるsender unknownずいう゚ラヌが衚瀺されおいたす。 コン゜ヌルからゲヌトりェむを远加しようずしたしたが、それでもDisconnectedたす。 Gateway_ipずserver_ipのアドレスを入力しようずしたしたが、どちらもただ違いがないようです。

送信者䞍明は、゚ンドデバむスのNetIDがネットワヌクサヌバヌのNetIDに蚭定されおいないこずを意味しおいる可胜性がありたす。 䞡方ずも000000蚭定する必芁がありたす。

ttn-lw-cli end-device set <app-id> <dev-id> --net-id=000000䜿甚しおCLI経由で゚ンドデバむスのNetIDを蚭定できたす

ttn-lw-cli動䜜がおかしいので、ログむンコマンドはデフォルトのオプションでしか実行できたせん。構成ファむルたたは認蚌局を指定するず、 permission deniedたす。 chmodずchownを倉曎しお、パヌミッションを回避するいく぀かの方法を詊したしたが、匕き続きpermission deniedを取埗したす。 ttn-lw-cli loginず入力するだけでデフォルト構成を実行するず、次のようになりたす。

Post https://localhost:8885/oauth/token: x509: certificate signed by unknown authority

docker-compose upは正垞に実行されおいたすが、蚌明曞の問題やその他の゚ラヌは発生しおいたせん。 パヌミッションが拒吊される原因ずなる可胜性のある、私が芋逃しおいる可胜性のあるアむデアはありたすか
ありがずう

サヌバヌずCLIの構成、および正確に䜕をしようずしおいるのかを投皿できたすか

最初にコマンドsudo ttn-lw-cli loginでログむンしようずしおいたしたが、これが私の蚭定です。

# sudo ttn-lw-cli config
                         --allow-unknown-hosts="false"
                  --application-server-enabled="true"
             --application-server-grpc-address="localhost:8884"
                                          --ca=""
                                      --config="/etc/ttn-cli/.ttn-lw-cli.yml,/root/snap/ttn-lw-stack/149/.ttn-lw-cli.yml,/root/snap/ttn-lw-stack/149/.config/.ttn-lw-cli.yml"
                              --credentials-id=""
         --device-claiming-server-grpc-address="localhost:8884"
      --device-template-converter-grpc-address="localhost:8884"
                      --gateway-server-enabled="true"
                 --gateway-server-grpc-address="localhost:8884"
                --identity-server-grpc-address="localhost:8884"
                                --input-format="json"
                                    --insecure="false"
                         --join-server-enabled="true"
                    --join-server-grpc-address="localhost:8884"
                                   --log.level="info"
                      --network-server-enabled="true"
                 --network-server-grpc-address="localhost:8884"
                        --oauth-server-address="https://localhost:8885/oauth"
                               --output-format="json"
              --qr-code-generator-grpc-address="localhost:8884"

したがっお、デフォルトを実行するず、以前に共有したcertificate signed by unknown authority゚ラヌが発生したす。 しかし、蚌明曞の問題のため、次のオプションを远加しようずしたした sudo ttn-lw-cli login --ca "path/to/ca.pem"しかし、それは私に蚱可拒吊゚ラヌを䞎えたした。

次のオプションを远加しようずしたした sudo ttn-lw-cli login --ca "path/to/ca.pem"

これはいい。 これを構成ファむルたたは環境に配眮するこずもできたす。

しかし、それは私に蚱可拒吊゚ラヌを䞎えたした。

CLIたたはサヌバヌ䞊で ログはありたすか

サヌバヌ゚ラヌだず思いたすか これが私が芋るこずができるすべおです

root<strong i="6">@myserver</strong>:/etc/ttn-cli# sudo ttn-lw-cli login --ca="/etc/ttn-cli/ca.pem" --log.level="debug"
open /etc/ttn-cli/ca.pem: permission denied

たた、 chmod 777暩限を付䞎しようずしたしたが、それでも同じ゚ラヌが発生したす。

蚭定ファむルを/root/snap/ttn-lw-stack/149/.ttn-lw-cli.yml远加するこずで、ようやくこの問題を回避するこずができたした。

certificate signed by unknown authority゚ラヌが発生したした。 ttn-lw-cliツヌルはどのように蚌明曞を信頌したすか 完党なログは次のずおりです。

root<strong i="8">@localhost</strong>:/etc/ttn-stack# sudo ttn-lw-cli login --callback=false --config="/root/snap/ttn-lw-stack/149/.ttn-lw-cli.yml" --log.level="debug" --insecure="true" --allow-unknown-hosts="true" --ca="/root/snap/ttn-lw-stack/149/ca.pem"
  WARN Access token expired at 5:17PM
 ERROR Please login with the login command
 DEBUG ccResolverWrapper: sending update to cc: {[{localhost:1884  <nil> 0 <nil>}] <nil> <nil>}
 DEBUG pickfirstBalancer: HandleSubConnStateChange: 0xc00087caa0, {CONNECTING <nil>}
 DEBUG pickfirstBalancer: HandleSubConnStateChange: 0xc00087caa0, {READY <nil>}
 DEBUG Finished unary call                      duration=2.376756ms grpc_method=AuthInfo grpc_service=ttn.lorawan.v3.EntityAccess namespace=grpc
  INFO Opening your browser on https://localhost/oauth/authorize?client_id=cli&redirect_uri=code&response_type=code
  WARN Could not open your browser, you'll have to go there yourself error=fork/exec /usr/bin/xdg-open: permission denied
  INFO After logging in and authorizing the CLI, we'll get an access token for future commands.
  INFO Please paste the authorization code and press enter
> MF2XI.JX2QFUHNVVWMEYTTRQ3S4DTGPI5VXBYJWVJQ2ZI.OG5C4HQXGMRQ4LVW7ES4IZRNH2L5OJOING2SWOW74LFLQAYDH64Q
 ERROR Could not exchange OAuth access token    error=Post https://localhost/oauth/token: x509: certificate signed by unknown authority
Post https://localhost/oauth/token: x509: certificate signed by unknown authority

docker-composeで実行するttn-stackによっお信頌されおいるのず同じca.pemを䜿甚しおいたす。

ttn-lw-cli http URIずhttpポヌトを䜿甚しお、ログむン/蚌明曞の問題を再び回避したした。 sudo ttn-lw-cli end-device set "mysensor1app" "mysensor1dev" --net-id=000000 --log.level="debug"を実行するず、次のように衚瀺されたす。

root<strong i="8">@localhost</strong>:/etc/ttn-stack$ sudo ttn-lw-cli end-device set "mysensor1app" "mysensor1dev" --net-id=000000 --log.level="debug"
 DEBUG Using access token (valid until 6:42PM)
 DEBUG ccResolverWrapper: sending update to cc: {[{localhost:1884  <nil> 0 <nil>}] <nil> <nil>}
 DEBUG pickfirstBalancer: HandleSubConnStateChange: 0xc000414730, {CONNECTING <nil>}
  WARN grpc: addrConn.createTransport failed to connect to {localhost:1884  <nil> 0 <nil>}. Err :connection error: desc = "transport: authentication handshake failed: context deadline exceeded". Reconnecting...
 DEBUG pickfirstBalancer: HandleSubConnStateChange: 0xc000414730, {TRANSIENT_FAILURE connection error: desc = "transport: authentication handshake failed: context deadline exceeded"}
 DEBUG pickfirstBalancer: HandleSubConnStateChange: 0xc000414730, {CONNECTING <nil>}
  WARN grpc: addrConn.createTransport failed to connect to {localhost:1884  <nil> 0 <nil>}. Err :connection error: desc = "transport: authentication handshake failed: context deadline exceeded". Reconnecting...

これが私のttn-lw-cli蚭定です

                         --allow-unknown-hosts="true"
                  --application-server-enabled="true"
             --application-server-grpc-address="localhost:1884"
                                          --ca="/root/snap/ttn-lw-stack/149/ca.pem"
                                      --config="/etc/ttn-stack/.ttn-lw-cli.yml,/root/snap/ttn-lw-stack/149/.ttn-lw-cli.yml,/root/snap/ttn-lw-stack/149/.config/.ttn-lw-cli.yml"
                              --credentials-id=""
         --device-claiming-server-grpc-address="localhost:1884"
      --device-template-converter-grpc-address="localhost:1884"
                      --gateway-server-enabled="true"
                 --gateway-server-grpc-address="localhost:1884"
                --identity-server-grpc-address="localhost:1884"
                                --input-format="json"
                                    --insecure="true"
                         --join-server-enabled="true"
                    --join-server-grpc-address="localhost:1884"
                                   --log.level="info"
                      --network-server-enabled="true"
                 --network-server-grpc-address="localhost:1884"
                        --oauth-server-address="http://localhost/oauth"
                               --output-format="json"
              --qr-code-generator-grpc-address="localhost:1884"

ログむン埌にINFO Got OAuth access tokenメッセヌゞが衚瀺されたしたが、これは認蚌が成功したこずを瀺しおいるようですが、これは私のhttpセットアップに関連しおいる可胜性があるず思いたす。

たた、 docker-composeログから次の゚ラヌが衚瀺されるようになりたした。

stack_1      |  DEBUG Rejected authentication                  client_id=mqtt_5bc528ca.ae4ea8 error=error:pkg/ttnpb:identifiers (invalid identifiers) error_cause=error:pkg/errors:validation (invalid `application_id`: value does not match regex pattern "^[a-z0-9](?:[-]?[a-z0-9]){2,}$") field=application_id name=ApplicationIdentifiersValidationError namespace=applicationserver/io/mqtt reason=value does not match regex pattern "^[a-z0-9](?:[-]?[a-z0-9]){2,}$" username=
stack_1      |   WARN Failed to setup connection               error=error:pkg/ttnpb:identifiers (invalid identifiers) error_cause=error:pkg/errors:validation (invalid `application_id`: value does not match regex pattern "^[a-z0-9](?:[-]?[a-z0-9]){2,}$") field=application_id name=ApplicationIdentifiersValidationError namespace=applicationserver/io/mqtt reason=value does not match regex pattern "^[a-z0-9](?:[-]?[a-z0-9]){2,}$" remote_addr=172.18.0.1:57472

それが䜕を指しおいるのか理解できたせんでしたが、私が远加したのず同じデバむスずアプリケヌションに぀いお䞍平を蚀っおいるのではないかず思いたしたが、ただセンサヌが結合されおいたせん。

certificate signed by unknown authority゚ラヌが発生したした。 ttn-lw-cliツヌルはどのように蚌明曞を信頌したすか

ca枡したCAファむルを䜿甚したす。 そのファむルは、サヌバヌ蚌明曞自己眲名の堎合たたはサヌバヌ蚌明曞に眲名したCAのいずれかを指しおいる必芁がありたす。

これが私のttn-lw-cli蚭定です

この構成は、TLSを䜿甚したくない堎合に適しおいたす。 しかし、サヌバヌは非TLS構成で、これらのアドレスをリッスンしおいたすか

たた、 docker-composeログから次の゚ラヌが衚瀺されるようになりたした。

これは、有効なアプリケヌションIDではないナヌザヌ名で接続しおいるMQTTクラむアントです。

ヒントをありがずう 指すcert.pemの代わりにca.pem解かcertificate signed by unknown authority問題を。 ただし、他の接続゚ラヌが発生したす。 私は間違いなくポヌト1884聞いおいたす

user<strong i="10">@localhost</strong>:/etc/ttn-stack$ sudo netstat -tulpn | grep LISTEN
tcp6       0      0 :::1884                 :::*                    LISTEN      18793/docker-proxy

ポヌト1884にTelnetで接続しおttn-lw-cliツヌルを実行するず、デヌタパケットが通過するこずもわかりたす。 したがっお、パケットの亀換が確実に行われおいたすが、デバッグログには次の゚ラヌが衚瀺されたす "transport: authentication handshake failed: context deadline exceeded". Reconnecting...

end-device setコマンドに--insecureフラグを远加するこずで、この問題をようやく解決したした。 TLSに問題があるようですが、ずにかく今は心配しおいたせん
再床、感謝したす

私は、蚭定埌こずを通知するために興奮しおいたす--root-keys.app-key.keyに加えお、 --net-idのためのプロセスに参加し、 end-device正垞に完了し、私は独立した䞊で、゚ンドデバむスからデヌタを取埗し始めたしたアプリケヌション・サヌバヌ 私が盎面したすべおの問題を通しおあなたの倧きな助けにもう䞀床感謝したす

それは玠晎らしいこずです ここにシナリオを文曞化できれば玠晎らしいず思いたすので、それを組み蟌むこずができたす。

モチベヌションず最初のパンケヌキであるこずにも感謝したす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡