VPNとDNSとBonjour

 社外から社内の開発環境にアクセスしたい、というような場合にはどうすればいいのだろうか?
 単にSSHでログインしてちょこっと作業をするだけなら、踏み台サーバを用意してそこからさらに目的サーバまでたどり着けばいいだけなので、大きな問題はない。しかし、ファイル共有もしたいし、Webサーバにもアクセスしたい、というような事になると、単に踏み台サーバを用意するだけではちょっと不便だ。
 そういう時にはVPNを使えばいい。最近ではいろいろなVPN用のソフトウェアがあり、通信経路を暗号化してくれる。しかし、VPNには名前解決をどうしようかという問題が付いて回る。まぁ、拠点間ネットワークなら両方のネットワークでプライベートDNSを立てて処理すれば問題ないんだろうけど。
 社外ネットワークから社内ネットワークへとアクセスする場面を考える。この場合、名前解決に関しては、全部の名前解決を社内DNSで行うようにするか、手元にhostsを設定するか、multicast DNS(ここでBonjourが出てくる)を使うか、ぐらいしか選択肢が見つからない。社内DNSはレイテンシが気になるし、hostsはメンテが大変そうだし、multicast DNSはスケールしなさそう。しかも、multicast DNSを使うためにはVPNをブリッジモードで接続するか、もしくはmbridgeのようなソフトウェアでmulticast DNSのパケットだけ別途中継してやる必要がある。サーバ側だから割とどうでもよくはあるんだけど、やっぱり面倒くさい。
 結局、今考え付く手段はどれもこれも得失があって、全部の問題を解決できるようなナイスなアイデアは見当たらない。このドメインに関してはこっちのDNSに聞きにいけ、みたいなルーティングを設定を簡単にできたらいいんだけど。
 しかし、ネットワークというのも、考えてみれば知らないことだらけだ。そもそもBonjourやらAvahiやらがなんのためにあるのか、今回こうやってちょっと考えてみる機会を持ってみて、初めて理解できた。他にも、まだ自分に意義が理解できてないよくわからない(けど有用な)機能や概念と言うのがいっぱいあるんだろうなぁ。