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
1
2
3
4
5
6
7
8
9
[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に関する情報を取得している事が読み取れます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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情報は以下のコマンドで確認する事ができます。

1
2
3
4
5
6
7
8
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と呼ばれるフレームを送信します。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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を返信します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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アドレスが解決できた場合は、以下のように表示されます。

1
2
3
4
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について確認する事ができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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が送信されなくなります

1
2
3
4
5
6
7
8
9
10
11
12
13
[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に変わります

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[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になっている事が読み取れます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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を送信しなくなります。

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[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が送信されなくなります。設定例は以下の通りです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[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です。

1
2
3
4
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は確かに無効化されている”と判断できます。

1
2
3
4
5
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をコピーしました