フィルタ型ルーティング
フィルタ型ルーティングは、IPアドレス・プロトコル・ポート番号によって同一経路を複数のゲートウェイへ振り分けることができる機能です。これにより、複数プロバイダの同時接続などが可能となります。
例1.ホストによって接続先を変える場合
ip lan address 192.168.0.254/24
ip filter 1 pass 192.168.0.1 * * * *
ip filter 2 pass 192.168.0.2 * * * *
ip route default gateway pp 1 filter 1 gateway pp 2 filter 2
[解説]
送信元が192.168.0.1のパケットはPP1へ、192.168.0.2のパケットはPP2へ送信する。
[注意事項]
IPアドレスを固定するためにDHCPは使えない。
RTの持つDNSリカーシブサーバ機能は使えない。
例2.プロトコルによって接続先を変える場合
ip filter 1 pass * * tcp * smtp,pop3
ip filter 2 pass * * tcp * www
ip route default gateway pp 1 filter 1 gateway pp 2 filter 2 gateway pp 3
dns server select 1 pp 1 mx .
dns server select 2 pp 1 a mail-server.
dns server select 3 pp 1 a pop-server.
dns server select 4 pp 2 a www.server
dns server pp 3
[解説]
TCPのSMTPとPOP3宛のパケットはPP1へ、TCPのWWW宛のパケットはPP2へ、それ以外のパケットはPP3へ送信する。
[注意事項]
発呼の原因になるパケットはDNS問い合わせであると予想できるので、DNS問い合わせを適切な相手先に振る必要がある。
例3.拠点からVPN接続しているセンター経由でインターネット接続を行う場合
ip filter 1 pass * * udp * 500
ip filter 2 pass * * esp * *
ip route default gateway pp 1 filter 1 2 gateway tunnel 1
PP1:インターネット接続用
TUNNEL1:センターとのVPN接続用
[解説]
IPsecに必要なUDPポート500番とESPはインターネット経由で通信を行い、
その他の通信はVPN接続したセンター経由で行う。
例4.プロトコルによって接続先を変えるが、現在接続中であればそれを優先する場合
ip route default gateway pp 1 hide gateway pp 2 hide gateway pp 3 hide
dns server select 1 pp 1 mx .
dns server select 2 pp 1 a mail-server.
dns server select 3 pp 1 a pop-server.
dns server select 4 pp 2 a www.server
dns server pp 3
[注意事項]
DNS問い合わせでないと発呼できないため、自動切断は行なわない方が無難。
DNS問い合わせを適切な相手先に振る必要がある。
例5.手動発呼で相手先を選択する場合
ip route default gateway pp 1 hide gateway pp 2 hide
[注意事項]
手動発呼した相手先にdefaultが向く。
自動発呼はできない。
ip routeコマンド
- [コマンド形式]
- ip route IPADDRESS[/MASKLEN] GATEWAY-LIST
ip route delete IPADDRESS[/MASKLEN]
- [パラメータ]
-
- IPADDRESS[/MASKLEN] ... 宛先ネットワークアドレス
MASKLENが省略された場合にはホスト経路(MASKLEN = 32)として扱う
- GATEWAY-LIST ... ゲートウェイリスト、以下のような記述に従う
| GATEWAY-LIST |
::= |
GATEWAY-DESCRIPTOR | GATEWAY-DESCRIPTOR GATEWAY-LIST |
| GATEWAY-DESCRIPTOR |
::= |
gateway GATEWAY [filter FNUM] [metric METRIC] [hide] |
| GATEWAY |
::= |
IPADDESS
| pp PP_NUM [dlci=DLCI_NUM]
| pp anonymous name=NAME
| tunnel TUNNEL_NUM |
- IPADDRESS ... IPアドレス
出力インタフェースは、
各インタフェースの自己IPアドレスとネットマスクやInARPの情報などから推測する
- pp PP_NUM [dlci=DLCI_NUM] ... PPインタフェース直接
- PP_NUM ... PP番号、1〜30/100, 'leased', 'anonymous'
- DLCI_NUM ... DLCI番号、PPインタフェースがFRの場合
- pp anonymous name=NAME ... 名前によるルーティング
- tunnel TUNNEL_NUM ... トンネルインタフェース直接
- TUNNEL_NUM ... トンネル番号、機種毎の設定可能なトンネル数はここを参照
- metric METRIC ... メトリックの指定
- METRIC ... メトリック値、1〜15、省略時は1
- hide ...
出力インタフェースがPPインタフェースの場合にのみ有効なオプションで、
回線がつながっている時だけ経路が有効となることを意味する
- filter FNUM ... フィルタ型経路の指定、
FNUMはフィルタ番号で空白で区切って複数指定できる
- [説明]
- IPの静的経路を設定する。
- filterが指定されているGATEWAYが記述されている場合には、
記述されている順にフィルタを適用していき、
マッチしたゲートウェイが選択される。
- マッチするゲートウェイが存在しない場合や、
filterが指定されているゲートウェイが一つも記述されていない場合には、
filterが指定されていないゲートウェイが選択される。
- filterが指定されていないゲートウェイも存在しない場合には、
その経路は存在しないものとして処理が継続される。
- filterが指定されていないゲートウェイが複数記述された場合で、
それらの経路を使うべき時にどちらを使うかは、
ラウンドロビンにより決定される。
- いずれの場合でも、
hideが指定されているゲートウェイは回線がつながっている時だけ有効で、
回線がつながっていない時には評価されない。
DNS問い合わせに応じたDNSサーバの選択
- [コマンド形式]
- dns server select ID SERVER [TYPE] QUERY [ORIGINAL-QUERIER]
dns server select ID pp PP_NUM [TYPE] QUERY [ORIGINAL-QUERIER]
dns server select delete ID
- [パラメータ]
-
- ID ... DNSサーバ選択テーブルの番号
- SERVER ... DNSサーバのIPアドレス
- PP_NUM ...
IPCPにより接続相手から通知されるDNSサーバを使う場合の接続相手先番号
- TYPE ... DNSレコードタイプ
TYPEはa, ptr, mx, ns, cnameのいずれか。省略した場合には'a'として扱う
- QUERY ... DNS問い合わせの内容で以下のいずれかとなる。
- TYPEがa,mx,ns,cnameのいずれかの場合 ... QUERYはドメイン名を表す文字列
ドメイン名は後方一致とする。
例えば、"yamaha.co.jp"であれば、comm.yamaha.co.jp、
rtpro.yamaha.co.jpなどにマッチする。
- TYPEがptrの場合 ... QUERYはIPアドレス ( IP_ADDRESS[/MASKLEN] )
MASKLENを省略すると指定したIPアドレスにだけマッチし、
MASKLENが指定されている場合にはそのネットワークアドレスに含まれるすべてのIPアドレスにマッチする。
DNS問い合わせに含まれる.in-addr.arpaドメインで記述されたFQDNをIPアドレスに変換してから比較される。
- ORIGINAL-QUERIER ... DNS問い合わせ元のIPアドレスの範囲
DNS問い合わせ元が指定したIPアドレスの範囲に含まれる場合のみ、
DNSサーバが選択される。
省略した場合はDNS問い合わせ元の制限は行なわれない
- [説明]
- DNSの問い合わせを行なうDNSサーバとして、
DNS問い合わせの内容とDNSサーバとの組合せを複数登録しておき、
実際のDNS問い合わせの内容に応じてその組合せから適切なDNSサーバを選択できるようにする。
テーブルは若番順に検索され、
DNS問い合わせの内容にQUERYがマッチしたらそのDNSサーバを用いてDNS問い合わせを解決しようとする。
テーブルのそれ以降の検索は行われない。
すべてのテーブルを検索してマッチするものがなかったら、
dns serverコマンドで指定されたDNSサーバが用いられる。
静的DNSレコード
- [コマンド形式]
- ip host FQDN VALUE
ip host delete FQDN
dns static TYPE NAME VALUE
dns static delete TYPE NAME
- [パラメータ]
-
- TYPE ... 名前のタイプ、a, ptr, mx, ns, cname
- NAME, VALUE ... DNSテーブルの中身、タイプによって意味は変る
- a: NAMEはFQDN、VALUEはIPアドレス
- ptr: NAMEはIPアドレスもしくは.in-addr.arpa型のFQDN、VALUEはFQDN
- mx,ns,cname: NAME、VALUEともにFQDN
- [説明]
- 静的なDNSレコードを定義する。
ip host コマンドは、dns staticコマンドでaとptrを両方設定することの簡略型である。
- [ノート]
- 問い合わせに対して返されるDNSレコードは以下のような特徴を持つ。
- TTLフィールドには1がセットされる
- Answerセクションに回答となるDNSレコードが1つセットされるだけで、
Authority/AdditionalセクションにDNSレコードはセットされない
- MXレコードのpreferrenceフィールドは0にセットされる
表示コマンド
- [コマンド形式]
- show ip host
show dns static
- [パラメータ]
- なし
- [説明]
- 静的なDNSレコードを表示する。