フィルタ型ルーティング
$Date: 2023/09/01 16:40:06 $
フィルタ型ルーティングは、IPアドレス・プロトコル・ポート番号によって同一経路を複数のゲートウェイへ振り分けることができる機能です。これにより、IPv4では複数プロバイダの同時接続などが可能となります。
IPv6では複数プロバイダの同時接続などには対応していません。
ヤマハRTシリーズでは、以下の機種およびファームウェアで、フィルタ型ルーティングが動作可能です。
機種
ファームウェア
IPv4
IPv6
RTX1300
すべてのリビジョン
-
RTX1220
vRX VMware ESXi版
vRX Amazon EC2版
RTX830
Rev.15.02.30 以降
NVR510
Rev.15.01.25 以降
NVR700W
-
RTX1210
RTX5000
RTX3500
FWX120
RTX810
NVR500
例1.ホストによって接続先を変える場合(IPv4)
ip lan1 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.プロトコルによって接続先を変える場合(IPv4)
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接続しているセンター経由でインターネット接続を行う場合(IPv4)
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.プロトコルによって接続先を変えるが、現在接続中であればそれを優先する場合(IPv4)
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.手動発呼で相手先を選択する場合(IPv4)
ip route default gateway pp 1 hide gateway pp 2 hide
[注意事項]
手動発呼した相手先にdefaultが向く。
自動発呼はできない。
例6.ホストによって IPsec 接続先を変える場合(IPv6)
ipv6 route default gateway tunnel 1 filter 1 gateway tunnel 2 filter 2
ipv6 lan1 address 2001:1::1/64
ipv6 filter 1 pass 2001:1::2 * * * *
ipv6 filter 2 pass 2001:1::3 * * * *
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が指定されているゲートウェイは回線がつながっている時だけ有効で、
回線がつながっていない時には評価されない。
ipv6 routeコマンド
[コマンド形式]
ipv6 route IPV6ADDRESS/PREFIXLEN GATEWAY-LIST
no ipv6 route IPV6ADDRESS/PREFIXLEN
[パラメータ]
IPV6ADDRESS/PREFIXLEN ... 宛先ネットワークアドレス
GATEWAY-LIST ... ゲートウェイリスト、以下のような記述に従う
GATEWAY-LIST
::=
GATEWAY-DESCRIPTOR | GATEWAY-DESCRIPTOR GATEWAY-LIST
GATEWAY-DESCRIPTOR
::=
gateway GATEWAY [filter FNUM] [metric METRIC] [hide]
GATEWAY
::=
IPV6ADDESS % SCOPE_ID
| pp PP_NUM [dlci=DLCI_NUM]
| pp anonymous name=NAME
| ra INTERFACE
| dhcp INTERFACE
| tunnel TUNNEL_NUM
IPV6ADDESS % SCOPE_ID ... IPv6アドレス % スコープ識別子
pp PP_NUM [dlci=DLCI_NUM] ... PPインタフェース直接
PP_NUM ... PP番号、1〜30/100, 'leased', 'anonymous'
DLCI_NUM ... DLCI番号、PPインタフェースがFRの場合
pp anonymous name=NAME ... 名前によるルーティング
ra INTERFACE ... RA にて決定されるデフォルトゲートウェイによるルーティング
INTERFACE ... RA クライアントとして動作するインタフェース名
dhcp INTERFACE ... DHCP にて与えられるデフォルトゲートウェイによるルーティング
INTERFACE ... DHCP クライアントとして動作するインタフェース名
tunnel TUNNEL_NUM ... トンネルインタフェース直接
TUNNEL_NUM ... トンネル番号、機種毎の設定可能なトンネル数はここ を参照
metric METRIC ... メトリックの指定
METRIC ... メトリック値、1〜15、省略時は1
hide ...
出力インタフェースが LAN インタフェース、または PP インタフェース、TUNNEL インタフェースの場合のみ有効なオプションで、回線が接続されている場合だけ経路が有効になることを意味する
filter FNUM ... フィルタ型経路の指定、
FNUMはフィルタ番号で空白で区切って複数指定できる
[説明]
IPv6の静的経路を設定する。
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レコードを表示する。