ARP の設定

アドレス解決はネットワーク アドレスをメディア アクセス コントロール(MAC)アドレスにマッピングするプロセスです。通常は、ARP プロトコルを使用してシステムにより動的に実行されますが、スタティック ARP エントリの設定によって実行することもできます。このプロセスを実現するのに使用されるのが、アドレス解決プロトコル(ARP)です。

ARP は、IP アドレスをメディアや MAC アドレスに関連付けるために使用されます。ARP は IP アドレスを入力とし、関連するメディアのアドレスを決定します。メディアまたは MAC アドレスが決定すると、IP アドレスまたはメディア アドレスの関連付けは、すぐ取得できるように ARP のキャッシュに保管されます。その後、IP データグラムがリンク層フレームにカプセル化され、ネットワークを通じて送信されます。

ARP の詳細については、次を参照してください。 ARP の設定に関する情報

ARP およびプロキシ ARP

Cisco IOS XR ソフトウェアでは、アドレス解決プロトコル(ARP)とプロキシ ARP という 2 つの形式のアドレス解決がサポートされています。これらのプロトコルは、それぞれ RFC 826 と RFC 1027 で定義されています。Cisco IOS XR ソフトウェアでは、ローカル プロキシ ARP という ARP の形式もサポートされています。

プロキシ ARP とローカル プロキシ ARP の詳細については、次を参照してください。 プロキシ ARP とローカル プロキシ ARP

制約事項

ARP の設定には、次の制約事項が適用されます。

  • 逆アドレス解決プロトコル(RARP)はサポートされません。

  • 転送情報ベース(FIB)で ARP パケットのレートを制限する ARP スロットリングはサポートされていません。

ARP キャッシュ エントリ

ARP は、ネットワーク アドレス(IP アドレスなど)とイーサネット ハードウェア アドレスの間の通信を確立します。各通信の記録は、キャッシュ内に事前定義された期間だけ保持された後、廃棄されます。

また、明示的に削除されるまで存続するスタティック(永続)エントリを ARP キャッシュに追加することもできます。

スタティック ARP キャッシュ エントリの定義

ARP をはじめとするアドレス解決プロトコルを使用すると、IP アドレスとメディア アドレスとをダイナミックにマッピングできます。大部分のホストはダイナミック アドレス解決をサポートしているため、通常はスタティック ARP エントリを指定する必要はありません。スタティック ARP キャッシュ エントリを定義する必要がある場合は、グローバルに定義できます。このタスクを実行すると、ARP キャッシュにエントリが永続的にインストールされます。Cisco IOS XR ソフトウェアはこのエントリを使用して、32 ビット IP アドレスを 48 ビットのハードウェア アドレスに変換します。

また、ARP キャッシュにエイリアス エントリを作成することにより、特定の IP アドレスによって識別されたかのように、ARP 要求に応答することもできます。

設定例

キャッシュ エントリを作成して、IP アドレス 203.0.1.2 と MAC アドレス 0010.9400.000c の間に接続を確立します。さらに、このキャッシュ エントリをエイリアス エントリとして作成すると、エントリに関連付けられているインターフェイスは、エントリ内のデータ リンク層アドレスを使って、このネットワーク層アドレスに対する ARP 要求パケットに応答します。

Router#config
Router(config)#arp 203.0.1.2 0010.9400.000c arPA
Router(config)#commit

実行コンフィギュレーション

Router#show run arp 203.0.1.2 0010.9400.000c arpA
arp vrf default 203.0.1.2 0010.9400.000c ARPA

確認

[State] が [Static] になっているかをチェックして、適切に機能していることを確認します。

Router#show arp location 0/0/CPU0
Address         Age        Hardware Addr   State      Type  Interface
203.0.1.1       -          ea28.5f0b.8024  Interface  ARPA  HundredGigE0/0/0/9
203.0.1.2       -          0010.9400.000c  StaticARPA  HundredGigE0/0/0/9 

プロキシ ARP とローカル プロキシ ARP

