ループバック

ループバック（loopback, loop-back）とは、意図的な処理や変更なしに送信元に戻って来る、電子信号、デジタルデータストリーム、またはアイテムの流れである。これは、主に、送電や輸送のインフラストラクチャを試験する手段として使用される。
ループバックには多くの応用例が存在する。1つのcommunication endpointのみを有する通信路であってもよい。そのような通信路によって送信されたメッセージは、すぐにその同じ通信路によってのみ受信される。電気通信では、ループバック装置は、交換機へのAccess networkの伝送試験を実行するが、これは通常、サービスされる端末の人員の支援を必要としない。Loop aroundは、必ずしも隣接していない局間の試験方法で、2つの通信線が使用され、1つの局で試験が実行され、2つの通信線が離れた局間で相互接続される。patch cableは、手動または自動で、リモートまたはローカルで適用されるループバックとしても機能し、ループバック試験を容易にする。
信号の往復ともにアナログ・デジタル変換処理を含むシステム（モデムなど）の場合は、アナログ信号を直接送信元に戻すアナログループバックと、デジタル信号に変換後に再度アナログ信号に変換してから送信元に戻すデジタルループバックとがある。

**電気通信**
電気通信において、ループバック（または単にループ）とは、受信した信号またはデータを送信者にフィードバックするハードウェアまたはソフトウェアの方法である。物理的な接続の問題を解析するのに役立つ。試験用に、多くのデータ通信デバイスは、特定のパターンをインタフェース上に送信するように構成することができ、同じポート上でこの信号の受信を検出することができる。これはループバック試験と呼ばれ、モデムやトランシーバ内でその出力を自身の入力に接続することで実行できる。異なる2地点間の回路は、ある位置の回路上に試験信号を印加し、他の位置のネットワーク装置に回路を介して信号を戻すことによって試験することができる。このデバイスが独自の信号を受信した場合、これは回路が機能していることを示す。
ハードウェアループは、受信機チャネルを送信機チャネルに物理的に接続する単純なデバイスである。X.21のようなネットワーク終端コネクタの場合、これは通常、単にピンをコネクタに一緒に接続することによって行われる。送信コネクタと受信コネクタが別になっている光ファイバや同軸ケーブルのような媒体は、適切な媒体の単一のケーブルを使ってループさせることができる。
モデムは、対向側のモデムまたはローカル端末からの着信信号をループするように設定できる。これは、ソフトウェアループと呼ばれる。

**シリアルインターフェース**
シリアル通信のトランシーバは、その機能を試験するためにループバックを使用できる。例えば、デバイスの送信ピンを受信ピンに接続すると、デバイスは送信する信号を正確に受信する。このループ接続をケーブルの遠端に移動すると、試験の対象にケーブルが追加される。それをモデムリンクの遠端に移動すると、テストがさらに拡張される。これは一般的なトラブルシューティング手法であり、特定のパターンを送信し、戻ってくるエラーを数える特殊なテストデバイスと組み合わせることがよくある（「label=符号誤り率試験を参照）。一部のデバイスには、組み込みのループバック機能が含まれている。 
「ペーパークリップ試験」(paperclip test)と呼ばれる単純なシリアルインタフェースループバック試験は、コンピュータのシリアルポートを識別し、動作を確認するために使用されることがある。これは、ターミナルエミュレータアプリケーションを使用して、フロー制御をオフに設定して文字をシリアルポートに送信し、ループバックを受信する。この目的のために、D-subminiature DE-9またはDB-25のコネクタを使用した標準のRS-232インタフェース上のピン2とピン3（受信ピンと送信ピン）を、ペーパークリップを使用して短絡する。

**仮想ループバックインターフェイス**
インターネットプロトコルスイートの実装には、ネットワークアプリケーションが同じマシン上で実行するときに通信できる仮想ネットワークインターフェイスが含まれる。これは、オペレーティングシステムのネットワーキングソフトウェア内で実装され、パケットをネットワークインターフェイスコントローラ(NIC)に渡さない。コンピュータプログラムがループバックIPアドレスに送信したトラフィックは、別のデバイスから受信されたかのように、ネットワークソフトウェアスタックに戻される。
UNIX系のシステムでは通常、ループバックインタフェースにはloまたはlo0と名前を付けられる。
Internet Engineering Task Force(IETF)標準では、IPv4アドレスブロック 127.0.0.0/8 （CIDR表記）とIPv6アドレス ::1 がこの目的のために予約されている。最も一般的なIPv4アドレスは 127.0.0.1 である。通常、これらのループバックアドレスは、自端末のホスト名、localhost、loopbackにマップされる。

