普通に使う分にはこれで特に問題ないのだが、OpenVPNで外部から自宅へVPN接続している場合に、VPN接続した端末からダイナミックDNSで取得したドメイン名で自宅サーバ(例えばWebサーバ)にアクセスしようとすると、ドメイン名の解決結果がグローバルアドレスになってしまいアクセスできない問題があった。
これを解決するためには下記2点の設定が必要。
- 自宅内にDNSサーバを立てる
- OpenVPNサーバの設定で接続端末へ配布するDNSサーバの情報を宅内DNSサーバにする
DNSサーバ構築
自宅のUbuntuマシンにはデフォルトで(?)
dnsmasqが入っていた。
ただ、デフォルト設定ではlocalhostからの接続しか受け付けないようになっていた。
そのため、dnsmasqの設定を変更して他のホストからの接続を受け付けるようにする。
まず、
/etc/hostsにダイナミックDNSで取得したドメインを追記した。
(
ローカルドメインと記載された箇所にダイナミックDNSで取得したドメイン名を記入)
127.0.0.1 localhost
192.168.xx.yy ローカルドメイン
そして、
/etc/dnsmasq.confに下記の設定を行った。
domain-needed
bogus-priv
local=/ローカルドメイン/
listen-address=127.0.0.1
listen-address=10.8.0.1
listen-address=192.168.xx.yy
expand-hosts
domain=ローカルドメイン
上記の設定を行った後、
sudo service dnsmasq restartでdnsmasqを再起動することで反映される。
(reloadでは
listen-addressの設定が反映されなかったため、restartを実施)
参考
- Dnsmasq [メモとかメモのようなものとか(By ルーキーの中のひと)]
- Dnsmasq 軽量 DNS サーバ構築(内部向け) - eTuts+ Server Tutorial
- dnsmasqで始めるプライベートDNSサーバ - GeekFactory
OpenVPNの設定変更
/etc/openvpn/server.confの接続先端末にDNSサーバを通知している箇所を下記のように変更。
push "dhcp-option DNS 10.8.0.1"
dnsmasqと同様、OpenVPNも再起動しておく。
0 件のコメント:
コメントを投稿