プロキシ ARP がディセーブルされると、ネットワーキングデバイスは、次のいずれかの条件が満たされる場合に限り、インターフェイスに受信された ARP 要求に応答します。

  • ARP 要求のターゲット IP アドレスは、要求が受信されたインターフェイス IP アドレスと同じです。

  • ARP 要求のターゲット IP アドレスには、静的に設定された ARP エイリアスがあります。

プロキシ ARP がイネーブルになると、ネットワーキング デバイスは、次の条件すべてを満たす ARP 要求にも応答します。

  • ターゲット IP アドレスが、要求を受信した同一の物理ネットワーク(LAN)上にない。

  • ネットワーキング デバイスに、ターゲット IP アドレスまでのルートが 1 つ以上存在する。

  • ターゲット IP アドレスまでのルートすべてが、要求を受信したインターフェイスとは別のインターフェイスを通過する。

プロキシ ARP がイネーブルになっている場合、ネットワーキング デバイスは、次の条件をすべて満たす ARP 要求に応答します。

  • ARP 要求のターゲット IP アドレス、ARP ソースの IP アドレス、および ARP 要求を受信するインターフェイスの IP アドレスが、同じレイヤ 3 ネットワーク上にある。

  • ターゲット IP アドレスのネクストホップが、要求を受信するインターフェイスと同じインターフェイスを使用する。

通常、ローカル プロキシ ARP は、同じレイヤ 3 ネットワークで MAC アドレスを IP アドレスに解決するために使用されます。ローカル プロキシ ARP は、ARP でサポートされるあらゆるタイプのインターフェイスに加えて、アンナンバード インターフェイスに対応しています。

プロキシ ARP のイネーブル化

Cisco IOS XR ソフトウェア は(RFC 1027 で定義されている)プロキシ ARP を使用して、ルーティングに必要な情報を持たないホストでも他のネットワークやサブネット上のホストのメディア アドレスを判別できるようにします。たとえば、ARP 要求の送信元と異なるインターフェイス上のホストに宛てた ARP 要求をルータが受信した場合、そのルータに他のインターフェイスを経由してそのホストに至るすべてのルートが格納されていれば、ルータは自身のローカル データ リンク アドレスを示すプロキシ ARP 応答パケットを生成します。ARP 要求を送信したホストはルータにパケットを送信し、ルータはパケットを目的のホストに転送します。プロキシ ARP はデフォルトではディセーブルになっています。このタスクでは、ディセーブルになっているプロキシ ARP をイネーブルにする方法について説明します。

設定例

プロキシ ARP を HundredGigE インターフェイス 0/0/0/0 で有効にします。

Router#configure
Router(config)#interface HundredGigE 0/0/0/0
Router(config-if)#proxy-arp	
Router(config-if)#commit

実行コンフィギュレーション

Router# show running-config interface HundredGigE 0/0/0/0
interface HundredGigE0/0/0/0
 mtu 4000
 ipv4 address 1.0.0.1 255.255.255.0
 proxy-arp
!
!

確認

プロキシ ARP が設定され、イネーブルになっていることを確認します。

Router#show arp idb HundredGigE 0/0/0/0 location 0/0/CPU0
		HundredGigE0/0/0/0 (0x08000038):
  IPv4 address 1.0.0.1, Vrf ID 0x60000000
  VRF Name default
  Dynamic learning: Enable
  Dynamic entry timeout: 14400 secs
  Purge delay: off
  IPv4 caps added (state up)
  MPLS caps not added
  Interface not virtual, not client fwd ref,
  Proxy arp is configured, is enabled
  Local Proxy arp not configured
  Packet IO layer is NetIO
  Srg Role : DEFAULT
  Idb Flag : 262332
  IDB is Complete

ローカル プロキシ ARP のイネーブル化

ローカル プロキシ ARP は、レイヤ 2 で分離されたプライベート VLAN など、同じレイヤ 3 ネットワークで MAC アドレスを IP アドレスに解決するために使用されます。ローカル プロキシ ARP は、ARP でサポートされるあらゆるタイプのインターフェイスに加えて、アンナンバード インターフェイスに対応しています。

設定例

ローカル プロキシ ARP を HundredGigE インターフェイス 0/0/0/0 で有効にします。

Router#configure
Router(config)#interface HundredGigE 0/0/0/0
Router(config-if)#local-proxy-arp
Router(config-if)#commit

