キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
36928
閲覧回数
0
いいね!
0
コメント
ryouta_k12a
Level 1
Level 1

[toc:faq]

 

はじめに:

 

このドキュメントではネクストホップとして出口インターフェースを指定するスタティックルートと IP アドレスを指定するスタティックルートの違いを説明しています。

 

!-- Pointing to next hop address

ip route 0.0.0.0 0.0.0.0 10.1.1.2

!-- Pointing to the interface

ip route 0.0.0.0 0.0.0.0 fa0/0

 

基本概要:

 

宛先にパケットを転送するため、ルータは出口インターフェースを決定し、パケットを伝送路上に送出する前にレイヤ2のフレームを書き換える必要があります。ルータがレイヤ2フレームを書き換えるためにはレイヤ2アドレスに対応する IP アドレスを解決し、ネクストホップに送出する前にフレームを再構築する必要があります。アドレス解決は、イーサネットにおける ARP や フレームリレーにおける静的/動的に学習された DLCI などを使用して動的に行うことができます。

 

ルータでスタティックルートを設定する時に、理解しておくべき2つのポイントがあります。

 

1) ネクストホップに IP アドレスを指定したスタティックルートを設定する場合、ルータは宛先ごとにレイヤ2フレームを書き換えるため、ネクストホップ IP アドレスのレイヤ2アドレスを必要とします。

例: ip route 2.2.2.0 255.255.255.0 10.1.1.2

ルータは、パケットを宛先アドレス 2.2.2.2 に転送するため、10.1.1.2 のレイヤ2 MAC アドレスを必要とします。

 

2) 出口インターフェースを指定してスタティックルートを設定した場合、ルータは宛先アドレスのインターフェースが直接接続されていると仮定します。そして、イーサネットの場合には指定されたインターフェースから宛先アドレスに ARP リクエストを送出して、フレームリレーの場合にはマッピングテーブルから静的/動的に学習したエントリを検索して、宛先のレイヤ2アドレスを探そうとします。

例: ip route 2.2.2.0 255.255.255.0 fa0/0

ルータはパケットを 宛先 IP アドレス 2.2.2.2 に転送するため、 IP アドレス 2.2.2.2 のホストが fa0/0 のインターフェースの先に直接接続されていると仮定し、 IP アドレス 2.2.2.2 に対応するレイヤ2 MAC アドレスを必要とします。

 

一般的に、インターフェースはポイントツーポイントまたはマルチポイントで接続されます。上記 2) の状態はポイントツーポイント接続とマルチポイント接続で異なる動作をします。

 

ポイントツーポイント接続されたインターフェースでは、2つのデバイスは直接接続されているため、出口インターフェースを指定してのスタティックルートとネクストホップ IP アドレスを指定してのスタティックルートに違いはありません。ルータはパケットを転送するため、宛先アドレスごとにネクストホップ IP アドレスのインターフェースのレイヤ2アドレスを使用します。

 

マルチポイント接続されたインターフェースでは、インターフェースは複数のデバイスと接続することができます。そこで上記 2) の状態では、ネクストホップを指定してスタティックルートを設定する場合、ルータは宛先アドレスごとに レイヤ3アドレスからレイヤ2アドレスへの解決をする必要があります。イーサネットがマルチポイント接続であるのに対して、フレームリレー及び ATM では設定によってマルチポイント接続またはポイントツーポイント接続が使用できます。

 

 

設定概要:

 

以下がトポロジ図と初期設定です。

 

トポロジ図:

 

 

初期設定:

 

R1R2R3
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
ip address 10.1.1.2 255.255.255.252
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 20.1.1.1 255.255.255.0
duplex auto
speed auto
!
ip route 2.2.2.2 255.255.255.255 10.1.1.1
ip route 3.3.3.3 255.255.255.255 20.1.1.2
interface Loopback0
ip address 2.2.2.2 255.255.255.255
!
interface FastEthernet0/0
ip address 10.1.1.1 255.255.255.252
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 10.1.1.2
interface Loopback0
ip address 3.3.3.3 255.255.255.255
!
interface FastEthernet0/0
ip address 20.1.1.2 255.255.255.252
duplex auto
speed auto
!
ip route 0.0.0.0  0.0.0.0 20.1.1.1

 

 

ケース1: R2 でネクストホップアドレスに、隣接するルータ R1 のアドレスを指定してスタティックルートを設定します。上述のように、宛先アドレスにパケットを転送するため、 R2 はレイヤ2フレーム内で R1 の MACアドレスを使用します。

R2 から R1 と R3 ループバックアドレスへの接続を確認:

 

R2#ping 1.1.1.1 so 2.2.2.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 20/28/40 ms

R2#ping 3.3.3.3 so 2.2.2.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 16/35/60 ms

R2#sh ip arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  10.1.1.1                -   c000.3148.0000  ARPA   FastEthernet0/0

Internet  10.1.1.2                0   c001.3148.0000  ARPA   FastEthernet0/0

 

ケース2: R2 で出口インターフェースを指定してスタティックルートを設定します。上述のように、パケットを転送するため、R2 は宛先アドレスが直接接続されていると仮定して、指定されたインターフェースから宛先アドレスに ARP リクエストを送出して、レイヤ2 MAC アドレスを見つけようとします。

 

R2(config)#no ip route 0.0.0.0 0.0.0.0 10.1.1.2

R2(config)#ip route 0.0.0.0 0.0.0.0 fa0/0

 

R2 から R1 と R3 のループバックアドレスへの接続を確認します。また、パケットレベルの情報を得るために、 R2 の IP パケットのデバッグを有効にします。

 

