30 Minutes NetWorking
No.RT34

30Minutes NetWorking

BSCI

第34回再配布(5) ルートマップ

■ ポリシーベースルーティング

スーパーインター博士

ネット君。ポリシーベースルーティングという言葉を覚えているかね。

ハイパーネット助手

はて、聞き覚えがあるような、ないような。
え〜っと……。

スーパーインター博士

…。

ハイパーネット助手

う〜……。

スーパーインター博士

まぁ、思ったとおりの展開なわけだが。
BGPのところで説明したな。

ハイパーネット助手

あ〜あ〜。そうそう、そうですよ。
え〜っと、宛先ではなく、なんらかのポリシーによってルーティングするっていう方式でしたっけ。

スーパーインター博士

うむ。つまり通常のルーティングプロセス外での経路の決定の方式なわけだ。

ハイパーネット助手

通常のルーティングプロセス外?

スーパーインター博士

メトリックを基準としたルーティングテーブルによって導き出される経路だな。
BGPでは、パスアトリビュートを使うことによって、通常のAS_Pathアトリビュート以外のアトリビュートで経路を設定できた。

ハイパーネット助手

Weightとか、Local_Preferenceとかでしたっけ。

スーパーインター博士

うむ。BGPは多くのパスアトリビュートを持つことにより、ポリシーベースルーティングを実行できる。
では、パスアトリビュートのような柔軟な評価値を持たないIGPはどうするか。

ハイパーネット助手

なんでしたっけ。以前、それについて話していたような。
ルートなんたらとか…。

スーパーインター博士

そう、それが今回説明するルートマップだ。

ハイパーネット助手

るーとまっぷ…。ルート地図?

■ ポリシーベースルーティングの意義

スーパーインター博士

さて、ルートマップを説明する前に、ポリシーベースルーティングについてもう少し説明しよう。
Ciscoルータは、受信したパケットの以下の値を使用して、経路を選択することができる。

  1. ソースID(IPアドレス)
  2. アプリケーション(ポート番号)
  3. 使用プロトコル(IP・TCP/UDP・ICMPなど)
  4. パケットサイズ
ハイパーネット助手

送信元のIPアドレス、ポート番号、プロトコル、パケットサイズですか。

スーパーインター博士

そうだ。これらを使ってポリシーベースルーティングを行うわけだが、その意義は以下のようなものだ。

  1. マルチホーミング
  2. QoS
  3. コストの削減
  4. ロードシェアリング
ハイパーネット助手

1のマルチホーミングって、アレですか。複数のISPと接続するって奴ですよね。

スーパーインター博士

うむ。通過するプロバイダを選択できるっていうことだな。
BGPでもAS間のマルチホーミングというのをやっていたはずだ。

ハイパーネット助手

BSCI第22回ですね。

スーパーインター博士

2はQoS。つまりパケットの中身による優先度をつけることによって、優先的にもしくは優先度を低くして後回しにルーティングをする、という方式だ。

ハイパーネット助手

う? 優先度を見るんですか?

スーパーインター博士

違う。ポリシーによって優先度をつけるのだ。
このポリシーによってつけられた優先度にしたがい、先のルータではキューイングを行う。

ハイパーネット助手

ここでは優先度をつけるんですね。優先度によるルーティングを行うわけではなくて。

スーパーインター博士

そういうことだ。
3つ目は、WANリンクのコストの違いがあるが、それを使い分ける、という話だな。

ハイパーネット助手

ははぁ。例えば大きいサイズのものは高くてもいいから高速回線、小さなサイズのものは低速な低コスト回線とか?

スーパーインター博士

うむ、なかなかいい感じだ。
最後は、ルーティングプロトコルが持つ自動的なロードシェアリングではなく、ポリシーによってシェアリングする、ということだ。

ハイパーネット助手

OSPFやEIGRPは等コストロードバランシングができましたっけ。

スーパーインター博士

EIGRPは不等コストも可能だがな。
まぁ、ともかくだ。ポリシーベースの方法と意義はわかったかな?

ハイパーネット助手

はぁ、なんとなく。

■ ルートマップ

スーパーインター博士

さて、Ciscoでは先ほども言ったとおりルートマップというものを使ってポリシーベースルーティングを行う。
これがな、結構複雑なのだよ。

ハイパーネット助手

ほほぅ、複雑。IOSコマンドって全般的に複雑なような気がしますけど?

