どうも皆様ぐーてんもるげん。何で社会人の夏休みってこんな短いんだ!?まだ全然あっついじゃないか!涼しくなるまで夏休み延長してよ!?と叫びたくなってる私です。
今回のネタは「ネットが安定して使えない!これじゃあ安心して夜しか眠れない!」というクライアントからの悲痛な叫びを解決する、というもの。
いやぁお気持ちお察し致しますよぉ。昨今のインフォメーションでテクノロズィーな毎日を過ごしている方にとっては勿論、我々のような生き物にとってネットは酸素であり生命線。それが断たれるなどということは、考えるだけでも恐ろしいですよね!
んで、ログやらなにやら集めて色々と調査を進めていく中で、「あれ?外部との通信可否を確認するコマンドって、ping 8.8.8.8じゃダメなんじゃね?となったわけです。
代わりに到達したコマンドはずばり「w32tm /resync /rediscover」このコマンドは「即座に外部のNTPサーバと通信して時刻同期せよ」ってコマンドなんですが、なーんでコレがネットワーク調査の救世主となりうるのか、今回はこのコマンドについてちょっと深堀紹介したいと思います。
今回問題になったような、外部ネットが安定して使えない!なんかの調査でよく登場するのは「ping 8.8.8.8」。ええ、言わずと知れたGoogleのDNSとPING疎通が出来るかを見て、外部ネットワークとの通信が確立しているかを確認する方法ですな。
ただこの方法だと、IPを直接叩くので経路上のDNSが死んでてもエラーにならないうえ、TCPやUDPに制約を課しているルータやファイアウォール、UTMに問題があっても検出することは出来ないわけです。
ところがどっこい、今回紹介した「w32tm /resync /rediscover 」はそーはいかない!
先に紹介した通り、このコマンドは外部のNTPサーバと通信し、即座に時刻同期を行うコマンドになります。なのでUDPの123番ポートを使って通信を行うことになるわけです。つまり、経路上に存在するルータやファイアウォール、UTMが「UDPだぁ?全部ダメなパケットに決まってんじゃんか!と言うことにしよう。ラクだし。」な決めつけ思考停止フィルタリングルールをかけており、UDPのパケットを片っ端からかなぐり捨てるような挙動をしていても、即座にエラーとして検出することが出来るわけです。
嘘だろ?とお思いかも知れませんが、最近のセキュリティ強化志向の煽りなのか、素通りするICMPは許可しても、得体の知れない中身のUDPはチェックすっ飛ばしてしまい、ケアルだろうがサンダガだろうが全部跳ね返す、リフレク魔法みたいな設定がされているケースが意外とあります。本当にネットというのは広大ですねぇ。
加えて、NTPは通常「time.windows.com」などのホスト名を参照して通信を行います。なので内部でDNS解決が行われるため、「使ってるDNSがまともに名前解決してくれるのか?」もまとめてテスト出来ちゃうんですな。
色々分からない言葉がゴチャゴチャ出てきてうんざりしてきました?残念ですが、書いてる私も同じです。誤解を恐れずに超絶ざっくり言うと
・ping 8.8.8.8でわかることは「我が家からGoogleのDNSさん家までの道はあるっぽいけど、そっから先は知らないよ。荷物(パケット)によっては通れないかもよ」がわかるだけ
・w32tm /resync /rediscover を送ると「インターネット上の時報サーバに通信出来て、ちゃんと時刻情報が貰えるかも見るよ。つまり、自宅から時報サーバさん家までの道が通ってて、正しい時刻情報(パケット)がちゃんと返ってくるよ」ってところまでわかるわけです。
勿論ping 8.8.8.8を送った後にnslookupを送ってDNSの動作状態を確認して、なんて方法でもいいんですけど、(めんd...)少ない手順で確実な方法のほうが良いですよね!
しかも通信テストに使用するサーバは我らがMicrosoftが提供するNTPサーバで御座いますよ。ニュースサイトとかを検索エンジンで引っ掛けて、ヘンテコなウェブサイトにアクセスしてテストしたんじゃねぇの?なんてことを疑われる心配がありません。
ね、結構便利じゃないですか?ね。
「rediscover 」って何?
今回のコマンド紹介でごり押ししたいというか、もう必須だろうと思うオプションがコレ。これはずばり「名前解決からやり直して最新情報で疎通テストする」オプション。細かく説明すると、端末内に残っている既存のDNSのキャッシュ情報なんかを完全に無視して、ネットワークアダプタに設定された最新の情報をもとにテストに行くわけです。キャッシュマジックを使える妖精さんが現れて、現場に悪い魔法をかけていった結果「ふっざけんな!さっきのテストはうまく行ったのにOS再起動したらまた動かなくなったぞ!くそったれぇ!」な、ぬか喜びさせられて地獄に叩き落される、的問題を可能な限り回避することが出来るわけですね。素晴らしい。
IPv6地雷も回避出来たりする
最近ISPの広告なんかで見ますでしょ?IPv6。そら最新のルータがある環境ならまだいいんでしょうが、ちょっと古めのルータだったりすると「IPv6?知らんし」的挙動をしてパケットを全部ドロップしちゃう、なんてこともあります。ポイントはIPv4のパケットは処理するけどIPv6のパケットは捨てちゃう、ってこと。なのでping 8.8.8.8じゃあこの問題には気づけないわけです。当然pingでも確認する方法はあるにはあるんですが、これをpingで解決しようとすると「ping -6 2001:4860:4860::8888」って書かなきゃなりません。「ややこしいコマンドだな!オラ!ワクワクすっぞ!」的戦闘民族SEな方なら何とかなるかも知れませんが。残念ながら「戦闘力5か、ゴミめ」と言われちゃう私の8ビット脳みそでは到底記憶出来ないわけで、覚えてられねぇ!となるわけです。
その点w32tmコマンドなら、OSが「せっかくだから、俺はこの優先された通信を選ぶぜ!」と勝手に環境に合わせた最適な通信方式を判断して突撃し、突破出来なかったときは「くにに かえるんだな。おまえにも かぞくが あるだろう」的返答を返してくれるんですね。楽じゃないですか。
※プロキシ設定がガッチガチでゾックゾクする環境だと、外部のNTPサーバの利用(UDP 123)自体に制限をかけていることもあるので、注意してね。
ちょっと脱線しますが、IPoE接続(V6プラス等)が提供するIPv6の恩恵が受けられるのはルータのWAN側のお話で、イントラネット(LAN側)で恩恵を感じることはほぼ無いです。というか、恩恵を感じるのは無理・無謀に近い行為です。
そりゃIPv4よりIPv6のほうが扱えるIPが多いのは事実ですが、IPv4でIPが枯渇しちゃうような環境だとすると、IPv4でIP全部使い切る前に間違いなくネットワーク機器にアルテマを叩き込んで引導を渡し、莫大な通信量のせいでISPのブラックリストに名を連ねることになります。もうね、どこの大企業のネットワークやねん、お前の自宅は製薬工場か?アンブレラコーポレーションか何かか?数百台単位で端末があるんか?ってお話になってきます。
殆どの場合、IPv6の利用はルータのWAN側までにして、LAN内のクライアントはIPv6をオフにしてIPv4で運用したほうが、無用なトラブルに遭遇する可能性を劇的に減らすことが出来ます。
WindowsでIPv6をオンにすればネットが爆速になるんだ!と勘違いされていらっしゃる方がいますが、無いです。むしろ、遅くなります。逆に今IPv6を有効にしている環境でIPv6をオフにすると、外部ネットワークへのアクセスも劇的に安定する可能性があります。Windows11 は何かにつけてIPv6を優先して使用しようとします。先の説明で古いルータだとIPv6を捨てると書きましたが、ルータにIPv6で問い合わせ→返答がない→返答がないのでIPv4で問い合わせ、という処理を毎回毎回行うことになります。時間にして数秒から数ミリ秒ではありますが、これが塵積すると大変なストレスになって最悪オーナーが爆ぜます。ちなみにこのWindowsがIPv6を優先して使用する仕組みのことを「Happy Eyeballs」と言うそうです。
いやぁとってもキラキラした名前ですね。本来は「IPv4とIPv6、どっちでも好きな方を使っていいよ!速い方にしたほうがいいよね!」という親切心から生まれたもの、だったのです。
が、実情はルータやFWが適切に処理しない(ICMPv6で拒否を即答しない)せず、LINEの既読スルーばりの「だんまり」を決め込むため、
OS:IPv6の問い合わせだよー
ルータ:無視
OS:あれ?起きてる?よね?
ルータ:無視
OS:もしかしてIPv6じゃダメだったのかな?かな?
ルータ:無視
OS:うん。なんかごめんね。IPv4にするね。
という、経験のある方からすると心にくるようなやり取りを毎回発生させます。こんなもん、どこがHappyやねんと。「Unhappy Eyeballs」の誤植でしょうと。ねぇ。
書いてて辛くなってきたのは聞かないでください。
OSにこんな切ない思いをさせないためにも、IPv6は無効にして快適なネットライフを楽しみましょう!
※ネットの海とは広大なもので「絶対にIPv6じゃないと!」とわがままを言うDirectAccessのようなサービスや、IPv6を溺愛している特殊な環境もごく稀に存在します。 もしオフにして「動かないもん!」と拗ねるサービスがあったら、その時は諦めてそっとチェックを戻してあげてください。
今回の記事はここまで!
ではまた!

0 件のコメント:
コメントを投稿