R2#debug ip packet detail

IP packet debugging is on (detailed)

R2#ping 3.3.3.3 so 2.2.2.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

IP: tableid=0, s=2.2.2.2 (local), d=3.3.3.3 (FastEthernet0/0), routed via RIB

IP: s=2.2.2.2 (local), d=3.3.3.3 (FastEthernet0/0), len 100, sending

    ICMP type=8, code=0

IP: s=2.2.2.2 (local), d=3.3.3.3 (FastEthernet0/0), len 100, encapsulation failed

    ICMP type=8, code=0.

IP: tableid=0, s=2.2.2.2 (local), d=3.3.3.3 (FastEthernet0/0), routed via RIB

IP: s=2.2.2.2 (local), d=3.3.3.3 (FastEthernet0/0), len 100, sending

    ICMP type=8, code=0

IP: s=2.2.2.2 (local), d=3.3.3.3 (FastEthernet0/0), len 100, encapsulation failed

R2#sh ip arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet   1.1.1.1                 0  Incomplete          ARPA

Internet   3.3.3.3                 0  Incomplete          ARPA

Internet  10.1.1.1                -   c000.3148.0000  ARPA   FastEthernet0/0

Internet  10.1.1.2               16   c001.3148.0000  ARPA   FastEthernet0/0

Internet  10.1.1.5                -   c000.3148.0001  ARPA   FastEthernet0/1

 

IP アドレス 1.1.1.1 と 3.3.3.3 は fa0/0 に直接接続されていないので、R2 はそれらのレイヤ2 MAC アドレスを得られず、ARP テーブルのエントリーは incomplete となり、R2 ではレイヤ2のカプセル化が失敗して宛先へのパケットをドロップします。

 

上の問題を解決する2つの方法がありますが、ユーザへ勧められるような解決方法ではありません。

 

1) ネクストホップルータでプロキシー ARP を有効化する:

ルータでプロキシー ARP を有効化している場合、ルータはアドレス解決要求を受け取るたびにそのアドレスがルータのルーティングテーブルに存在する場合のみ、自分自身のインターフェースのアドレスから、アドレス解決を要求したルータにプロキシー ARP を送信します。

 

この例では、 R1 は両方のアドレスがルーティングテーブルに存在するため、レイヤ2 MAC アドレスが 10.1.1.2 であるプロキシー ARP をアドレス 3.3.3.3 と 2.2.2.2 のために R2 に送信します。デフォルトの設定ではほとんどのルータでプロキシー ARP は有効化されています。

 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#int fa0/0

R1(config-if)#ip proxy-arp

R1(config-if)#do sh ip int fa0/0 | in Proxy

             Proxy ARP is enabled

             Local Proxy ARP is enabled

Verifying connectivity from R2 to R1 and R3 loopback address:

R2#ping  1.1.1.1 so 2.2.2.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 20/28/40 ms

R2#ping 3.3.3.3 so 2.2.2.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

Packet sent with a source address of 2.2.2.2

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 16/35/60 ms

 

 

R2 の ARP テーブルを詳細に確認すると、アドレス解決テーブルにおいてアドレス 3.3.3.3 と 1.1.1.1 に対応する MAC アドレスが同一になっています。これは、 R1 が自分自身のインターフェースのアドレスからプロキシー ARP を送信したためです。

 

R2#sh ip arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet   1.1.1.1                 0   c001.3148.0000 ARPA FastEthernet0/0

Internet   3.3.3.3                 0   c001.3148.0000 ARPA FastEthernet0/0

Internet   10.1.1.1                -   c000.3148.0000  ARPA   FastEthernet0/0

Internet   10.1.1.2               40  c001.3148.0000 ARPA FastEthernet0/0

 

したがって、スタティックルートがインターネットへのデフォルトゲートウェイである場合などに、大量のブロードキャストトラフィックが発生してしまったり、 R2 において ARP キャッシュの数が大量になってしまう可能性があります。

 

2) ARP テーブルに手動で ARP エントリーを追加する:

 

以下のように、レイヤ2フレームを構築するために、宛先アドレスへの ARP エントリーを手動で追加することができます。

 

R2(config)#arp 1.1.1.1 c001.3148.0000 arpa

R2(config)#arp 3.3.3.3 c001.3148.0000 arpa

R2#sh ip arp

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet    1.1.1.1                 -   c001.3148.0000 ARPA

Internet    3.3.3.3                 -   c001.3148.0000 ARPA

Internet  10.1.1.1                -   c000.3148.0000  ARPA   FastEthernet0/0

Internet  10.1.1.2                4  c001.3148.0000 ARPA FastEthernet0/0

 

宛先アドレスごとにレイヤ2フレームを構築するため、アドレス解決テーブルに手動でエントリーを追加する必要があります。

 

結論:

 

-> ポイントツーポイント接続のインターフェースでは、インターフェースを指定したスタティックルート及びネクストホップアドレスを指定したスタティックルートを使用可能です。ネクストホップは1つだけ存在し、そのレイヤ2アドレスはレイヤ2フレームを構築するために使用されます。

-> マルチポイント/ブロードキャスト接続されたインターフェースでは、宛先アドレスごとにレイヤ2アドレスを解決する必要性をなくすため、ネクストホップアドレスを指定したスタティックルートを使用する方が適切です。上記で示したような、インターフェースを指定したスタティックルートを使用する方法もありますが、拡張性のある解決法ではありません。

 

英語版:https://supportforums.cisco.com/docs/DOC-27825

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします