ネットワークの状況が変更された後でもMoshがまだログイン状態を維持できるのはなぜですか?

ネットワークの状況が変更された後でもMoshがまだログイン状態を維持できるのはなぜですか?

私はUnix SEに関するもう一つの質問を通してこのアプリケーションについて学びました。

それは言う:

IPを変更してください。引き続きご連絡ください。

Moshは、インターネット接続間を移動すると自動的にローミングされます。電車ではWi-Fi、ホテルではイーサネット、ビーチではLTEをご利用ください。ログイン状態が維持されます。 SSHやGmailなどのネットワークアプリケーションなど、ほとんどのネットワークプログラムはローミング後に切断されます。モーセは違います。

どうやってこれができますか?

これは簡単な再配線技術ですか?

答え1

主に、moshは非接続プロトコルを使用し、クライアントとサーバーの再接続を正しく処理するためです。私は具体的な内容を100%確信することはできませんが、私が理解したところによると、通常は次のように動作します。

  1. mosh を使用してリモートホストに初めて接続すると、通常の SSH を使用してログインし、別のポートから接続をリッスンする独自のサーバーコンポーネントを起動します。
  2. その後、Moshは元のSSH接続を閉じ、独自のプロトコルを介して実行される新しい端末セッションを作成します。このリンクはTCPの代わりにUDPを使用するため、非接続プロトコルを介した接続を機能的にシミュレートします。
  3. クライアントのIPアドレスが変更された場合、またはネットワークが一時的にダウンした場合、または同様のことが発生した場合、moshは引き続き元のサーバーアドレスにパケットを送信してシミュレートされた接続をリセットしようとします。サーバーコンポーネントが新しいアドレスから来るパケットを確認すると、以前のアドレスの代わりにそのアドレスに応答パケットの送信が開始されます。

もちろん、認証が必要ですが(そうでなければ誰でもMoshセッションを簡単に傍受できます)、移行がどのように行われるかはそれほど重要ではありません。

多くのP2Pソフトウェアがネットワーク変更に対する弾力性を提供するために非常に類似した技術(すなわち、本質的にステップ2と3と同じであり、他のものをトンネリングすること)を使用することは注目に値します。これらのタスクを実行するソフトウェアの例は次のとおりです。物事を同期そしてディンク

答え2

あなたの見積もりはウェブサイトで提供されます。https://mosh.org。 「技術情報」を読み始めると、あなたの質問に答えることができます:-).

これは簡単な再配線技術ですか?

従来の再接続技術、つまりタイムアウト+再接続ではありません。例: SSH/TCP タイムアウト + 手動再接続画面またはtmuxサーバー。

moshモバイル技術のために特別に設計されています。より速く適応します。

SSPを使用すると、ローミングが簡単です。クライアントは、少なくとも3秒ごとに「ハートビート」を含む、増加するシーケンス番号でデータグラムをサーバーに送信します。サーバーが以前に受信したものよりも高いシーケンス番号を持つクライアントから実際のパケットを受信するたびに、パケットのIPソースアドレスは発信パケットのサーバーの新しい宛先になります。このように「状態非保存」ローミングを実行すると、NATの内部と外部でローミングが発生する可能性があり、NAT自体がローミングしている場合も同様です。ローミングは、クライアントがインターネットに表示されるIPアドレスが変更されたことを認識しない場合でも機能します。 Heartbeatを使用すると、Moshが一定期間サーバーからニュースを聞くことができなかった場合、Moshはユーザーに通知することができます(ユーザーが入力しようとするまで接続が切断されたことを認識できないSSHとは異なります)。

他のモバイル技術は、クライアントが次の場合にこのハートビート遅延を短縮する可能性があります。はいインターネットに表示されるIPアドレスが変更されたことを認識します。このセクションでは、これが必要かどうかについては説明しませんmosh。 3秒間のアップデートにより、mosh対話型セッションは従来の設定よりも便利で強力になりました。また、「技術情報」では利用できないモッシュのより新しい側面についても説明します。また小さな細部にとらわれます:)。

少なくとも上記のように、moshモビリティは片側、つまりクライアントでのみ実装されます。これはmosh、安定したIPアドレスを持つルータで実行される「ローカルプロキシ」を必要とするモバイルIPとは異なり、第三者が必要としないようにするのに役立ちます。

モビリティを実装するときは、それを安全に制御することが重要です。moshSSHを介して初期化されたセキュリティが含まれています。モバイルIPにはこのような利点はありません。 IPsecを活用しようとしています。 IPsecは、コンピュータとルータ間で設定する必要があるIPのオプションの拡張です。特定の狭いシナリオでのみ使用されることがよくあります。

moshまたはscreen使用の間に3番目の類似点がありますtmux。これは、SSHサーバーが切断された後でもプログラムを無期限の実行状態にするように構成されているために機能します。systemd「公式」のデフォルト設定を使用しない限り:)。 systemd は、このような制御の欠如を Unix の歴史の中で顕著な監督と見なします。他の多くのシナリオでは、接続されていなくてもリソース使用量を無期限に維持することが考慮されます。危険にゴミ。多くのWebサーバーは、大量のデータを送受信してから数秒後にクライアントから切断するように構成されています。バラよりhttps://en.wikipedia.org/wiki/Slowloris_(コンピュータ_セキュリティ)

モバイルIPは古いプロジェクトです。最近のプロジェクトにはMP-TCP(Multipath TCP)があります。モバイル制御のための簡単なセキュリティを実現します。 MP-TCPは、mosh初期接続が削除できない単一のサーバーIPで行われるという点でよりよく似ています。接続が確立されると、クライアントまたはサーバーは理論的にIPアドレスを変更して接続を維持できます。ただし、すべてのIPが同時に変更された場合、回復は不可能です。

関連情報