実行コンフィギュレーション

Router#show running-config interface HundredGigE 0/0/0/0 
interface HundredGigE0/0/0/0
ipv4 address 1.0.0.1 255.255.255.0
local-proxy-arp
!

確認

ローカル プロキシ ARP が設定されていることを確認します。

Router#show arp idb HundredGigE 0/0/0/0 location 0/0/CPU0
HundredGigE0/0/0/0 (0x08000038):
  IPv4 address 1.0.0.1, Vrf ID 0x60000000
  VRF Name default
  Dynamic learning: Enable
  Dynamic entry timeout: 14400 secs
  Purge delay: off
  IPv4 caps added (state up)
  MPLS caps not added
  Interface not virtual, not client fwd ref,
  Proxy arp not configured, not enabled
  Local Proxy arp is configured
  Packet IO layer is NetIO
  Srg Role : DEFAULT
  Idb Flag : 264332
  IDB is Complete

関連コマンド

ローカル ARP エントリの学習の設定

インターフェイスまたはサブインターフェイスを設定して、ローカル サブネットから ARP エントリのみを学習することができます。

インターフェイス上にローカル ARP 学習を設定するには、次の手順を実行します。

  1. インターフェイス コンフィギュレーション モードを開始します。

    RP/0/RP0/CPU0:router(config)# interface GigabitEthernet 0/0/0/1
  2. インターフェイスの IPv4/IPv6 アドレスを設定します。

    RP/0/RP0/CPU0:router (config-if)# ipv4 address 12.1.3.4 255.255.255.0
  3. インターフェイス上にローカル ARP インターフェイスの学習を設定します。

    RP/0/RP0/CPU0:router(config-if)# arp learning local
  4. インターフェイスを有効にし、設定をコミットします。

    RP/0/RP0/CPU0:router(config-if)# no shut
    RP/0/RP0/CPU0:router(config-if)# commit
    RP/0/0/CPU0:Dec 12 13:41:16.580 : ifmgr[397]: %PKT_INFRA-LINK-3-UPDOWN : Interface GigabitEthernet0/0/0/1, changed state to Down 
    RP/0/0/CPU0:Dec 12 13:41:16.683 : ifmgr[397]: %PKT_INFRA-LINK-3-UPDOWN :  Interface GigabitEthernet0/0/0/1, changed state to Up 
  5. 設定を確認します。

    RP/0/RP0/CPU0:router(config-if)# show running-configuration 
    ..
    Building configuration...
    !! IOS XR Configuration 0.0.0
    !! Last configuration change at Mon Dec 12 13:41:16 2016
    !
    interface GigabitEthernet0/0/0/1
     ipv4 address 12.1.3.4 255.255.255.0
     arp learning local
    !
  6. ローカル ARP 学習がインターフェイスに設定したとおりに動作していることを確認します。

    RP/0/RP0/CPU0:router(config-if)# do show arp idb gigabitEthernet 0/0/0/1 location 0/0/CPU0
    Thu Dec 15 10:00:11.733 IST
    
    GigabitEthernet0/0/0/1 (0x00000040):
      IPv4 address 12.1.3.4, Vrf ID 0x60000000
      VRF Name default
      Dynamic learning: Local
      Dynamic entry timeout: 14400 secs
      Purge delay: off
      IPv4 caps added (state up)
      MPLS caps not added
      Interface not virtual, not client fwd ref,
      Proxy arp not configured, not enabled
      Local Proxy arp not configured
      Packet IO layer is NetIO
      Srg Role : DEFAULT
      Idb Flag : 2146444
      IDB is Complete
  7. (任意)インターフェイス上で ARP トラフィックをモニタできます。

    RP/0/RP0/CPU0:router(config-if)# do show arp traffic gigabitEthernet 0/0/0/1 location 0/0/CPU0 
    Thu Dec 15 10:13:28.964 IST
    
    ARP statistics:
      Recv: 0 requests, 0 replies
      Sent: 0 requests, 1 replies (0 proxy, 0 local proxy, 1 gratuitous)
      Subscriber Interface: 
             0 requests recv, 0 replies sent, 0 gratuitous replies sent
      Resolve requests rcvd: 0
      Resolve requests dropped: 0
      Errors: 0 out of memory, 0 no buffers, 0 out of sunbet
    
    ARP cache:
      Total ARP entries in cache: 1
      Dynamic: 0, Interface: 1, Standby: 0
      Alias: 0,   Static: 0,    DHCP: 0
    
      IP Packet drop count for GigabitEthernet0_0_0_1: 0
    