スーパーインター博士

そうか? …まぁ、そうかもしれん。ネット君ならなおさらだ
ルートマップのIOSコマンドを説明する前に、このマップがどのように構成されているかを説明しよう。こうだ。

行番号条件結果
10条件Aaを実行
20条件Bかつ条件Cbを実行
30条件Dまたは条件Edを実行

[TableRT34-01:ルートマップの構成]

ハイパーネット助手

行番号?

スーパーインター博士

うむ、ルートマップは複数の行で構成することも可能だ。
その場合、小さい行番号から確認され、一致した時点で実行される。

ハイパーネット助手

あ〜、なんかアクセスリストっぽいですね。書いた順番に判断されるって感じですか?

スーパーインター博士

まぁ、そうだが。あとでより前に設定も出来る点が違うな。
例えば、「行番号15」にあらたな行を作成することも可能だ。

ハイパーネット助手

なるほど。なんかBASICみたいですよね。

スーパーインター博士

そうだな。そう言われればそうかもしれん。
さて、その行にはMatchSetを使って条件とその結果を入力する。簡単に書くと、こうだ。

  • Router(config)#route-map test permit 10
  • Router(config-route-map)#match A
  • Router(config-route-map)#set a
  • Router(config-route-map)#exit
スーパーインター博士

コマンドは後で説明するとして、このような形で条件と結果を入力していくってことだな。
route-mapコマンドの最後の数字が行番号になる。

ハイパーネット助手

10行目、条件A、結果a、ですか。

スーパーインター博士

そういうことだ。
ややこしいのは、条件が複数あった場合だな。

  • Router(config)#route-map test permit 20
  • Router(config-route-map)#match B
  • Router(config-route-map)#match C
  • Router(config-route-map)#set b
  • Router(config-route-map)#exit
スーパーインター博士

このような場合は、AND条件

ハイパーネット助手

matchを続けて書いた場合ですね。BかつCって奴ですね。

  • Router(config)#route-map test permit 30
  • Router(config-route-map)#match D E
  • Router(config-route-map)#set d
  • Router(config-route-map)#exit
スーパーインター博士

こっちはOR条件

ハイパーネット助手

1つのmatchの中に並べて書いた場合ですか。DまたはEですね。

スーパーインター博士

そうだ。間違えやすいので気をつけるように。

ハイパーネット助手

了解です。

■ ルートマップコマンド

スーパーインター博士

さて、ではIOSコマンドを説明しよう。
まず、ルートマップは以下の手順で作成される。

  1. ルートマップコマンドで、ルートマップ設定モードへ
  2. MatchとSetで条件と結果を設定
  3. インタフェース設定モードで、受信インタフェースへ設定
スーパーインター博士

という順番だな。
まず、ルートマップコマンド。

  • Router(config)#route-map map-tag [permit | deny ] number
スーパーインター博士

map-tagはマップの名前。permitかdenyで実行される結果、numberは行番号だ。
さて、実行後ルートマップ設定モードに入るのだが、まず、Matchコマンドは2種類ある

ハイパーネット助手

2種類?
条件になるのは、さっきの話だと、送信元のIPアドレス、ポート番号、プロトコル、パケットサイズの4つじゃなかったでしたっけ?

スーパーインター博士

うむ。だが、送信元のIPアドレス、ポート番号、プロトコルの指定は、IOSコマンドでは便利なものがあるだろう? ほら。

ハイパーネット助手

便利なもの?

スーパーインター博士

ヒントをやろう。標準は送信元IPアドレス、拡張は、IPアドレス、ポート、プロトコル…。

ハイパーネット助手

標準と拡張…。
アクセスリスト!!

スーパーインター博士

そうだ。送信元のIPアドレス、ポート番号、プロトコルを条件にするMatchコマンドはこちら。

  • Router(config-route-map)#match ip address [accesslist-number]
スーパーインター博士

アクセスリスト番号は複数並べてもよい。
もう一方、サイズを使ったMatchコマンドはこっち。

  • Router(config-route-map)#match length min max
ハイパーネット助手

minとmaxってパケットの最小サイズと最大サイズですか?

スーパーインター博士

そうだ。その範囲のサイズのパケットが当てはまることになる。

ハイパーネット助手

match ip addressか、match lengthですね。

スーパーインター博士

うむ。一方、setコマンドは6種類ある。

ハイパーネット助手

