Cisco IOS フレームリレー – inverse arpの動作確認

スポンサーリンク

Inverse ARPとはIPアドレスに対応する物理アドレス(DLCI)を解決する仕組みです。この仕組みを機能させる事によって、DLCIの明示的な設定をしなくても疎通可能な状態にする事ができます。

基本動作

動作環境

以下の環境で動作確認を行います。

+------+.1      +--------+      .2+------+
|  R1  +--------+  FRSW  +--------+  R2 | 
+------+s0/0   1+--------+2   s0/0+------+
               1:101 = 2:102
               1:201 = 2:202
               1:301 = 2:302
               1:401 = 2:402
               1:501 = 2:502
               1:601 = 2:602
 [R1]
interface Serial0/0
 ip address 192.168.0.1 255.255.255.0
 encapsulation frame-relay

 [R2]
interface Serial0/0
 ip address 192.168.0.2 255.255.255.0
 encapsulation frame-relay

LMI

LMI (Local Management Interface) はframe relayの状態を確認するためのプロトコルです。具体的には以下の機能を提供します。

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

LMIのフレームを観察すると以下の通りです。frame relay switchからPVCに関する情報を取得している事が読み取れます。

Frame 22 (44 bytes on wire, 44 bytes captured)
Frame Relay
Q.933
    Protocol discriminator: Q.933
    Call reference value length: 0
    Message type: STATUS (0x7d)
    Locking shift to codeset 5: Information elements for national use
    Report type (ANSI)
        Information element: Report type (ANSI)
        Length: 1
        Report type: Full Status (0)
    Keep Alive (ANSI)
        Information element: Keep Alive (ANSI)
        Length: 2
        TX Sequence: 7
        RX Sequence: 7
    PVC Status (ANSI)
        Information element: PVC Status (ANSI)
        Length: 3
        DLCI: 101
        Status: Active
    PVC Status (ANSI)
        Information element: PVC Status (ANSI)
        Length: 3
        DLCI: 102
        Status: Active
    PVC Status (ANSI)
        Information element: PVC Status (ANSI)
        Length: 3
        DLCI: 103
        Status: Active

 <omitted>

LMIによって取得したPVC情報は以下のコマンドで確認する事ができます。

R1#show frame-relay pvc | include DLCI
DLCI = 101, DLCI USAGE = UNUSED, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
DLCI = 102, DLCI USAGE = UNUSED, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
DLCI = 103, DLCI USAGE = UNUSED, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
DLCI = 104, DLCI USAGE = UNUSED, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
DLCI = 105, DLCI USAGE = UNUSED, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
DLCI = 106, DLCI USAGE = UNUSED, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
R1#

inverse arp

LMIによってPVCの情報が取得できると、ルータはactiveであると分かったDLCIに対応するIPアドレスの解決を試みます。

DLCI 101を例に挙げて説明します。R1はDLCI 101に対応するIPアドレスが分からないので、DLCIは101、送信元IPアドレスは192.168.0.1、宛先IPアドレスは0.0.0.0であるinverse arp requestと呼ばれるフレームを送信します。

このフレームをキャプチャした結果は以下の通りです。

Frame 23 (34 bytes on wire, 34 bytes captured)
Frame Relay
    First address octet: 0x18
    Second address octet: 0x51
    DLCI: 101
    Control field: U, func=UI (0x03)
    Padding
    NLPID: SNAP (0x80)
    Organization Code: Encapsulated Ethernet (0x000000)
    Type: ARP (0x0806)
Address Resolution Protocol (inverse request)
    Hardware type: Frame Relay DLCI (0x000f)
    Protocol type: IP (0x0800)
    Hardware size: 2
    Protocol size: 4
    Opcode: inverse request (0x0008)
    [Is gratuitous: False]
    Sender hardware address: 0000
    Sender IP address: 192.168.0.1 (192.168.0.1)
    Target hardware address: 1851
    Target IP address: 0.0.0.0 (0.0.0.0)

inverse arp requestを受信したルータは、自身のIPアドレスをセットしたinverse arp responseを返信します。

Frame 26 (34 bytes on wire, 34 bytes captured)
Frame Relay
    First address octet: 0x18
    Second address octet: 0x51
    DLCI: 101
    Control field: U, func=UI (0x03)
    Padding
    NLPID: SNAP (0x80)
    Organization Code: Encapsulated Ethernet (0x000000)
    Type: ARP (0x0806)
