※ご注意:下記の記述は現象面からの推測を多分に含んでいるため、間違っていることを書いている可能性があります。
TAPドライバを使ってネットワーク接続を行うには、Windows側でNATを有効にするのがもっとも簡単な方法であるが、Windows XP SP2でWindows Firewallを有効にした場合、netshを用いたNAT設定と干渉することがある。筆者の環境では以下のような現象が発生した。
NATは有効なのにdnsproxyが有効にならない。
NATも無効になる。「netsh routing ip nat install」をしてもNATが有効にならない。イベントログを確認すると、ICS(Internet Connection Sharing. 「インターネット接続の共有」)とNATの設定が干渉している旨のエラーが出ている。
Windows Firewallを有効にしているのに、セキュリティセンターが、Windows Firewallが有効になっていない旨の警告を出す。イベントログを確認すると、Windows Firewallのサービスが起動できなかった旨のエラーが出ている。
これは、Windows Firewallの機能を提供するサービスである「Windows Firewall/Internet Connection Sharing (ICS)」が、ファイアウォールの機能だけでなくインターネット接続共有の機能も提供しているために、netshでNATを設定するとカーネルの機能を取り合うことが原因らしい。
この問題における対策は、現在のところ以下のどちらかしかないようである。
TAPインターフェースのIPアドレスを192.168.0.1にすることが可能であれば、netshによるNATおよびdnsproxyの設定を破棄してICSを有効にする。(参考: Windows 2000/Windows XPのICSを活用する(NATを利用する方法))
TAPインターフェースのIPアドレスを192.168.0.1にすることが不可能であれば、別途ファイアウォールを立てるなどの対策を講じた上で、Windows Firewallを無効にする。