ARP の設定に関する情報

アドレス解決の概要

IP のデバイスは、ローカル アドレス(ローカル セグメントまたは LAN のデバイスを一意に識別)とネットワーク アドレス(デバイスが属するネットワークを識別)の両方を持つことができます。ローカル アドレスは、より正確にはデータリンク アドレスとして知られています。その理由は、ローカル アドレスはパケット ヘッダーのデータリンク層(OSI モデルの第 2 層)の部分にあり、データリンク デバイス(ブリッジやすべてのデバイス インターフェイスなど)によって読み取られるからです。データリンク層内の MAC 副層がその層用にアドレスを処理するため、技術志向が強い人ほどローカル アドレスを MAC アドレスと呼びます。

たとえば、イーサネットでデバイスと通信するには、Cisco IOS XR ソフトウェアがまずそのデバイスの 48 ビットの MAC アドレスまたはローカル データリンク アドレスを特定する必要があります。IP アドレスからローカル データリンク アドレスを決定する処理は、アドレス解決と呼ばれています。

単一の LAN でのアドレス解決

次のプロセスでは、送信元デバイスと宛先デバイスが同じ LAN に接続されている場合のアドレス解決について説明します。

  1. エンド システム A(ノード A)は ARP 要求を LAN にブロードキャストし、エンド システム B(ノード B)の MAC アドレスの学習を試みます。

  2. ブロードキャストは、エンド システム B を含め LAN 上のすべてのデバイスで受信され、処理されます。

  3. エンド システム B のみが、ARP 要求に応答します。ARP 応答に自身の MAC アドレスを含めてエンド システム A(ノード A)に送信します。

  4. エンド システム A(ノード A)は応答を受信し、自身の ARP キャッシュにエンド システム B の MAC アドレスを保存します(ARP キャッシュ内で、ネットワーク アドレスが MAC アドレスに関連付けられます)。

  5. エンド システム A(ノード A)はエンド システム B との通信が必要になるたびに、ARP キャッシュをチェックしてエンド システム B の MAC アドレスを探し、フレームを直接送信します。最初に ARP 要求を使用する必要はありません。

ルータによって相互接続されている場合のアドレス解決

次のプロセスでは、送信元デバイスと宛先デバイスが、ルータによって相互接続された異なる LAN に接続されている場合のアドレス解決について説明します(プロキシ ARP が有効になっている場合のみ)。

  1. エンド システム Y(ノード A)は ARP 要求を LAN にブロードキャストし、エンド システム Z(ノード B)の MAC アドレスの学習を試みます。

  2. ブロードキャストは、ルータ X を含め LAN 上のすべてのデバイスで受信され、処理されます。

  3. ルータ X は、自身のルーティング テーブルをチェックし、エンド システム Z(ノード B)が別の LAN 上にあることを突き止めます。

  4. これにより、ルータ X はエンド システム Z(ノード B)のプロキシとして動作します。ルータ X はエンド システム Z(ノード B)に属しているかのように、エンド システム Y(ノード A)からの ARP 要求に応答し、ARP 応答に自身の MAC アドレスを含めて送信します。

  5. エンド システム Y(ノード A)は ARP 応答を受信し、自身の ARP キャッシュのエンド システム Z(ノード B)用エントリにルータ X の MAC アドレスを保存します。

  6. エンド システム Y(ノード A)はエンド システム Z(ノード B)との通信が必要になると、ARP キャッシュをチェックしてルータ X の MAC アドレスを探し、フレームを直接送信します。ARP 要求は使用されません。

  7. ルータ X は、エンド システム Y(ノード A)からトラフィックを受信し、それを他の LAN 上のエンド システム Z(ノード B)に転送します。