「Mac OS X 10.8.4 で VPNを使うときに知っておきたいこと | hiro345」からの続きです。その後、/etc/resolver/ に特定のドメイン向けresolv.confファイルをおいておくと便利だということを知りました。ローカルネットワークでも別のネームサーバを立ててあって、VPNで接続した方でもそちら用のネームサーバが立ててあるときなどに使うと便利です。そこで、次のようなスクリプトを用意してVPN接続後、VPN接続解除前に実行することにしました。できれば自動でやりたいのですが、そこまでは調べてません。
まず、VPNで使っているドメインについて、/etc/resolver_vpn.netという名前でファイルを用意します。内容は次のように /etc/resolv.conf のフォーマットで記述します。ここでは example.lan、example.dmzのドメインについては、192.168.100.2のネームサーバへ問い合わせをするように設定をしています。
search example.lan example.dmz nameserver 192.168.100.2
VPN接続をしたら実行するスクリプト vpn-up.sh は次のような内容になります。route add が必要なので、sudo で実行が必要です。
#!/bin/sh /sbin/route add -net 192.168.100.0 192.168.1.254 cp /etc/resolver_vpn.net /etc/resolver/vpn.net
/etc/resolverディレクトリは作成していない場合は手動で作成しておきましょう。
$ sudo mkdir /etc/resolver
VPN接続解除をする前に次のようにしてvpn.netを削除するスクリプトを vpn-down.sh という名前で作成しておきます。sudo で実行が必要です。
#!/bin/sh rm /etc/resolver/vpn.net /sbin/route delete 192.168.100.0
VPN接続したら、下記を実行。
$ sudo ./vpn-up.sh
VPN接続解除する前に、下記を実行。
$ sudo ./vpn-down.sh