(WindowsServer2008)会社と自宅間で L2TP/IPSec VPNを構築してみた (その2)
(WindowsServer2008)会社と自宅間で L2TP/IPSec VPNを構築してみたの続きです。
しばらく運用してたんですが、ある社内LANのクライアントPCがVPN兼ファイル兼DNSサーバにSMBアクセスできないという事態になりました。
ただ、ほかのクライアントPCはサーバにアクセスできてます。
調査していると、社外からVPNでVPN兼ファイル兼DNSサーバに接続している間に、社内クライアントPCのOSを起動させサーバ見ようとするとつながらないということでした。
ただし、pingでサーバ名のIPを指定するとちゃんと届きます。
また、エクスプローラから ¥¥サーバIP でもちゃんとつながります。
ということで、DNS周りが曲者だと思って "nslookup サーバ名" してみました。
すると、
192.168.1.10 →これは実際のNICの静的IP
192.168.1.247 →見覚えのないIP
となります。
この見覚えのないIPを使って、エクスプローラからサーバにアクセスしようとするとできません。
この見覚えのないIPですが、管理ツール「ルーティングとリモートアクセス」の「IPv4」→「全般」で表示される一覧の「内部」というインターフェイスに割り当てられていました。
(ちなみに、DHCPの設定はサーバのプロパティ「IPv4」で「動的ホスト構成プロトコルを使う」にしています。)
どうやら、VPNでセッションがつながると、VPN(RAS)用に一つ仮想的な内部インターフェイス(PPPアダプタRASインターフェイス)を生成するようです。
そして、このPPP RASインターフェイスにも、サーバのプロパティで指定した方法でIPを割り振るようです。
さらに、割り振られたIPをご丁寧に自身のDNSサーバに動的更新してくれます。
しかし、このPPP RASインターフェイスはRAS(VPN)用なので、実在のLAN上の各クライアントからはアクセスできないようです。(ただし、そのIPは見える)
途方にくれてると、アンの開発日記 : Small Business Server 2003 上の SQL Server 2005 との通信が不安定にという記事にヒントが。。
どうやら、RRASサーバとDNS,WINSサーバが共存している時におこるようです。
MS:ルーティングとリモート アクセス サーバーで DNS または WINS を実行する場合の名前解決と接続の問題で解決方法と現象の原因が説明されてるみたいです。
上のサポートページは Windows Server 2000,2003用ですが、 2008 でも問題なく解決しました。
要は下記のレジストリを設定することで、PPP RASインターフェイスのIPアドレスを自身のDNSサーバに登録できないように出来るようです。
・下記の場所に新しい値作成
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
値の名前 : PublishAddresses
データ型 : REG_SZ
値のデータ :サーバの IP アドレス。複数の場合はスペースで区切る。
・下記の場所に新しい値作成
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
値の名前 : RegisterDnsARecords
データ型 : REG_DWORD
値のデータ : 0
これで、DNS と Netlogon サービスを再起動すればいいようです。
結果、nslookup で引いても 192.168.1.10 しか出ないようになりました。
ただ、PublishAddresses の値に IPv6 アドレスを入れようとしたら、ダメでした。
どうやら IPv4 の値しか受け付けてくれないようです。
まあ、まだ社内ではIPv6使ってるクライアントいないからかまわないんですけどね。。。
PublishAddresses に無効な値入れると、再度 PPP RAS インターフェイスのIPアドレスがDNSに登録されちゃうので要注意です。