既に日本ではサービスが終了している旧世代技術のフレームリレーですが、新試験に変わってもなぜか CCNA ではまだ健在です。海外では使っているところがまだまだ多いのかもしれませんね。
フレームリレーの設定には、物理インターフェイスに設定する方法とサブインターフェイスに設定する方法があります。サブインターフェイスは物理インターフェイスを論理的に分ける手法で、フレームリレーの考え方のマッチしていますので、フレームリレーではサブインターフェイスがよく使われます。
本シナリオは物理インターフェイスに設定する方法です。
- RT-B に FRSW という名前を付け、ネットワーク構成図を参考に、フレームリレースイッチとして構成しなさい。
< RT-B >
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# host FRSW
FRSW(config)# frame-relay switching
FRSW(config)# int s0/0/0
FRSW(config-if)# description to RT-A
FRSW(config-if)# no ip address
FRSW(config-if)# clock rate 64000
FRSW(config-if)# encap frame-relay
FRSW(config-if)# frame-relay intf-type dce
FRSW(config-if)# frame-relay route 101 int s0/0/1 102
FRSW(config-if)# no shut
FRSW(config-if)# int s0/0/1
FRSW(config-if)# description to RT-C
FRSW(config-if)# no ip address
FRSW(config-if)# clock rate 64000
FRSW(config-if)# encap frame-relay
FRSW(config-if)# frame-relay intf-type dce
FRSW(config-if)# frame-relay route 102 int s0/0/0 101
FRSW(config-if)# no shut
FRSW(config-if)# ^Z
FRSW#
フレームリレースイッチの構成は CCNA の範囲外です。
- ネットワーク構成図に従い、RT-A でフレームリレーを構成しなさい。
< RT-A >
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# host RT-A
RT-A(config)# int s0/0/0
RT-A(config-if)# ip add 192.168.10.1 255.255.255.0
RT-A(config-if)# encapsulation frame-relay
RT-A(config-if)# no shut
RT-A(config-if)# ^Z
RT-A#
- ネットワーク構成図に従い、RT-C でフレームリレーを構成しなさい。
< RT-C >
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# host RT-C
RT-C(config)# int s0/0/0
RT-C(config-if)# ip add 192.168.10.2 255.255.255.0
RT-C(config-if)# encapsulation frame-relay
RT-C(config-if)# no shut
RT-C(config-if)# ^Z
RT-C#
● PVC の状態 [ ACTIVE | INACTIVE | DELETED ]
- RT-A と RT-C で PVC の状態を確認しなさい。
< RT-A >
RT-A# # sh frame-relay pvc
PVC Statistics for interface Serial0/0/0 (Frame Relay DTE)
Active Inactive Deleted Static
Local 1 0 0 0
Switched 0 0 0 0
Unused 0 0 0 0
DLCI = 101, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0/0
input pkts 1 output pkts 1 in bytes 34
out bytes 34 dropped pkts 0 in pkts dropped 0
out pkts dropped 0 out bytes dropped 0
in FECN pkts 0 in BECN pkts 0 out FECN pkts 0
out BECN pkts 0 in DE pkts 0 out DE pkts 0
out bcast pkts 1 out bcast bytes 34
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
pvc create time 00:00:04, last time pvc status changed 00:00:04
RT-A#
< RT-C >
RT-C# sh frame-relay pvc
PVC Statistics for interface Serial0/0/0 (Frame Relay DTE)
Active Inactive Deleted Static
Local 1 0 0 0
Switched 0 0 0 0
Unused 0 0 0 0
DLCI = 102, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0/0
input pkts 1 output pkts 1 in bytes 34
out bytes 34 dropped pkts 0 in pkts dropped 0
out pkts dropped 0 out bytes dropped 0
in FECN pkts 0 in BECN pkts 0 out FECN pkts 0
out BECN pkts 0 in DE pkts 0 out DE pkts 0
out bcast pkts 1 out bcast bytes 34
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
pvc create time 00:00:57, last time pvc status changed 00:00:57
RT-C#
PVC には3つの状態があります。
Active | 正常 (通信可能) |
Inactive | リモートに問題あり |
Deleted | ローカルに問題あり |
現状は ACTIVE ですので、正常な状態です。
- RT-A と RT-C でフレームリレーマップを確認しなさい。
< RT-A >
RT-A# sh frame-relay map
Serial0/0/0 (up): ip 192.168.10.2 dlci 101(0x65,0x1850), dynamic,
broadcast,
CISCO, status defined, active
RT-A#
< RT-C >
RT-C# sh frame-relay map
Serial0/0/0 (up): ip 192.168.10.1 dlci 102(0x66,0x1860), dynamic,
broadcast,, status defined, active
RT-C#
ローカルの DLCI 番号と、リモート (対向ルータのインターフェイス) のIPアドレスをマッピングしていることが分かります。
また、dynamic はこのマップが Inverse ARP を通して動的に作成されたことを示しています。
フレームリレーにはルータのルーティングテーブルのように、宛先と出力先が書かれているフレームリレーマップがあり、このフレームリレーマップを表示させるコマンドが show frame-relay map です。ルーティングテーブルに宛先ネットワークアドレスと、パケットを出力するローカルのインターフェイス情報が載っているように、フレームリレーマップには宛先IPアドレスと、その宛先にフレームを送り出すためのローカルの DLCI 番号が載っています。
このフレームリレーマップは Inverse ARP を使って動的に生成する方法と、Inverse ARP を使わずに静的に作成する方法があります。Inverse ARP はデフォルトで有効です。
ローカルの DLCI 番号はこのシナリオの下の方で行う LMI でフレームリレースイッチから自動的に取得します。その DLCI 番号とマップするリモートのIPアドレスの取得を Inverse ARP が行い、フレームリレーマップに自動的に登録します。
- RT-A と RT-C の S0/0/0 の Inverse ARP を無効にしなさい。
< RT-A >
RT-A# conf t
Enter configuration commands, one per line. End with CNTL/Z.
RT-A(config)# int s0/0/0
RT-A(config-if)# no frame-relay inverse-arp
RT-A(config-if)# ^Z
RT-A#
< RT-C >
RT-C# conf t
Enter configuration commands, one per line. End with CNTL/Z.
RT-C(config)# int s0/0/0
RT-C(config-if)# no frame-relay inverse-arp
RT-C(config-if)# ^Z
RT-C#
frame-relay inverse-arp コマンドを実行すれば再度 Inverse ARP が有効になります。
Inverse ARP は、ARP と対比してみるとよくわかります。
Ethernet |
FrameRelay |
ブロードキャスト マルチアクセス |
ノンブロードキャスト マルチアクセス |
ARP Request |
ARP Reply |
Inverse ARP Request |
Inverse ARP Reply |
L3アドレス → L2アドレス |
L2アドレス → L3アドレス |
IPアドレス |
MACアドレス |
DLCI |
IPアドレス |
ARP は Ethernet で使われるプロトコルです。Ethernet は1つの通信ラインに複数の端末がつながり、それぞれが通信できる環境にあります。しかし、複数ある端末の中で、通信相手を特定するために相手のMACアドレスが必要です。そのため、通信したい相手のIPアドレスからMACアドレスを調べる (L3アドレスからL2アドレスを調べる) 必要があり、その時使用するプロトコルが ARP です。
1つの Ethernet (通信ライン) に複数の端末がつながっている。
フレームリレーも1つの通信ラインに複数の通信相手があるマルチアクセスネットワークなので通信相手を特定する手段が必要で、それが Inverse ARP です。しかし Inverse ARP は ARP とは逆で、L2アドレス (DLCI) からL3アドレス (IPアドレス) を調べるためのプロトコルです。
1つのシリアルインターフェイス (通信ライン) に、(PVC を通じて) 複数のルータがつながっている。
RT-A の S0/0/0 から、フレームに DLCI 101 を付けて送り出すと 192.168.10.2 (RT-C) に届き、DLCI 201 を付けて送り出すと 192.168.10.3 (RT-D) に届く。この DLCI と相手のIPアドレスの紐付けを Inverse ARP を使って自動で行っている。
- RT-A と RT-C で clear frame-relay inarp コマンドを実行後、フレームリレーマップを確認しなさい。
< RT-A >
RT-A# clear frame-relay inarp
RT-A# sh frame-relay map
RT-A#
< RT-C >
RT-C# clear frame-relay inarp
RT-C# sh frame-relay map
RT-C#
clear frame-relay inarp コマンドは、Inverse ARP で生成されたフレームリレーマップを消去します。
しかしこのコマンドを実行しても、Inverse ARP が有効なままであれば60秒以内に再度生成されます。
- RT-A と RT-C にそれぞれ手動でマップエントリを設定しなさい。
< RT-A >
RT-A# conf t
Enter configuration commands, one per line. End with CNTL/Z.
RT-A(config)# int s0/0/0
RT-A(config-if)# frame-relay map ip 192.168.10.2 101
RT-A(config-if)# ^Z
RT-A#
< RT-C >
RT-C# conf t
Enter configuration commands, one per line. End with CNTL/Z.
RT-C(config)# int s0/0/0
RT-C(config-if)# frame-relay map ip 192.168.10.1 102
RT-C(config-if)#
マップエントリを手動で設定するには frame-relay map コマンドを使用します。
frame-relay map {プロトコル} {相手のアドレス} {ローカル DLCI} [broadcast] [ietf | cisco]
DLCI 番号はフレームリレースイッチ (FSW) 側と一致させないといけないので、通常、通信会社の方から番号を指定されますが、今回のように通信会社のフレームリレー網に接続しない場合は 16 ~ 1007 の範囲で何番を使用しても構いません。ただし、FRSW とローカルで一致していないといけません。
RT-A(config-if)# frame-relay map ip 192.168.10.2 ?
<16-1007> DLCI
vc-bundle vc-bundle
RT-A(config-if)# frame-relay map ip 192.168.10.2
DLCI はローカルで使用するため、リモート側の DLCI が何番でも構いません。ローカルとリモート側で同じ番号を使用することも可能です。今回のようにフレームリレースイッチが1台しかないようなテスト環境では同じ番号を設定することはできませんが、通信会社のフレームリレー網にはたくさんのフレームリレースイッチがありますので、異なるフレームリレースイッチに収容され同じ番号になる可能性もあります。
- RT-A と RT-C でフレームリレーマップを確認しなさい。
< RT-A >
RT-A# sh frame-relay map
Serial0/0/0 (up): ip 192.168.10.2 dlci 101(0x65,0x1850), static,
CISCO, status defined, active
RT-A#
< RT-C >
RT-C(config-if)# do sh frame-relay map
Serial0/0/0 (up): ip 192.168.10.1 dlci 102(0x66,0x1860), static,
CISCO, status defined, active
RT-C(config-if)#
両方のルータに静的 (static) にマップエントリが追加されました。
- RT-C の S0/0/0 インターフェイスをダウンさせなさい。
< RT-C >
RT-C(config-if)# shut
RT-C(config-if)#
- RT-A で PVC の状態を確認しなさい。
< RT-A >
RT-A# sh frame-relay pvc | include PVC STATUS
DLCI = 101, DLCI USAGE = LOCAL, PVC STATUS = INACTIVE, INTERFACE = Serial0/0/0
RT-A#
リモートネットワークがダウンしたので、ローカル側 PVC のステータスは INACTIVE になりました。
Active | 正常 (通信可能) |
Inactive | リモートに問題あり |
Deleted | ローカルに問題あり |
show frame-relay map コマンドでも確認できます。
RT-A# sh frame-relay map
Serial0/0/0 (up): ip 192.168.10.2 dlci 101(0x65,0x1850), static,
CISCO, status defined, inactive
RT-A#
- RT-C の S0/0/0 インターフェイスをアップさせ、FRSW の S0/0/0 インターフェイスをダウンさせなさい。
< RT-C >
RT-C(config-if)# no shut
RT-C(config-if)#
< FRSW >
FRSW# conf t
Enter configuration commands, one per line. End with CNTL/Z.
FRSW(config)# int s0/0/0
FRSW(config-if)# shut
FRSW(config-if)#
- RT-A で PVC の状態を確認しなさい。
< RT-A >
RT-A# sh frame-relay pvc | include PVC STATUS
DLCI = 101, DLCI USAGE = LOCAL, PVC STATUS = DELETED, INTERFACE = Serial0/0/0
RT-A#
RT-A と FRSW 間のローカル回線がダウンしたので、ローカル側 PVC のステータスは DELETED になりました。
Active | 正常 (通信可能) |
Inactive | リモートに問題あり |
Deleted | ローカルに問題あり |
show frame-relay map コマンドでも確認できます。
RT-A# sh frame-relay map
Serial0/0/0 (up): ip 192.168.10.2 dlci 101(0x65,0x1850), static,
CISCO, status deleted
RT-A#
● LMI タイプ [ CISCO | ANSI | CCITT (q933a) ]
- FRSW の S0/0/0 インターフェイスをアップさせなさい。
< FRSW >
FRSW(config-if)# no shut
FRSW(config-if)#
- FRSW と R-A、RT-C で LMI のタイプを確認しなさい。
< RT-A >
RT-A# sh frame-relay lmi
LMI Statistics for interface Serial0/0/0 (Frame Relay DTE) LMI TYPE = CISCO
Invalid Unnumbered info 0 Invalid Prot Disc 0
Invalid dummy Call Ref 0 Invalid Msg Type 0
Invalid Status Message 0 Invalid Lock Shift 0
Invalid Information ID 0 Invalid Report IE Len 0
Invalid Report Request 0 Invalid Keep IE Len 0
Num Status Enq. Sent 20 Num Status msgs Rcvd 21
Num Update Status Rcvd 0 Num Status Timeouts 0
Last Full Status Req 00:00:26 Last Full Status Rcvd 00:00:06
RT-A#
< FRSW >
FRSW# sh frame-relay lmi
LMI Statistics for interface Serial0/0/0 (Frame Relay DCE) LMI TYPE = CISCO
Invalid Unnumbered info 0 Invalid Prot Disc 0
Invalid dummy Call Ref 0 Invalid Msg Type 0
Invalid Status Message 0 Invalid Lock Shift 0
Invalid Information ID 0 Invalid Report IE Len 0
Invalid Report Request 0 Invalid Keep IE Len 0
Num Status Enq. Rcvd 35 Num Status msgs Sent 35
Num Update Status Sent 0 Num St Enq. Timeouts 0
LMI Statistics for interface Serial0/0/1 (Frame Relay DCE) LMI TYPE = CISCO
Invalid Unnumbered info 0 Invalid Prot Disc 0
Invalid dummy Call Ref 0 Invalid Msg Type 0
Invalid Status Message 0 Invalid Lock Shift 0
Invalid Information ID 0 Invalid Report IE Len 0
Invalid Report Request 0 Invalid Keep IE Len 0
Num Status Enq. Rcvd 17 Num Status msgs Sent 17
Num Update Status Sent 0 Num St Enq. Timeouts 5
FRSW#
< RT-C >
RT-C# sh frame-relay lmi
LMI Statistics for interface Serial0/0/0 (Frame Relay DTE) LMI TYPE = CISCO
Invalid Unnumbered info 0 Invalid Prot Disc 0
Invalid dummy Call Ref 0 Invalid Msg Type 0
Invalid Status Message 0 Invalid Lock Shift 0
Invalid Information ID 0 Invalid Report IE Len 0
Invalid Report Request 0 Invalid Keep IE Len 0
Num Status Enq. Sent 18 Num Status msgs Rcvd 19
Num Update Status Rcvd 0 Num Status Timeouts 0
Last Full Status Req 00:00:00 Last Full Status Rcvd 00:00:00
RT-C#
LMI はフレームリレースイッチ (FRSW) と、これに接続しているフレームリレーデバイス (RT-A、RT-C) との間の状態の維持・管理を行うためのものです。Cisco ルータは次の3つの LMI タイプをサポートしており、デフォルトは CISCO です。
・ cisco (デフォルト)
・ ansi (ANSI 標準)
・ q933a (ITU-T 標準)
また LMI タイプは show interface コマンドでも調べることができます。
RT-A# sh int s0/0/0 | include LMI type
LMI DLCI 1023 LMI type is CISCO frame relay DTE
RT-A#
- FRSW の S0/0/1 の LMI タイプを ANSI に変更しなさい。
< FRSW >
FRSW# conf t
Enter configuration commands, one per line. End with CNTL/Z.
FRSW(config-if)# int s0/0/1
FRSW(config-if)# frame-relay lmi-type ansi
FRSW(config-if)# ^Z
FRSW#
- FRSW と R-A、RT-C で LMI のタイプを確認しなさい。
< RT-A >
RT-A# sh frame-relay lmi | include LMI TYPE
LMI Statistics for interface Serial0/0/0 (Frame Relay DTE) LMI TYPE = CISCO ← CISCO のまま
RT-A#
< FRSW >
FRSW# sh frame-relay lmi | include LMI TYPE
LMI Statistics for interface Serial0/0/0 (Frame Relay DCE) LMI TYPE = CISCO ← CISCO のまま (RT-A 向け)
LMI Statistics for interface Serial0/0/1 (Frame Relay DCE) LMI TYPE = ANSI ← ANSI になっている (RT-C 向け)
FRSW#
< RT-C >
RT-C# sh frame-relay lmi | include LMI TYPE
LMI Statistics for interface Serial0/0/0 (Frame Relay DTE) LMI TYPE = ANSI ← ANSI になっている
RT-C#
FRSW 側 の LMI タイプを ANSI に変更しました。
IOS 11.2 版以降の Cisco ルータは LMI タイプを自動検出するため、RT-C の LMI タイプは ANSI になっています。
- RT-C で PVC の状態を確認しなさい。
< RT-C >
RT-C# sh frame-relay pvc | include PVC STATUS
DLCI = 102, DLCI USAGE = UNUSED, PVC STATUS = ACTIVE, INTERFACE = Serial0/0/0 ← ACTIVE になっている
RT-C#
RT-A と RT-C 間の PVC は正常な状態です。
RT-A と FRSW 間の LMI タイプ は CISCO です。
RT-C と FRSW 間の LMI タイプ は ANSI です。
LMI タイプはローカルに一致していれば問題ありません。
ITU-T が以前 CCITT と呼ばれていたせいか、LMI タイプに q933a を設定すると CCITT と表示されます。
RT-C# conf t
Enter configuration commands, one per line. End with CNTL/Z.
RT-C(config-if)# int s0/0/0
RT-C(config-if)# frame-relay lmi-type q933a
RT-C(config-if)# ^Z
RT-C#
RT-C# sh frame-relay lmi | include LMI TYPE
LMI Statistics for interface Serial0/0/0 (Frame Relay DTE) LMI TYPE = CCITT
RT-C#
● カプセル化タイプ [ CISCO | IETF ]
- RT-A の S0/0/0 のフレームリレーのカプセル化タイプを IETF に変更しなさい。
< RT-A >
RT-A# conf t
Enter configuration commands, one per line. End with CNTL/Z.
RT-A(config)# int s0/0/0
RT-A(config-if)# encapsulation frame-relay ietf
RT-A(config-if)# ^Z
RT-A#
Cisco ルータのフレームリレーのカプセル化タイプには cisco と ietf があります。デフォルトが cisco で、encapsulation frame-relay コマンドだけを実行するとデフォルトの cisco になります。両端のルータが Cisco 同士であればデフォルトのままでいいのですが、片方が他社のルータの場合は、ietf を使って接続します。
ietf に変更後 cisco に戻す場合は、cisco を付けずに encapsulation frame-relay コマンドのみ実行します。
RT-A(config)# int s0/0/0
RT-A(config-if)# do sh int s0/0/0 | include Encapsulation
Encapsulation FRAME-RELAY IETF, loopback not set ← IETF
RT-A(config-if)# encapsulation frame-relay ?
MFR Multilink Frame Relay bundle interface
ietf Use RFC1490/RFC2427 encapsulation
<cr>
RT-A(config-if)# encapsulation frame-relay
RT-A(config-if)# do sh int s0/0/0 | include Encapsulation
Encapsulation FRAME-RELAY, loopback not set ← CISCO
RT-A(config-if)#
- R-A のカプセル化タイプを確認しなさい。
< RT-A >
RT-A# sh int s0/0/0 | include Encapsulation
Encapsulation FRAME-RELAY IETF, loopback not set
RT-A#
show frame-relay map コマンドでも確認できます。
RT-A# sh frame-relay map
Serial0/0/0 (up): ip 192.168.10.2 dlci 101(0x65,0x1850), static,
IETF, status defined, active
RT-A#