**MPLS**
アドレス 127.0.0.0/8 を使用する際の例外の一つに、Multi-Protocol Label Switching(MPLS)のトレースルートエラー検出での使用がある。ループバックアドレスの「ルーティング可能でない」という特性を利用して、エンドユーザーに障害のあるパケットの配信を避ける手段を提供する。

**Martianパケット**
送信元または宛先アドレスがループバックアドレスに設定されたIPデータグラムは、自ホストの外に出したり、ルーティングしたりしてはならない。インターフェイス上で受信された、宛先がループバックアドレスになっているパケットは廃棄する必要がある。そのようなパケットはMartian packetと呼ばれる。他の異常パケットと同様に、それらは悪意のある可能性があり、発生する可能性のある問題はbogon filteringを適用することで回避できる。

**安定したアドレスを持つインターフェイス**
一部のコンピュータネットワーク機器では、安定したアドレスを設定することができる仮想インターフェイスに「ループバック」という用語が使用されている。通常のループバックインターフェイスとは異なり、このタイプのループバックデバイスは、自身と通信するためには使用されない。この種のループバックインターフェイスは、実際の物理インターフェイスとは異なり、設定上明示的にダウンさせない限り、物理ポートに障害が発生してもダウンしないという性質を持つことから、インタフェースではなくネットワーク機器そのものにアドレスを与えるために使用される。
このようなインターフェイスには、ネットワーク経由で管理装置からアクセスできるアドレスが割り当てられるが、デバイス上の物理インターフェイスのいずれにも割り当てられない。このようなループバックデバイスは、機器から発生する警報などの管理データグラムにも使用される。この仮想インターフェイスが特別なのは、それを使用するアプリケーションが、トラフィックが通過する物理インターフェイス上のアドレスではなく、仮想インターフェイスに割り当てられたアドレスを使用してトラフィックを送受信することである。
ループバックインタフェースにアドレスを設定するユースケースとして、以下のような例がある。
ルーティングプロトコルからの要求
 OSPFやBGP等、大規模ネットワーク向けのルーティングプロトコルでは、プロトコルの実行に際してルータを識別するためのIDが必要となる。多くのルーティングプロトコルの実装ではルータIDを有効なインタフェースのIPv4アドレスから選び出すようになっている。ルータIDが不用意に変更されるとルーティングプロトコルの再実行が必要となり、ネットワークを不安定にする恐れがあることから、安定したルータIDを設定するためにループバックインタフェースを用いる。
 また、BGPの運用にあっては他のルータとのピアリング（peering）にループバックインタフェースのアドレスを使用することが推奨されている。これにより、ルータからピアへの接続が途絶した場合でも、IGP等を利用して新しい経路を求めることによりBGP接続を復旧することができる。
ポイント・ツー・ポイント接続におけるunnumberedインタフェース
 ルータがポイント・ツー・ポイント接続のインタフェースへパケットを送信する場合、そのネクストホップはポイント・ツー・ポイント接続の対向であることが自明であるため、パケットの転送だけを考えればそのようなインタフェースへアドレスを設定する必要はない。一方、ルータ自身が生成または終端するパケットがポイント・ツー・ポイント接続を経由する場合は、インタフェースに何らかのアドレスを与える必要となる。この場合、ポイント・ツー・ポイント接続のインタフェースへ直接アドレスを設定する代わりにループバックインタフェースに設定したアドレスをポイント・ツー・ポイント接続のインタフェースにて借用する手法が可能であり、unnumberedインタフェースなどの名称で知られている。
 この手法は、ルータが収容するポイント・ツー・ポイント接続数が増えてもルータ側のインタフェースに与えるアドレスを増やす必要がないことから、PPPやVPNトンネル等のサーバにてしばしば採用されている。

**その他の利用**
音声処理システムOpen Sound System(OSS)、Advanced Linux Sound Architecture (ALSA)、PulseAudioには、試験目的でアプリケーションの音声出力を記録するループバックモジュールがある。物理的なループバックとは異なり、これにはアナログ・デジタル変換は含まれず、ハードウェアの誤動作による中断もない。

**関連項目**
 フィードバック- Loop device- 仮想ネットワークインターフェイス

**脚注**

**外部リンク**
  National Instruments: Serial loopback testing