以前気にとめていた
natcracker
を利用しようと思うのですが、
これを利用するためには default gw を NatCracker 側に変更する必要があります。
しかし、NatCracker は通信速度の保証もありませんし、
比較的速度の速い iij を利用しているのですから、
default gateway は変更したくありません。
しかし、default gateway を変更しないと、server を設置した場合に、
packet の source address の食い違いが起きて正しく通信できなくなります
*1
。
そこで、linux kernel の持つ advanced router の機能を利用することにしました。
(参考情報:
[linux-users:
86737
],
iproute2+tcを使って1台で複数インターネット接続
,
フレッツADSL→Yahoo! BB→Bフレッツ導入経過メモ
(2001-06-04 付近)
)
@
compile kernel:
advanced router の機能を利用するには kernel の設定で、
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
あたりの設定が y になっている必要があるようです。
手元では、ついでに 2.2 -> 2.4 の upgrade をしてしまったので、
詳しい option はいまいちわかっていません(^^;
@
iproute2:
また、advanced router の機能を利用するには、iproute2 が必要になります。
これは、debian では iproute package に入っています。
% apt-get install iproute
利用する際には ip コマンドを使います。
いくつかのサイトでは、interface の登録から routing の登録まで、
すべて ip コマンドを使って行っているようですが、
ipconfig や route での設定も advanced routing table に反映されているので、
おそらく必要な部分だけ、ip コマンドで設定すればよいのだと思います。
必要であろう ip コマンドの用法は
の二つです。それぞれ、
% ip route add 0/0 dev vtun0 table 1
% ip rule add from dev vtun0 table 1
のようにして使うようです。
意味は、vtun0 から入ってきたパケットは、vtun0 から返すというものです
*2
。
@
join natcracker:
手元の準備は大体できたので、natcracker に加入しました。
ユーザ登録はすぐ終わったのですが、
サービス利用可能になるには時間がかかるようです。
もしかすると人の手でやるのかもしれませんし、
作業の続きはまた明日やりましょうかね。
*1: natcracker 側の ip に syn packet を投げたら、
iij 側の ip から ack packet が返ってくる、というのは不思議なことになりますよね。
*2: おそらく。natcracker が使えないので、実際に動かして試してはいません。