2013年2月8日金曜日

Windows 8でIPv6よりIPv4を優先させる

先週末のことですが、いつも以上に現実逃避をした結果、職場の作業PCがWindows 7からWindows 8に変わりました。しかし、常にデスクトップで作業するため、Windows 8の目玉商品のタイルとか使ったことがないです。とりあえず、Aeroがなくて毎日悲しいです。


さて本題。

とある用事でWordpressを導入しました。当然インターネット側からもアクセスできるのですが、一部のアドレス、Wordpress的に言うと一部のカテゴリは職場内からしか接続できないようにしたかったため、User Access Managerというpluginを導入しました。

このプラグイン、IPアドレスのレンジを指定してカテゴリや投稿、固定ページなんかに閲覧制限なんかをかけることができるのですが、v4しか考慮されてないようで、v6だと問答無用でシャットアウトされます(ソース読んだわけではないので、ウソかもしれません)。

職場のネットワークはv6 OKです。OKというか、Windows 7や8だと何もしなくてもv6で通信できちゃいます。そういう設定にしてあります、というかしました。

で、このWordpressはDNSにAAAAレコードを持っていたりするので、Windows 7や8から何も考えないでアクセスするとv6で接続しに行きます。

というわけで、せっかくv6 OKなWindows 8でv6 offにするのも悲しいので、v6よりv4を優先するようにしました。
  1. 管理者としてコマンドプロンプトを起動。
  2. とりあえず現在の状態を確認する。
  3. プレフィックス::ffff:0:0/96がv4のマップなので、こいつをv6のループバック::1/128の上にくるようにする。
    C:\Windows\system32>netsh interface ipv6 show prefixpolicies C:\Windows\system32>netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 50 0 C:\Windows\system32>netsh interface ipv6 set prefixpolicy ::1/128 40 0 C:\Windows\system32>netsh interface ipv6 set prefixpolicy ::/0 35 0
  4. うまくいけばこんな感じになる。

これでOKだと思うけど、動作がおかしかったら
netsh interface ipv6 reset
でリセットできるようです。

参考 : IPv4 を IPv6 より優先にするIPv4をIPv6に優先させる - システム管理者(私)のための忘備録