投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2018年10月11日木曜日

【RTX1210 Rev.14.01.32】特定のドメイン名(FQDN)への通信のみ指定した経路を通るようにする手順とその仕組みについて

RTX1210配下の端末において指定したURLへの通信のみ、指定した経路(ppなど)を通るようにする。
それには、ドメイン名(FQDN)で指定するフィルタ型デフォルトルートを設定すればよい。
もし、その指定するpp経路が固定アドレスなら、固定アドレスで相手先と通信できることになる。


(手順)
デフォルトゲートウェイになっているルーター(RTX1210)で、フィルタ型ルートを作成する。
配下の端末で、名前解決用のDNSサーバーとしてこのルーターのアドレスを指定する。

(注意)
下記設定は、目的を達成するために基本的に必要な変更箇所のみを例示している。
下記コマンドが動作するために必要な設定はここでは扱っていない。
また、本変更には、ルーティング情報や名前解決用DNS指定の変更が伴うため、
不適切であれば通信ができなくなってしまうので注意する。


■RTX1210側の設定(デフォルトゲートウェイである。)

このルーターはデフォルトゲートウェイになっていて、
アドレスは、192.168.1.1 になっているとする。

○フィルタ型ルートを作成した。
(例)taruo.net宛の通信は「pp 8」経路を使用し、その他は「pp 7」を使用する。

# ip filter 101 pass * taruo.net
# ip route default gateway pp 8 filter 101 gateway pp 7


○リカーシブDNSモードに切り替えた。

# dns service recursive



■端末側の設定

Linuxマシンが端末の場合の設定例である。

# nmcli d
DEVICE  TYPE      STATE     CONNECTION
wlp4s0  wifi      接続済み  wlp4s0   
enp5s0  ethernet  利用不可  --       
lo      loopback  管理無し  --

○名前解決用のDNSサーバーの設定を行った。

リカーシブDNSサーバとして動作している上記ルーターのアドレスを指定した。

# nmcli con mod wlp4s0 ipv4.dns "192.168.1.1"
(自動取得に戻す場合 # nmcli con mod wlp4s0 connection.autoconnect yes)

# systemctl restart NetworkManager


○確認
$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
あるいは次のコマンドで確認する。
# nmcli con show wlp4s0



■動作テスト

上記端末のブラウザから、http://taruo.net を開いた。
アクセス元のアドレスが、pp 8のものになっていることを確認できた。
それ以外の宛先については、pp 7が利用されていることが確認できた。
(その他のIP表示サイトの利用を行った。)


■実験

当端末において、DNSサーバーとして当ルーターを指定しない場合、フィルタ型経路はうまく動作せず、pp 8を通過しなかった。

また同じ場合で、当ルーターにおいて予めpingコマンドを発行し、「taruo.net」の名前解決を行った直後に、
当端末のブラウザから当該アドレスへアクセスしても、pp 8を通過しなかった。



■一連のシナリオを勝手に考えてみた。

公式ドキュメントには、次のように書いてあった。
<†1> ip filterコマンドで、始点アドレスおよび、終点アドレスにFQDNを設定している場合、 指定したFQDNに一致する通信が発生したとき、タイマーが動作する。 time に指定した秒数の間、FQDN フィルターに一致する通信がない場合、FQDNとIPアドレスを対応づけるキャッシュを削除する。 
文中の「FQDNとIPアドレスを対応づけるキャッシュ」とは、名前解決畤に作成されるものだと思う。
また、「指定したFQDNに一致する通信」とは、素直に受け取ってみれば、
ルーターが受け取ったパケットの宛先IPv4アドレスがこのFQDNに一致する通信のことだろう。
一致するかどうかは「FQDNとIPアドレスを対応づけるキャッシュ」を利用する必要がある。

次のように一連の流れをイメージすることができると思う。

端末から要求を受けてFQDNから名前解決
    ↓
キャッシュ作成(IPv4-FQDN)
    ↓
端末からIPv4パケット受信
    ↓
ノーマルパス処理で、キャッシュ(IPv4-FQDN)によりパケットがFQDNに一致するか確認
    ↓
一致する場合はファストパスフローテーブルの作成

また、次のようにも書いてあった。
<†1> 指定したFQDNに一致する通信が発生した場合、設定したFQDNに該当するIPアドレスの情報が保持される。保持される期間は、ip filter fqdn timerコマンドで指定できる。
この「設定したFQDNに該当するIPアドレスの情報が保持」という文言は、ファストフローとは関係なさそうだ。
なぜなら、「保持される期間は、ip filter fqdn timerコマンドで指定」とあるからだ。
ファストパスフローテーブルは別のコマンドで有効時間を設定する。

「指定したFQDNに一致する通信が発生した場合」というのも、素直に考えてみると、
ルーターが受け取ったパケットの宛先IPv4アドレスがこのFQDNに一致する通信のことだと思う。
したがって、「設定したFQDNに該当するIPアドレスの情報が保持」とは、
さきほどと同じ「FQDNとIPアドレスを対応づけるキャッシュ」を言うのではないかと思う。


ところで、下記コマンドでは、キャッシュされる時間を設定できる。
ip filter fqdn timer time [auto=switch]
デフォルトでは、auto=onになっていて、
ファストパスのフローテーブルで使用されるタイマーのうち、
最大の値がキャッシュ時間として自動設定されるようになっている。
ノーマルパスにおいては、指定された時間(600秒)が設定される。

つまり、ファストパスのフローが流れている間は、「FQDNとIPアドレスを対応づけるキャッシュ」はそれに伴って延長され続けるということになるのではないか。

上記実験結果から、FQDNとIPアドレスの当ルーター内のキャッシュは、当端末のIPアドレスとも紐づけられていると仮定してみることができるだろう。
端末IP--(FQDN-IPアドレス)
即ち、この情報がファストパスが通っている間は存在し続けるということではないだろうか。


公式ドキュメントには、さらに次のように書いてあった。

ファストパスについて
<†2> フローの後続のパケットは、フローテーブルに記録されている情報を参照してファストパスで処理を行ないます。ノーマルパスで必要な、経路テーブルの参照、フィルタの適用、NAT/IPマスカレードテーブルの参照、L2ヘッダの構築などがフローテーブル一つですべて処理できるためにノーマルパスに比べて圧倒的に高速な処理が可能になっています。
FQDNフィルタ型ルーティング機能について
 <†1> 本機能に基づき決定されたルーティングは、ファストパスのフローテーブルに記録され、以降の同じ条件のパケットはファストパスで処理されます。DNSキャッシュのTTLが満了するなどしてDNS情報が書き換わった場合でもフローテーブルに記録された情報は置き換えられずに、ファストパスで従前の宛先にルーティングされ続けますフローテーブルの情報の寿命は ip flow timer コマンドで制御できます。

いったんパスができたら、フローがあるうちはそのパスが利用されつづけるそうだ。
その背後でDNS情報が書き替わっても、これはIPに対するフロー制御なので無関係である。



(1) ある端末がルーターにFQDNからIPアドレスを解決し、パケットを送出する。
(例)http://taruo.net
このとき、ルーターは端末IPと関連づけたキャッシュを次のように作成できる。
端末IP--(taruo.net-IPv4アドレスa.b.c.d)
これによって、1つのFQDNに対して複数のIPv4アドレスの対応を管理できる。
端末ごとに、FQDNから引いてきたIPv4アドレスが異なる場合がある。


(2) 当該端末がそのIPアドレスa.b.c.d宛のパケットをルーターに最初に送ったとき、
ルーターはパケットをノーマルパスで処理し、送信元アドレス(端末IP)をキーとして、
ip filterコマンドで指定されているFQDN「taruo.net」のIPアドレスを検索することで、
IPv4アドレスa.b.c.dを得てIPフィルタを利用可能な形に完成させるのだと思う。
ip filter 101 pass * taruo.net ⇒  pass * IPv4アドレスa.b.c.d
すると、送られてきたパケットの宛先IPアドレスはこのフィルタに一致する。パケットがFQDNに一致するか確認できたわけだ。
そしてこのフィルタは下記フィルタ型経路の指定で用いられている。
ip route default gateway pp 8 filter 101 gateway pp 7
したがって、今回の場合はフィルタ型経路が有効となる。

このときファストパスフローテーブルが作成される。
以後、ファストパスフローテーブルによって当該端末からのIPアドレスa.b.c.d宛の通信は指定された経路が適用となる



<参考>
1、FQDN フィルター機能
< http://www.rtpro.yamaha.co.jp/RT/docs/fqdn_filter/index.html > 2018年10月11日

2、ファストパス
< http://www.rtpro.yamaha.co.jp/RT/docs/fastpath/ > 2018年10月11日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad