DHCPサーバからIPアドレスの再取得ができない時の対応方法
親父宅のインターネット接続環境はマンション向け一括サービスを使用している。ただ、PC側からIPアドレスのリリース期限超過後に再取得しようとすると、うまく取得できない場合が多々発生する。
この記事では簡単に解消する方法をまとめている。
同環境の人は少ないだろうが、似た症状が発生している場合には使用できるかもしれない。
まとめ結論
インターネット環境
マンション向け一括提供サービス
全体で200~300世帯のマンション
10Gbps共有
フロアスイッチから宅内までは1Gbps
イーサネットによる有線接続
各機器にIPv4のプライベートIPアドレスが付与される
VLANにより他世帯の通信は遮断されている
PC
Windows10 64bit
有線LAN接続
大量かつ安定して通信したいので無線使用していない(スマホなどは無線接続している)
原因と対応
原因
・WindowsのDHCPクライアント機能の問題(恐らく)
PCがスリープ状態などでIPアドレスのリリース期限が切れると取得済みのIPアドレスが再利用できるかDHCPサーバに問い合わせるが、この通信がタイムアウトする。
・DHCPサーバの問題(?)
実はサーバ側の問題かもしれない。ただ、特に情報が見当たらない事や、頻発しているなら修正されているだろうから今回は除外。
解決方法
1. 「問題のトラブルシューティング」の実行
ネットワークアダプタをリセットすれば問題解消されることが多い。
ただ、失敗することも多い…。
2. PC再起動
ネットワークアダプタがダメならPCの再起動。9割方解消される。
これも万全ではなく、ダメだったときは数分後に再度実施すると解消することもあるが…すぐ使用したいので無理。
また、スリープさせているPCは未保存のデータも多いので終了処理と再開させるまでが面倒くさい。
3. 別IPアドレスを手動割り当て後にDHCP取得に変更
ネットワークアダプタをリセットしても解消しないが、別のIPアドレスを手動割り当てしてからDHCPに戻すと取得できるようになる。
以前はDHCPサーバの割り当て範囲外の余りIPアドレスを使っていたらISPから怒られた(当たり前)ので衝突しない別ネットワークのプライベートIPアドレスを活用する。
通常時の割り当てIPアドレスがクラスCの「192.168.100.xxx」の場合は「192.168.123.xxx」やクラスBの「172.16.0.xxx」の未使用のものを指定する。
別IPアドレスの設定方法(手動)
[Windows]キー + X キーを押下
[ネットワーク接続] を選択
[ネットワークの状態] にある イーサネットアイコンの下の [プロパティ] ボタンを押下
[IP設定] の [IP割り当て] にある [編集] ボタンを押下
[自動DHCP] から [手動] に変更
[IPv4] を [オン] に変更
IPアドレスなどを入力する
保存を押下
しばらく待ってから [手動] から [自動DHCP] に変更
※Wi-Fi接続の場合は若干操作が異なります。
別IPアドレスの設定方法(バッチ)
手動の手順は「問題のトラブルシューティング」の実行より面倒。
ただ、この方法で解決できるなら解決方法としては問題ないため、必要なコマンドをバッチに登録して実行できるようにすれば簡単な操作で解決できる。
前準備
[Windows]キー + X キーを押下
[ネットワーク接続] を選択
[ネットワークの状態] に表示されているインターフェイス名を確認する
バッチファイルの作成
メモ帳を開く
下記のコードをコピー&ペーストする
「name」の指定名が前準備で確認した名前と異なる場合は変更する
8行目のIPアドレスの指定が普段のネットワークと重複する場合は重ならないように修正する
保存する(デスクトップ上などがお勧め)
バッチファイルの内容
@echo off
netsh interface set interface name="イーサネット" disable
timeout /t 5 > nul
netsh interface set interface name="イーサネット" enable
timeout /t 5 > nul
netsh interface ipv4 set address name="イーサネット" source=static address=192.168.123.2 mask=255.255.255.0 gateway=192.168.123.1
ipconfig
timeout /t 5 > nul
netsh interface ipv4 set address name="イーサネット" source=dhcp
netsh interface ipv4 set dns name="イーサネット" source=dhcp
ipconfig /release
ipconfig /renew
timeout /t 5 > nul
実行方法
上記で作成したバッチファイルを右クリックして [管理者として実行] を選択する。
解説
アダプタのリセットを実行。イーサネットアダプタを無効化して5秒待機する。
netsh interface set interface name="イーサネット" disable
timeout /t 5 > nul
イーサネットアダプタを有効化して5秒待機する。
netsh interface set interface name="イーサネット" enable
timeout /t 5 > nul
IPアドレスに「192.168.123.2」を設定して5秒待機。
このプライベートIPアドレスのネットワークアドレスは、
・DHCPサーバから配布されるIPアドレスの範囲外
・マンション構内ネットワークでも未使用
・宅内でも未使用
のものを指定する。
netsh interface ipv4 set address name="イーサネット" source=static address=192.168.123.2 mask=255.255.255.0 gateway=192.168.123.1
ipconfig
timeout /t 5 > nul
手動割り当てからDHCPに変更し、IPアドレス開放&更新。
netsh interface ipv4 set address name="イーサネット" source=dhcp
netsh interface ipv4 set dns name="イーサネット" source=dhcp
ipconfig /release
ipconfig /renew
timeout /t 5 > nul
最後に
これでIPアドレスが取得できなかった場合でもコマンド一発で再取得できる。
しかし、原因はWindows側なのか、構内ネットワーク機器側なのか。いずれかに問題があるならGoogle検索でヒットしそうなのに見当たらない。
とりあえずこの方法で解消するからいいか…。
この記事が気に入ったらサポートをしてみませんか?