Windows10環境下のStaticRouteが突如無効に
ユーザから「サーバにアクセスできなくなった」と連絡がきた。確認すると、事務所15台のPCのうち1台だけがつなげなくなったという。仕事に支障があるので急いで欲しい感じ。
環境
- インターネット回線はプロバイダー側から抜けていく構成
- クラウド上のサーバにアクセスする際だけVPN機器にネットワークを向けるようStaticルートを設定
障害状況
- route printコマンドで確認したところ、設定したとおりのstatic routeが存在しているように見える
- クラウド上のサーバにPingを打つとタイムアウトする
復旧作業
routingが無効化されたのだろうか?と疑ったので、再度route addで追加してみるが、既にそのルートは存在しているとエラーが返ってきた。しかし、再度Pingを打ってみてもそのルートは無効といわれる・・・。こいつは困った。しかしスラドに神がいた。
参考元URL:https://m.srad.jp/~help/journal/612520
で、やったことは
C:\WINDOWS\system32>route -p add **.**.***.180 mask 255.255.255.255 192.168.168.1
OK!
で、 tracert の結果は期待した通りになりましたし、実際に当該アプリケーションも使えました。 でも、コマンドプロンプトでも、レジストリエディタでも表示は変わりません。そんなわけで、私の PC だけかもしれませんが、 route add -p で恒久的に追加した static route は Windows 10 Creators Update の後で、表示上は問題ないものの、使えないというか default route へすべてのパケットが流されるようになりました。
レジストリに保存されているという知識を授けてくださった方への恩返しになるかどうかわかりませんが、ここにメモを残しておきます。
どうやら、default route がスタティックルートに優先して通信が流れるようになるということのようだ。何でそんなことしでかしてくれていて、しかも15台中1台しかそうならないのか分からないが、理由は判明した。やることは単純だ。設定してあるルーティング情報を一度削除し、再度追加すればよい。
route delete **.**.**.** mask 255.255.255.255 192.168.168.1
route -p add **.**.**.** mask 255.255.255.255 192.168.168.1
たったこれだけで疎通は再開した。しかし、なぜかそれまでに通っていたVPN用ルータへの通信がなぜか応答を返さなくなっていた。うーむ・・・と思ったが、背後でお客様がそわそわしているのでこれ以上の調査は断念。
気になったこと
スラドに下記のコメントがついてて驚いた。
最近は、Powershell推奨らしいよ。
netsh でできて、Powershellでできないことって、まだあるのかな…
まじか。Powershell勉強していない化石だから全然このあたりを理解していない。ちゃんと勉強して環境再構築しなおさないといけない。しかしまぁまた障害再発するかもしれない次月までに準備すればよいということで。