両端に高コストの固定グローバルIPアドレスが不要なVPNソリューションです。
(片方は絶対に固定グローバルIPが必要)

固定グローバルネットワークにvtundサーバを動かしておいて、vtunクライアント
ゲイトウェイから暗号化トンネルを張りにいく方式です。 トラフィックが増えて
パフォーマンスが落ちる点が気になりますが、自社で5拠点をこれで結び安定運用が
できています。vtunクライアント側はプライベイトアドレスを振り出されるケーブル
テレビやADSLも混在しています。

こういう会社って多いんじゃないでしょうか。
VTUN Server側:FreeBSD-4.8RELEASE
VTUN Client側:FreeBSD-4.8RELEASE

kouseizu-vtun

VTUN ServerとVTUN Client間で192.168.0.1 <---> 192.168.0.2のPoint to Pointで
暗号化トンネルを掘る。

vtunサーバ側の静的経路情報
172.16.20.0/24宛は192.168.0.1へ
vtunクライアント側の静的経路情報
172.16.10.0/24宛は192.168.0.2へ

デフォルトゲイトウェイになるルータ・計算機には
サーバ側
172.16.20.0/24宛は172.16.10.2へ
クライアント側の静的経路情報
172.16.10.0/24宛は172.16.20.2へ

を追加する。

接続拠点が増えればその通りサーバ側に設定する。クライアント側も同様だが
全てのVPNパケットをVTUNサーバに投げつけるようにすれば良い。



【両方】
VTUNをインストールする。
cd /usr/ports/net/vtun
make install clean
とportsでお手軽インストール。

【LAN-A側に置いてあるVTUNサーバ】

5000/tcpで待ち受けする事になるのでファイアウォールに穴をあけておく。

rootになって
/usr/local/etc/vtund.conf を作成。内容は、


options {
ifconfig /sbin/ifconfig;
route /sbin/route;
}

default {
type tun;
proto tcp;
compress zlib:9;
encrypt yes;
keepalive yes;
stat yes;
speed 0;
}

LANB {
pass *****;

up {
ifconfig "%% inet 192.168.0.2 192.168.0.1";
route "add -net 172.16.20.0/24 192.168.0.1";
};

down {
ifconfig "%% delete down";
route "delete -net 172.16.20.0/24";
};
}


*******の部分は伏せ字です。パスワードが平分で埋め込まれてしまうため、
chown root:wheel /usr/local/etc/vtund.conf
chmod 600 /usr/local/etc/vtund.conf
とやってroot以外は読み出せないようにしておきます。

rootで
/usr/sbin/vtund -s
でサーバモードのデーモンとなります。

うまくトンネルが掘れれば、後で /usr/local/etc/rc.d/vtund-server.sh でも
作っておきます。


【LAN-B側で動いているVTUNクライアント】

クライアント側は固定のグローバルIPアドレスではない為、VTUNクライアントが
VTUNサーバにコネクションを張りにいくことになります。勿論VPNトンネルが掘れた
ら、どちらからでも接続しに行くことができます。(できなきゃ意味なし。)

rootになって
/usr/local/etc/vtund.conf を作成。内容は、

options {
ifconfig /sbin/ifconfig;
route /sbin/route;
}

default {
compress yes;
speed 0;
}

LANB {
pass *****;
persist yes;
proto tcp;
encr yes;
stat yes;
keepalive yes;

up {
ifconfig "%% inet 192.168.0.1 192.168.0.2";
route "add -net 172.16.10.0/24 192.168.0.2";
};

down {
ifconfig "%% delete down";
route "delete -net 172.16.10.0/24";
};
}


*******の部分は伏せ字です。パスワードが平分で埋め込まれてしまうため、
chown root:wheel /usr/local/etc/vtund.conf
chmod 600 /usr/local/etc/vtund.conf
とやってroot以外は読み出せないようにしておきます。

クライアントモードで起動します。

root で
/usr/local/sbin/vtund LANB aaa.bbb.ccc.ddd(VTUNサーバ名)
これでおしまい。うまくトンネルが掘れればこれも /usr/local/etc/rc.d以下に
起動スクリプトを書いておきます。