pingは通るのにHTTPが通らない? Atermのネットワーク分離機能にハマった話

ネットワーク

Aterm WX3000HP2の管理画面に、PCからアクセスできなくなっていました。

原因を調べていったところ、セカンダリSSIDの「ネットワーク分離機能」が原因でした。

今回は、そのときの切り分け過程をまとめます。

事象

PCからAterm WX3000HP2の管理画面(192.168.10.2:80)にアクセスできません。

一方で、スマートフォンからは正常にアクセスできます。

また、PCからAtermへのpingは正常に通っています。

PC → 192.168.10.2:80
      NG

PC → 192.168.10.2(ping)
      OK

スマホ → 192.168.10.2:80
      OK

「pingは通るのに、なぜHTTPだけ通らないのか?」という状態です。

最初の仮説

Windows Defender Firewall?

まず疑ったのは、Windows Defender Firewallです。

PCからTCP/80向けの通信だけがブロックされているのではないかと考えました。

ただし、他のWebサイトなどへのTCP/80通信は正常に行えていました。

ルーティング?

次にルーティングを確認しました。

PCとスマートフォンは、どちらも 192.168.10.0/24 のネットワークからDHCPでIPアドレスを取得しています。

今回の宛先である 192.168.10.2 も同一セグメントなので、通常はルータを経由せずL2で直接通信します。

そのため、今回の事象についてルーティングが原因である可能性は低いと判断しました。

パケットキャプチャ

そこでWiresharkでTCP通信を確認しました。

PC側では、Atermに対するTCP SYNが送信されています。

PC → 192.168.10.2
TCP SYN

しかし、SYN/ACKが返ってきません。

その後、SYNの再送(Retransmission)が発生していました。

PC                         Aterm
 |                           |
 | ---- TCP SYN -----------> |
 |                           |
 |     SYN/ACKが返らない      |
 |                           |
 | ---- TCP SYN -----------> |
 |      Retransmission       |

少なくともPC側から見ると、TCPの3-way handshakeが成立していません。

切り分け

ARPは正常

まずARPを確認しました。

Aterm 192.168.10.2 のMACアドレスを正常に取得できています。

つまり、少なくともL2でAtermのMACアドレスを解決できています。

tracertも正常

tracert 192.168.10.2

を実行すると、

1    1 ms    1 ms    1 ms    192.168.10.2

となり、Atermまで到達できています。

ただし、tracert はICMPを利用するため、これだけではTCP/80の疎通を保証できません。

Test-NetConnection

Windowsの Test-NetConnection でも確認しました。

Test-NetConnection 192.168.10.2 -Port 80

結果は、
TcpTestSucceeded : False

でした。

つまり、

TCP/80は通らない

ことが確認できました。

Windows Defender Firewallを無効化

念のためWindows Defender Firewallを一時的に無効化して再確認しました。

しかし、TCP/80は接続できませんでした。

ここで、PC側のWindows Firewallが原因である可能性はかなり低くなりました。

決定打

ここまで調べても原因が分からなかったため、Aterm WX3000HP2のマニュアルを確認しました。

そこで気になる記載を発見しました。

リモートワークWi-Fi(ネットワーク分離機能)の設定を工場出荷状態から変更していない場合、セカンダリSSIDにWi-Fi接続している子機では、リモートワークWi-Fi(ネットワーク分離機能)が有効なため、クイック設定Webは表示できません。いったん有線で接続するか、プライマリSSIDに接続して、クイック設定Webを表示してください。

引用元:Aterm®WX3000HP2ユーザーズマニュアル

セカンダリSSIDに接続しているクライアントでは、このネットワーク分離機能によって、Atermのクイック設定Web(管理画面)にアクセスできない仕様になっていました。

つまり、原因はこれでした。

PCとスマートフォンでSSIDが違った

改めて確認すると、PCとスマートフォンは「同じWi-Fi」だと思っていましたが、実際には接続しているSSIDが違いました。

スマートフォン
  ↓
プライマリSSID
  ↓
192.168.10.2:80
  ↓
OK


PC
  ↓
セカンダリSSID
  ↓
192.168.10.2:80
  ↓
NG

PCをセカンダリSSIDからプライマリSSIDへ変更したところ、

Test-NetConnection 192.168.10.2 -Port 80

が正常に成功し、Atermの管理画面にもアクセスできるようになりました。

原因

原因は、Aterm WX3000HP2のセカンダリSSIDで有効になっているネットワーク分離機能でした。

PC側のWindows Defender Firewallや、AtermのTCP/80設定が原因ではありませんでした。

今回の学び

今回のトラブルシュートで改めて感じたのは、以下の点です。

ping OK ≠ TCP OK

pingが通っていても、TCP/80が通るとは限りません。

ICMP  → OK
TCP/80 → NG

という状態は普通に起こり得ます。

ARP OK ≠ アプリケーション通信OK

ARPで宛先MACアドレスを解決できても、その上のTCP通信まで許可されているとは限りません。

L2での到達性と、TCP/アプリケーションレベルの到達性は分けて考える必要があります。

「どこまでパケットが届いているか」を見る

今回、PC側でWiresharkを取得したことで、

TCP SYN
  ↓
SYN/ACKなし
  ↓
SYN Retransmission

という状況を確認できました。

パケットキャプチャによって、単に「ブラウザで接続できない」という現象を、TCPレベルまで分解して確認できました。

SSIDもネットワークトポロジーの一部として確認する

「同じWi-Fiに接続している」と思っていても、SSIDが違えば通信ポリシーが異なる場合があります。

今回のように、

プライマリSSID
セカンダリSSID

でネットワーク分離の有無が異なる場合、SSIDそのものがトラブルシュートの重要な情報になります。

まとめ

今回の事象は、

「pingは通るのにHTTPが通らない」

というところから始まりました。

最終的には、

PCがセカンダリSSIDに接続しており、Atermのネットワーク分離機能によって管理画面へのアクセスが制限されていた

ことが原因でした。

ネットワーク障害を切り分けるときは、

ICMP → ARP → TCP → パケットキャプチャ → Wi-Fi/SSID設定

のように、それぞれのレイヤーで実際に何が起きているかを確認していくことが重要だと改めて感じました。

タイトルとURLをコピーしました