6種類も!!
どう使い分けるんですか?

スーパーインター博士

うむ、一覧表を作成してみよう。

コマンド意味条件
set ip next-hopパケットを指定したルータへ転送するすべてのパケット
set interfaceパケットが通過してよいインタフェースを指定ルーティングテーブルに宛先ルートがある
set ip default next-hopデフォルトの次ルータを指定ルーティングテーブルに宛先ルートがない
set default interfaceデフォルトのインタフェースを指定ルーティングテーブルに宛先ルートがない
set ip tosTOSフィールド内のCoSを設定する---
set ip precedenceTOSフィールド内のQoSを設定する---

[TableRT34-02:setコマンド]

ハイパーネット助手

うぅぅ? next-hopとdefault next-hop? interfaceとdefault interface?
宛先ルートがあるとない?

スーパーインター博士

うむ、宛先不明やデフォルトルートを使用する場合、それは「宛先ルートがルーティングテーブルにない(明示されていない)」わけだ。その場合は、defaultのついたsetコマンドが有効になる。

ハイパーネット助手

うぅ〜ん。

スーパーインター博士

つまりだ、通常はデフォルトルートを使用するような場合に、この2つのsetコマンドを使えばインタフェースやネクストホップを変更できる、というわけだ。適切な例かどうかわからんが、こういうのはどうだ。

ip default next-hop

[FigureRT34-01:ip default next-hop]

スーパーインター博士

もしルータに10.0.0.0へのルートがなければ、デフォルトルートを使う。
この場合、set ip default next-hopが指定されているので、192.168.0.1からのパケットは172.16.1.1を経由する。

ハイパーネット助手

もし10.0.0.0へのルートがあれば?

スーパーインター博士

ルートがあった場合、defaultつきのコマンドは無視される

ハイパーネット助手

う〜ん。なんとなくわかったような。
そういえば、setコマンドの下の2つ、TOSフィールドを変えるのはなんですか?

スーパーインター博士

CoSを変える、つまりサービスクラス(信頼性・スループット・遅延など)を変えるものと。
ip precedenceを変える、キューイングを変えるものと2種類の設定が出来る。

ハイパーネット助手

簡単に言うと、パケットの優先値の変更って奴ですよね。

スーパーインター博士

まぁ、確かにそうなんだが。そうあっさり言われるとなんかな。
さて、作成したルートマップはインタフェースに設定される。

  • Router(config-if)#ip policy route-map map-tag
スーパーインター博士

ポイントは設定したインタフェースで受信したパケットに対し有効になるというところだな。

ハイパーネット助手

そのルータが受け取ったパケット、ではないんですね。

スーパーインター博士

そういうことだ。

ハイパーネット助手

なるほど。

スーパーインター博士

さて、今回はこれでお終いにしよう。
次回は…。

ハイパーネット助手

次回は?

スーパーインター博士

まだ決めてない。

ハイパーネット助手

なんですか、それは。

スーパーインター博士

まぁ、そういうこともある、ということだ。
あまり深く考えるな。得意だろ?

ハイパーネット助手

うぅん。胸を張って否定できない。

スーパーインター博士

というわけでまた次回。

ハイパーネット助手

了解です。
30分間ネットワーキングでした〜♪

QoS
[Quarity of Service]
サービス品質。
キューイング
[Queuing]
優先度により、ルータ内の処理の順番が変更される。
詳しくはBCRANで。
BASIC
[Beginner's All-purpose Symbolic Instruction Code]
初心者向けのプログラム言語。教育用によく使われる。
インタプリタ言語の代表格。
COS
[Class of Service]
IPヘッダのTOSフィールド先頭5ビットの値のこと。
使用する信頼性・スループット・遅延・コストなどを設定できる。
IP Precedence
IPヘッダのTOSフィールド後ろ3ビットの値のこと。
キューイングで使用する。
ハイパーネット助手ハイパーネット君の今日のポイント
  • 宛先ベースとポリシーベースのルーティングがある。
  • ポリシーベースルーティングにはルートマップを使う。
  • 送信元IPアドレス、プロトコル、ポート番号、パケットサイズを基準としてルーティングする。
  • ルートマップコマンドは、条件の設定のmatch、結果の設定のsetを組み合わせて使う。
  • ルートマッは、インタフェースに設定する。

30 Minutes NetWorking No.RT34

管理人:aji-ssz(at)selene.is.dream.jp