インタフェースの固定

dtcpc, dtcpsおよびdtcpclientは、デフォルトでは、 トンネルに使用するインタフェースを動的に生成/削除します。 しかし、DTCPで接続しているトンネル・インタフェースの情報をMRTGで採取したい、 あるいは、 インターフェースに対してファイアウォールのフィルタを設定したいなどの理由で、 トンネルに使用するインタフェースを固定したい場合もあるでしょう。

これには、

  1. 使用するインタフェースを特定する
  2. インタフェースをあらかじめ用意しておき、削除しないようにする
という2つの要件があります。

□ インタフェースの特定

dtcpcでは-iオプションで指定したインタフェースが使われます。 dtcpclientでは、dtcpclient_script.confのtunifで指定します。

dtcpsの場合は、-iオプションで指定した範囲から動的に割り当てられますが、 routetableの第3フィールドにインタフェースを指定しておくと、 ユーザごとに使用するインタフェースを固定することができます。 第3フィールドが指定されてない場合は、 -iオプションで指定されたインタフェースが使われます。 例えば、

hoge		3ffe:505:9000::/48	gif10
と書いておくと、ユーザhogeが接続した場合には、 必ずgif10が使われるようになります。

ここで指定するインタフェースは重複してはいけません。 また、-iオプションで指定される範囲と被らないように注意してください。 例えば、-i gif20と指定している場合、gif20以降が使用されますから、 routetableに指定できるのは、gif0〜gif19となります。

□ インタフェース削除の禁止

インタフェースが削除されると、 インタフェースのインデックスが変化してしまい、 SNMPでうまく追従できなくなります。 MRTGはOIDではなくインタフェース名でもターゲットを指定できますが、 この場合でも、インタフェースが削除されると、追従できなくなるようです。

dtcpc, dtcpsは、 インタフェースを削除しないようにする-oオプションを持っています。 dtcpclientの場合はdtcpclient自身はトンネルの設定をおこないませんので、 そのようなオプションを持っていませんが、 dtcpclient_script.confにcloned_interface_keep="YES"と書いておくと、 インタフェースを削除しないようになります。

必要なインタフェースはdtcpc, dtcpsおよびdtcpclientが動的に生成しますが、 それではタイミング的に遅いかもしれません。 OS起動時にあらかじめ生成しておくと良いでしょう。 FreeBSDの場合、/etc/rc.confのcloned_interfacesで指定できます。 例えば、boot時にgif0, gif1, gif2を生成する場合、

cloned_interfaces="gif0 gif1 gif2"
となります。


All Rights Reserved, Copyright (C) 2004 Hajimu UMEMOTO
Last Modified Jun 15, 2004
ume@mahoroba.org