IP : IP ルーティング

ポリシー ルーティングについて

2008 年 1 月 28 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2011 年 11 月 18 日) | 英語版 (2005 年 8 月 10 日) | フィードバック

目次

概要
はじめに
     表記法
     前提条件
     使用するコンポーネント
設定例
     ネットワーク ダイアグラム
     ファイアウォールの設定
Cisco サポート コミュニティ - 特集対話
関連情報

概要

ポリシーベース ルーティングでは、ネットワーク管理者によって定義されたポリシーに基づいてデータ パケットの転送とルーティングを行うためのツールが提供されます。 事実上、この方法によって、ポリシーはルーティング プロトコルによる決定を無効にすることができます。 ポリシーベースのルーティングには、アクセス リスト、パケット サイズ、あるいは他の基準に基づいたポリシーを選択的に適用するメカニズムが含まれます。 実行できる処置には、ユーザが定義したルート上でのパケットのルーティング、優先順位やタイプ オブ サービス ビットの設定などがあります。

この文書では、ファイアウォールを使用して、10.0.0.0/8 のプライベート アドレスをインターネットにルーティング可能なアドレス(サブネット 172.16.255.0/24 に属するアドレス)に変換しています。 次のダイアグラムを参照してください。

詳細は、「ポリシーベース ルーティング」を参照してください。

はじめに

表記法

文書の表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。

前提条件

この文書に関する特別な前提条件はありません。

使用するコンポーネント

この文書は特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

この文書で紹介する情報は、次のバージョンのソフトウェアとハードウェアに基づいて作成されました。

  • Cisco IOS(R) Software リリース 12.3(3)

  • Cisco 2500 シリーズ ルータ

この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。 この文書内で使用されているデバイスはすべて、クリアな状態(デフォルト)から設定作業を始めています。 コマンドを実行する前に、実稼動中のネットワークに与える影響について理解しておいてください。

設定例

この例では、通常のルーティングが使用され、10.0.0.0/8 ネットワークからインターネットに送信されるすべてのパケットは、(172.16.187.0/24 サブネットを介して)Cisco WAN ルータのインターフェイス ethernet 0/0 を経由するルートを通ります。このルートが最小メトリックの最善パスだからです。 ポリシーベースのルーティングでは、対象パケットをファイアウォールを経由するパスを通してインターネットに送信することが望ましいため、ポリシー ルーティングを設定することにより、通常のルーティング動作を無効にしなければなりません。 ファイアウォールによって、10.0.0.0/8 ネットワークからインターネットへ送信されるすべてのパケットが変換されますが、ポリシールーティングを使用する場合、この処理は不要です。

ネットワーク ダイアグラム

36.gif

ファイアウォールの設定

次に示すファイアウォールの設定は、全体像を提示する目的で記載されています。 ただし、この設定は、この文書で説明するポリシー ルーティングの問題とは関係ありません。 この例のファイアウォールは、PIX またはその他のファイアウォール デバイスと容易に置き換えることができます。

!
  ip nat pool net-10 172.16.255.1 172.16.255.254 prefix-length 24
  ip nat inside source list 1 pool net-10
  !
  interface Ethernet0
   ip address 172.16.20.2 255.255.255.0
   ip nat outside
  !
  interface Ethernet1
   ip address 172.16.39.2 255.255.255.0
   ip nat inside
  !
  router eigrp 1
   redistribute static
   network 172.16.0.0
   default-metric 10000 100 255 1 1500
  !
  ip route 172.16.255.0 255.255.255.0 Null0
  access-list 1 permit 10.0.0.0 0.255.255.255
  !
  end

ip nat 関連コマンドの詳細は、「IP アドレッシングとサービス コマンド」を参照してください。

この例では、10.0.0.0/8 ネットワークから発信された IP パケットが必ずファイアウォール経由で送信されるようにするため、Cisco WAN ルータでポリシー ルーティングを実行しています。 次の設定では、10.0.0.0/8 ネットワークから発信されたパケットをファイアウォールに送信するアクセス リストが設定されています。

Cisco_WAN_Router の設定

!
  interface Ethernet0/0
   ip address 172.16.187.3 255.255.255.0
   no ip directed-broadcast
  !
  interface Ethernet0/1
   ip address 172.16.39.3 255.255.255.0
   no ip directed-broadcast
  !
  interface Ethernet3/0
   ip address 172.16.79.3 255.255.255.0
   no ip directed-broadcast
   ip policy route-map net-10
  !
  router eigrp 1
   network 172.16.0.0
  !
  access-list 111 permit ip 10.0.0.0 0.255.255.255 any
  !
  route-map net-10 permit 10
   match ip address 111
   set interface Ethernet0/1
  !
  route-map net-10 permit 20
  !
  end

route-map 関連コマンドの詳細は、「route-map コマンド」文書を参照してください。

Cisco-1 Router の設定

!
  version 12.3
  !
  interface Ethernet0
  
  !-- 10.0.0.0 ネットワークに接続されているインターフェイス
  
  ip address 10.1.1.1 255.0.0.0
  !
  interface Ethernet1
  
  !-- Cisco_Wan_Router に接続されているインターフェイス
  
  ip address 172.16.79.4 255.255.255.0
  !
  router eigrp 1
  network 10.0.0.0
  network 172.16.0.0
  no auto-summary
  !
  
  !--- 出力削除
  
  

インターネット ルータの設定

!
  version 12.3
  !
  interface Ethernet1
  
  !-- ファイアウォールに接続されているインターフェイス
  
  ip address 172.16.20.1 255.255.255.0
  interface Serial0
  
  !-- インターネットに接続されているインターフェイス
  
  ip address 192.1.1.2 255.255.255.0
  clockrate 64000
  no fair-queue
  !
  interface Ethernet0
  
  !-- Cisco_Wan_Router に接続されているインターフェイス
  
  ip address 172.16.187.1 255.255.255.0
  !
  !
  router eigrp 1
  redistribute static
  
  !--- インターネットにアクセスするため、ほかのルータへのスタティック デフォルト ルートの再分配
  
  network 172.16.0.0
  no auto-summary
  !
  ip classless
  ip route 0.0.0.0 0.0.0.0 192.1.1.1
  
  !-- インターネットに接続されているルータをポイントしているスタティック デフォルト ルート
  
  
  !--- 出力削除
  
  

この例のテストでは、extended ping コマンドを使って、Cisco-1 Router の 10.1.1.1 から出力される ping は、インターネット上のホストに送信されます。 この例では、192.1.1.1 は宛先アドレスとして使われます。 インターネット ルータの動作を確認するため、ファースト スイッチングをすべてオフにして、debug ip packet 101 detail コマンドを使用しています。

warning 警告: 実稼働中のルータ上で debug ip packet detail コマンドを使用すると、CPU の使用率が高くなり、パフォーマンスが大幅に低下したり、ネットワーク停止を引き起こすことがあります。 debug コマンドを実行する前に、『Ping と Traceroute コマンドについて』の「Debug コマンドの使用」に目を通し、十分に理解してください。

注: access-list 101 permit icmp any any 文は、debug ip packet の出力をフィルタリングするために使用します。 このアクセス リストを設定しなければ、debug ip packet コマンドによってコンソールに大量の出力が生成され、ルータが停止するおそれがあります。

Results of ping from Cisco_1 to 192.1.1.1/internet taken from Internet_Router:
  Packet never makes it to Internet_Router
  Cisco_1# ping
  Protocol [ip]:
  Target IP address: 192.1.1.1
  Repeat count [5]:
  Datagram size [100]:
  Timeout in seconds [2]:
  Extended commands [n]: y
  Source address or interface: 10.1.1.1
  Type of service [0]:
  Set DF bit in IP header? [no]:
  Validate reply data? [no]:
  Data pattern [0xABCD]:
  Loose, Strict, Record, Timestamp, Verbose[none]:
  Sweep range of sizes [n]:
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 192.1.1.1, timeout is 2 seconds:
  Packet sent with a source address of 10.1.1.1
  .....
  Success rate is 0 percent (0/5)

上記の出力からわかるように、パケットはインターネット ルータに到達していません。 次に示す、Cisco WAN ルータから取得した debug コマンドの出力を見れば、その理由がわかります。

Debug commands run from Cisco_WAN_Router:
  "debug ip policy"
  *Mar  1 00:43:08.367: IP: s=10.1.1.1 (Ethernet3/0), d=192.1.1.1, len 100, policy match
  *Mar  1 00:43:08.367: IP: route map net-10, item 10, permit
  
  !--- 10.0.0.0/8 ネットワークに属している送信元アドレスが付加されたパケットは、
  !--- ルート マップ "net-10" ステートメント 10 に一致します。
  
  *Mar  1 00:43:08.367: IP: s=10.1.1.1 (Ethernet3/0), d=192.1.1.1 (Ethernet0/1), len 100, policy routed
  *Mar  1 00:43:08.367: Ethernet3/0 to Ethernet0/1 192.1.1.1
  
  !---  以前一致したパケットは、set コマンドによって、インターフェイス
  !--- ethernet 0/1 から転送されます。
  
  

パケットは意図したとおりに、net-10 ポリシー マップのポリシー エントリ 10 に一致しています。 それではなぜパケットはインターネット ルータに到達しなかったのでしょうか。

"debug arp"
  *Mar  1 00:06:09.619: IP ARP: creating incomplete entry for IP address: 192.1.1.1 interface Ethernet0/1
  *Mar  1 00:06:09.619: IP ARP: sent req src 172.16.39.3 00b0.64cb.eab1,
                   dst 192.1.1.1 0000.0000.0000 Ethernet0/1
  *Mar  1 00:06:09.635: IP ARP rep filtered src 192.1.1.1 0010.7b81.0b19, dst 172.16.39.3
                   00b0.64cb.eab1 wrong cable, interface Ethernet0/1
  Cisco_Wan_Router# show arp
  Protocol  Address          Age (min)  Hardware Addr   Type   Interface
  Internet  172.16.39.3             -   00b0.64cb.eab1  ARPA   Ethernet0/1
  Internet  172.16.39.2             3   0010.7b81.0b19  ARPA   Ethernet0/1
  Internet  192.1.1.1               0   Incomplete      ARPA

debug arp の出力がこれを示しています。 Cisco WAN ルータは、設定に従って、パケットをルータの ethernet 0/1 インターフェイスに直接転送しようとします。 そのためには、ルータから宛先アドレス 192.1.1.1 に Address Resolution Protocol(ARP)要求を送信する必要があります。ところがこのアドレスは、ルータの認識では、このインタフェース上に存在しないため、show arp コマンドの実行結果からわかるように、このアドレスに対する ARP エントリは「完全ではありません」。 ARP エントリのないパケットをネットワーク上に送出することはできないため、ここでカプセル化エラーが発生します。

ファイアウォールを next-hop として指定すれば、この問題は発生せず、route-map は意図したとおりに機能します。

Config changed on Cisco_WAN_Router:
  !
  route-map net-10 permit 10
   match ip address 111
   set ip next-hop 172.16.39.2
  !

前回と同じくインターネット ルータで debug ip packet 101 detail コマンドを使用すると、今度はパケットが正しいパスをたどっていることがわかります。 また、パケットはファイアウォールで 172.16.255.1 に変換され、ping 先のマシン(192.1.1.1)が応答を返しています。

Cisco_1# ping
  Protocol [ip]:
  Target IP address: 192.1.1.1
  Repeat count [5]:
  Datagram size [100]:
  Timeout in seconds [2]:
  Extended commands [n]: y
  Source address or interface: 10.1.1.1
  Type of service [0]:
  Set DF bit in IP header? [no]:
  Validate reply data? [no]:
  Data pattern [0xABCD]:
  Loose, Strict, Record, Timestamp, Verbose[none]:
  Sweep range of sizes [n]:
  Type escape sequence to abort.
  Sending 5, 100-byte ICMP Echos to 192.1.1.1, timeout is 2 seconds:
  Packet sent with a source address of 10.1.1.1
  !!!!!
  Success rate is 100 percent (5/5), round-trip min/avg/max = 68/70/76 ms
  Results of ping from Cisco_1 to 192.1.1.1/internet taken from Internet_Router:
  Internet_Router#
  *Mar  1 00:06:11.619: IP: s=172.16.255.1 (Ethernet1), d=192.1.1.1 (Serial0), g=192.1.1.1, len 100, forward
  *Mar  1 00:06:11.619:     ICMP type=8, code=0
  
  !--- 10.1.1.1 から送出されたパケットは、Internet_Router に到達する前に、
  !--- ファイアウォールによって、172.16.255.1 に変換されます。
  
  *Mar  1 00:06:11.619:
  *Mar  1 00:06:11.619: IP: s=192.1.1.1 (Serial0), d=172.16.255.1 (Ethernet1), g=172.16.20.2, len 100, forward
  *Mar  1 00:06:11.619:     ICMP type=0, code=0
  
  !--- インターネットから返されるパケットは、ファイアウォールに到達する前に
  !--- 宛先アドレス 172.16.255.1 に到達します。
  
  *Mar  1 00:06:11.619:

Cisco WAN ルータで debug ip policy コマンドを実行すると、パケットがファイアウォール(172.16.39.2)に転送されたことがわかります。

Cisco_WAN_Router からの debug コマンド の出力

"debug ip policy"
  *Mar  1 00:06:11.619: s=10.1.1.1 (Ethernet3/0), d=192.1.1.1, len 100, policy match
  *Mar  1 00:06:11.619: IP: route map net-10, item 20, permit
  *Mar  1 00:06:11.619: s=10.1.1.1 (Ethernet3/0), d=192.1.1.1 (Ethernet0/1), len 100, policy routed
  *Mar  1 00:06:11.619: Ethernet3/0 to Ethernet0/1 172.16.39.2

Cisco サポート コミュニティ - 特集対話

Cisco サポート コミュニティでは、フォーラムに参加して情報交換することができます。現在、このドキュメントに関連するトピックについて次のような対話が行われています。


関連情報