openvpn 同一LANでtap接続

OpenVPNに限らず、既存のネットワークに参加させるような VPN接続を行なうときの悩みは、VPN待ち受け側サーバのLISTENアドレスと セッション確立時に割り当てられるアドレスを別ネットワークにしとかないと いけないということ。たとえば既存LANが 192.168.1.0/24 で、ここに参加させるためにこのLAN内の 192.168.1.1 のマシンをVPNサーバ にしたとして、VPN接続してきたクライアントに 192.168.1.100 とか割り当てようとしても、セッション確立した瞬間にVPNサーバへの ルーティングが失われるのでアウト、という理屈。

とはいえ、VPN専用の仮想ネットワークを割り当てるんじゃ ネットワーク構成が複雑化してうれしくない。

というときは、VPNサーバの待ち受けアドレスをIP aliasで 本体IPアドレスとは別のものにし、クライアントに送り込む default route を本体アドレスにするとよい。例示。

たとえば、VPNサーバ 192.168.1.1 にaliasとして 192.168.1.2 をつけ、OpenVPNのconfigファイルには

local 192.168.1.2
push "route-gateway 192.168.1.1"
push "redirect-gateway"

としておく。これで、クライアント側から192.168.1.2へのrouteは 保ったまま、default gateway を本体サーバに向けられる。ああすっきり。

OpenVPN自前ビルド@NetBSD

pkgsrcじゃなくて、の話。

des_old.hのincludeでエラーになる。これは /usr/src/crypto/dist/openssl/crypto/des/ にあるヘッダファイル群をインクルードパスのどこかの openssl/ に配備すればよいようだ。 caam 前提だとこんな感じ。

tar -zxpf lzo-2.05.tar.gz
cd lzo-2.05
CAAM_ADD=adm caam -gmaic -j5 --prefix=/usr/local/adm
cd ..
tar -zxpf openvpn-2.2.1.tar.gz
cd openvpn-2.2.1
ln -s /usr/src/crypto/dist/openssl/crypto/des \
	/usr/local/adm/include/openssl
CAAM_ADD=adm caam -gmaic -j5 --prefix=/usr/local/adm