Address Resolution Protocol (inverse reply)
    Hardware type: Frame Relay DLCI (0x000f)
    Protocol type: IP (0x0800)
    Hardware size: 2
    Protocol size: 4
    Opcode: inverse reply (0x0009)
    [Is gratuitous: False]
    Sender hardware address: 0000
    Sender IP address: 192.168.0.2 (192.168.0.2)
    Target hardware address: 1851
    Target IP address: 192.168.0.1 (192.168.0.1)

inverse arpによってDLCIに対応したIPアドレスが解決できた場合は、以下のように表示されます。

R1#show frame-relay map
Serial0/0 (up): ip 192.168.0.2 dlci 102(0x66,0x1860), dynamic,
              broadcast,, status defined, active
R1#

対象となるDLCI

main interface

inverse arpの対象となるDLCIについて考察します。

“interface-dlci”などの設定が特にない場合は、LMIでactiveであると判断したPVC全てについてmain interfaceからinverse arpが送信されます。なお、以下のデバッグコマンドを使用すると、inverse arp requestについて確認する事ができます。

R1#debug frame-relay packet
Frame Relay packet debugging is on
R1#clear frame-relay inarp
R1#
R1#
R1#
*Mar  1 00:05:08.403: Serial0/0(o): dlci 101(0x1851), pkt encaps 0x0300 0x8000 0x0000 0x806 (ARP), datagramsize 34
*Mar  1 00:05:08.407: FR: Sending INARP Request on interface Serial0/0 dlci 101 for link 7(IP)
*Mar  1 00:05:08.411: Serial0/0(o): dlci 106(0x18A1), pkt encaps 0x0300 0x8000 0x0000 0x806 (ARP), datagramsize 34
*Mar  1 00:05:08.415: FR: Sending INARP Request on interface Serial0/0 dlci 106 for link 7(IP)
*Mar  1 00:05:08.415: Serial0/0(o): dlci 105(0x1891), pkt encaps 0x0300 0x8000 0x0000 0x806 (ARP), datagramsize 34
*Mar  1 00:05:08.419: FR: Sending INARP Request on interface Serial0/0 dlci 105 for link 7(IP)
*Mar  1 00:05:08.423: Serial0/0(o): dlci 104(0x1881), pkt encaps 0x0300 0x8000 0x0000 0x806 (ARP), datagramsize 34
*Mar  1 00:05:08.427: FR: Sending INARP Request on interface Serial0/0 dlci 104 for link 7(IP)
*Mar  1 00:05:08.427: Serial0/0(o): dlci 103(0x1871), pkt encaps 0x0300 0x8000 0x0000 0x806 (ARP), datagramsize 34
*Mar  1 00:05:08.431: FR: Sending INARP Request on interface Serial0/0 dlci 103 for link 7(IP)
*Mar  1 00:05:08.447: broadcast dequeue
R1#

point-to-point sub interface

point-to-point sub interfaceは1対1で接続されたinterfaceです。従って、DLCIに対応するIPアドレスを解決する必要がありません。

以下のようにsub interfaceに対してDLCI 102を割り当てると、main interfaceからDLCI 102のinverse arp requestが送信されなくなります

 [R1]
interface Serial0/0
 ip address 192.168.0.1 255.255.255.0
 encapsulation frame-relay
!
interface Serial0/0.1 point-to-point
 ip address 192.168.12.1 255.255.255.0
 frame-relay interface-dlci 102

 [R2]
interface Serial0/0
 ip address 192.168.0.2 255.255.255.0
 encapsulation frame-relay

multipoint sub interface

以下のようにsub interfaceに対してDLCI 103を割り当てると、DLCI 103のinverse arp requestの送信元IPアドレスがmain interfaceではなくpoint-to-point sub interfaceに変わります

 [R1]
interface Serial0/0
 ip address 192.168.0.1 255.255.255.0
 encapsulation frame-relay
!
interface Serial0/0.1 point-to-point
 ip address 192.168.12.1 255.255.255.0
 frame-relay interface-dlci 102
!
interface Serial0/0.2 multipoint
 ip address 192.168.21.1 255.255.255.0
 frame-relay interface-dlci 103

 [R2]
interface Serial0/0
 ip address 192.168.0.2 255.255.255.0
 encapsulation frame-relay

この時のフレームを観察すると以下の通りです。送信元IPアドレスがmultipoint sub interfaceである192.168.21.1になっている事が読み取れます。

Frame 17 (34 bytes on wire, 34 bytes captured)
Frame Relay
    First address octet: 0x18
    Second address octet: 0x71
    DLCI: 103
    Control field: U, func=UI (0x03)
    Padding
    NLPID: SNAP (0x80)
    Organization Code: Encapsulated Ethernet (0x000000)
    Type: ARP (0x0806)
Address Resolution Protocol (inverse request)
    Hardware type: Frame Relay DLCI (0x000f)
    Protocol type: IP (0x0800)
    Hardware size: 2
    Protocol size: 4
    Opcode: inverse request (0x0008)
    [Is gratuitous: False]
    Sender hardware address: 0000
    Sender IP address: 192.168.21.1 (192.168.21.1)
    Target hardware address: 1871
    Target IP address: 0.0.0.0 (0.0.0.0)

inverse arp 無効化

明示的な無効化

以下のコマンドでinverse arpを無効化する事ができます。DLCIを指定した場合は指定したDLCIのみinverse arpを無効にし、DLCIを省略した場合はmain interfaceから全くinverse arpを送信しなくなります。

Router(config-if)# no frame-relay inverse-arp [ ip >dlci< ]

設定例は以下の通りです。

 [R1]
interface Serial0/0
 ip address 192.168.0.1 255.255.255.0
 encapsulation frame-relay
 no frame-relay inverse-arp IP 104
!
interface Serial0/0.1 point-to-point
 ip address 192.168.12.1 255.255.255.0
 frame-relay interface-dlci 102
!
interface Serial0/0.2 multipoint
 ip address 192.168.21.1 255.255.255.0
 frame-relay interface-dlci 103

 [R2]
interface Serial0/0
 ip address 192.168.0.2 255.255.255.0
 encapsulation frame-relay

multipoint sub interfaceを利用した無効化

若干トリッキーな方法ですが、multipoint sub interfaceを利用したinverse arp無効化の方法もあります。IPアドレスを設定していないmultpoint sub interfaceにDLCIを割り当てる事で、inverse arpが送信されなくなります。設定例は以下の通りです。

 [R1]
interface Serial0/0
 ip address 192.168.0.1 255.255.255.0
 encapsulation frame-relay
 no frame-relay inverse-arp IP 104
!
interface Serial0/0.1 point-to-point
 ip address 192.168.12.1 255.255.255.0
 frame-relay interface-dlci 102
!
interface Serial0/0.2 multipoint
 ip address 192.168.21.1 255.255.255.0
 frame-relay interface-dlci 103
!
interface Serial0/0.999 multipoint
 frame-relay interface-dlci 105
 frame-relay interface-dlci 106

 [R2]
interface Serial0/0
 ip address 192.168.0.2 255.255.255.0
 encapsulation frame-relay

inverse arp 確認方法

inverse arp 確認方法

inverse arp無効化を確認する方法はやや難しいです。DLCI 105に関するinverse arpが無効化されているかどうかの確認方法を例に挙げて説明します。

大量のデバッグメッセージから当該の部分を見つけるのは、非常に困難です。logging bufferなどログに貯め込み、”include”句で適宜絞り込む方法をお勧めします。

“DLCI 105からパケットが送信されているから、DLCI無効化の設定が働いていない”という判断は誤りです。以下のメッセージは、対向からのinverse arp requestに対するresponseです。

R1#show logging | include 105
*Mar  1 00:36:50.743: Serial0/0(i): dlci 105(0x1891), pkt encaps 0x0300 0x8000 0x0000 0x806 (ARP), datagramsize 34
*Mar  1 00:37:50.763: Serial0/0(i): dlci 105(0x1891), pkt encaps 0x0300 0x8000 0x0000 0x806 (ARP), datagramsize 34
R1#

inverse arpが送信されていないかどうかを確認するためには、“INARP Request”と表示されているメッセージに着目します。以下のような出力ならば、”DLCI 105のinverse arpは確かに無効化されている”と判断できます。

R1#show logging | include Request
*Mar  1 00:36:08.407: FR: Sending INARP Request on interface Serial0/0 dlci 101 for link 7(IP)
*Mar  1 00:37:08.407: FR: Sending INARP Request on interface Serial0/0 dlci 101 for link 7(IP)
*Mar  1 00:38:08.403: FR: Sending INARP Request on interface Serial0/0 dlci 101 for link 7(IP)
R1#
タイトルとURLをコピーしました