フレームリレーはパケット交換網サービスのWANテクノロジです。現在では同様のサービスとしてVPNサービスが主流になりつつありますが,安価で複数拠点をつなぐサービスとしてフレームリレーは有効です。今回はフレームリレーの概要と設定を学びましょう。

フレームリレーの概要

 フレームリレーはITU-TとANSIの標準であるパケット交換型のコネクション型WANサービスで,レイヤ2のデータリンク層で動作します。使用されるプロトコルはLAPF(Link Access Procedure for Frame Relay)と呼ばれるHDLCの拡張の1つです。フレームリレーではFRAD(Frame Relay Access Device)の機能を持つ機器(Ciscoではルータがこの役割を果たします)であるDTEと,フレームリレー網上のDCEであるフレームリレー交換機間でフレームの転送が行われます(図1)。

図1●フレームリレー網
図1●フレームリレー網

 各拠点のDTE間でVC(Virtual Circuit)と呼ばれる仮想的な通信路を設定します。VCは1つの物理回線上に複数設定することができます。データを送る際にあて先を決めるVCはSVC(Switched VC),設定された相手と接続するVCはPVC(Permanent VC)と呼ばれ,フレームリレーではPVCが一般的です。つまり,フレームリレーではプロバイダのフレームリレー網に1つの物理回線で接続し,VCを各拠点に設定することによりフレームのやりとりを行います。

 VCを識別する番号をDLCI(Data Link Channel Identifier:データリンクチャネル識別子)と呼びます。DLCIは「あて先のアドレス」ではなく,「VCの識別番号」であることがポイントです。あくまで,そのDTEにとって「VCを識別する」ための番号なので,全体で一意である必要はなく,ローカルで一意であればいいという番号になります(図2)。

図2●VCとDLCI

 プロバイダが提供するフレームリレー網は専用線のように占有できる網ではなく,複数のユーザが共有する網になっています。そのため安価で使用できるのですが,複数のユーザが同時に使用するため,網が混雑してフレームの転送が滞ったり,フレームロスする場合があります。これを輻輳(ふくそう)と呼びます。フレームリレー網のプロバイダと契約する際は,それぞれのVCである程度保障される(占有できる)速度を決定します。これをCIR(Committed Information Rate:認定情報レート)と呼び,これにより価格が決定します。ただし,CIRを超えて送信することも可能であり,また重度の輻輳が発生した場合はCIRは保証されません。

 フレームリレーのフレームには,輻輳を制御するため,次のような値が設定されています。

  • DE(Discard Eligible) ・・・ 廃棄適正ビット。CIRを超えて送信されるフレームは輻輳が発生した場合優先的に破棄されることになるため,このビットがONになる
  • FECN(Forward Explicit Congestion Notification)・・・ 順方向輻輳通知ビット。輻輳が発生した場合,それを通知するためにつけられるビット。FECNは受信側へ通知される
  • BECN(Backward Explicit Congestion Notification)・・・ 逆方向輻輳通知ビット。BECNは送信側へ通知される

 CIRをゼロに設定することも可能です。また,FECN,BECNのビットがONになっているフレームを受け取ったDTEは輻輳をなくそうとするようにフレームの送信を控えるなどの動作を行います。

LMIとInverseARP

 フレームリレーでは,DTEとフレームリレー交換機間でフレームリレー網の状態や,VCの状態を確認するために拡張機能をもっています。これをLMI(Local Management Interface)と呼びます。LMIでは主に次のような機能を提供します。

  • キープアライブ ・・・ VCが接続状態であることを確認できます
  • マルチキャスト ・・・ フレームリレー網でマルチキャストを可能にします
  • グローバルDLCI ・・・ DLCIをネットワーク全体で一意に使用します
  • VCステータス ・・・ VCのステータスを確認できます

 LMIには複数のタイプがあり,それぞれ互換性がありません。Ciscoルータでは次の3つのLMIタイプを使用可能です。

  • Cisco ・・・ CiscoによるLMI
  • Ansi ・・・ ANSI標準
  • q933a ・・・ ITU-T標準

 DTEであるルータはルーティングを行い,次ホップを決定します。次ホップとフレームリレー網で接続されている場合,次ホップに接続されているVCのDLCIを知る必要があります。そのため,次ホップのIPアドレスと,DLCIを一致させる必要があります。この方法として,手動で静的に決定するか,動的に決定するかどちらかになります。動的に決定する場合はInverseARPを使用します。(図3)

図3●InverseARP

フレームリレーの設定と確認

 Ciscoルータでフレームリレーを設定するための基本コマンドは次のコマンドになります。

  • (config)# interface serial [ポート番号]
  • (config-if)# ip address [IPアドレス] [サブネットマスク]
  • (config-if)# encapsulation frame-relay {cisco | ietf} ・・・ カプセル化をフレームリレーにする

 encapsulation frame-relayコマンドでカプセル化を設定します。Ciscoルータ同士ならcisco,非Ciscoルータがあるならばietfを設定します。省略した場合はciscoになります。また,もし古いIOS(11.2以前)を使用しているならば,LMIのタイプを設定するため,frame-relay lmi-typeコマンドが必要です。デフォルトのカプセル化はciscoになります。IOSが11.2以降ならば自動認識するためframe-relay lmi-typeコマンドは必要ありません(図4)。

  • (config-if)# frame-relay lmi-type [cisco | ansi | q933a} ・・・ LMIタイプを決定する

図4●フレームリレーの基本設定
図4●フレームリレーの基本設定

 InverseARPを使用せず,手動で静的にIPアドレスとDLCIを設定したい場合は,frame-relay mapコマンドを使用します(図5)。

  • (config-if)# frame-relay map ip [IPアドレス] [DLCI] {broadcast}
    • {broadcast}
      • オプション。VCでブロード/マルチキャストを使用可能にする

図5●frame-relay mapコマンド
図5●frame-relay mapコマンド

 フレームリレーで1つの物理回線(インタフェース)で複数のVCを使用している場合,ルーティングプロトコルの運用で問題が発生する場合があります(図6)。

図6●ルーティングプロトコルの運用の問題
図6●ルーティングプロトコルの運用の問題

 これを防ぐため,物理インタフェースをVCごとにサブインタフェースに分割します。サブインタフェースは1つの物理インタフェースを論理的に複数にわけるインタフェースになります。スイッチング編の第6回のVLAN間ルーティングでも登場しています。フレームリレーのサブインタフェースの場合,フレームリレーの設定に合わせて2つのモードが存在します。

  • point-to-point ・・・ 1つのサブインタフェースで1つのVC。VCごとに別サブネットとして運用される
  • multipoint ・・・ 1つのサブインタフェースで複数のVC。すべてのVCが一つのサブネットとして運用される。スプリットホライズンの問題は解決されない。

 サブインタフェースの設定には次のコマンドを使用します。

  • (config)# interface serial [ポート].[サブインタフェース] {point-to-point | multipoint}

 さらにpoint-to-pointに設定した場合,それぞれのインタフェースとDLCIを結びつける必要があります。

  • (config-subif)# frame-relay interface-dlci [DLCI] ・・・ そのサブインタフェースで使用するVCのDLCIを設定する

 それぞれpoint-to-pointの場合とmultipointの場合の設定は次のようになります(図7・図8)。

図7●point-to-pointサブインタフェース
図7●point-to-pointサブインタフェース

図8●multipointサブインタフェース
図8●multipointサブインタフェース

 フレームリレーの状態を確認したい場合,主に使用されるコマンドは次になります。

  • # show interfaces ・・・ インタフェースの状態の確認
  • # show frame-relay map ・・・ IPアドレスとDLCIの対応の確認(静的・動的双方表示される)
  • # show frame-relay lmi ・・・ LMIのタイプや状態の確認
  • # show frame-relay pvc {interface インタフェース番号 | DLCI} ・・・ PVCの状態確認。FECN/BECNなどの確認も
  • # debug frame-relay lmi ・・・ LMIを正しく送受信しているか確認する