ローカル IP が枯渇して VPN 接続ができなかった時の話
症状
なんか VPN が使えない。
原因
DHCP がリース可能なローカル IP アドレスがなかった。
ルータの設定
- DHCP がリースできる IP は18個
- IP アドレスのリース期間は3日
- VPN での接続時にクライアントは DHCP からローカル IP の割り当てを受ける
対策
- DHCP のリースアドレスを増やした
- リース期間を24時間にした
- モバイル端末などの Wifi アクセスを受けるルータを1台追加し、セグメントを分離した
ルータ追加はコストがかかるが、今回は業務上必要だったので行った。
セグメントの切り分けや中継の設定方法はそれぞれのルータの説明を確認。
実際の調査
思いつくことはいくつかあるけれども、とりあえず現状は把握しておかないとならない。
前提
- クライアントに MacBook を使用
- クライアントでは VPN の設定が完了している
- クライアントは対象のルータに接続していない
- 対象のルータに接続済みの端末があり、ルータの管理画面を開いている
- ルータのメーカーは YAMAHA
VPN 接続時のログを詳細に吐くようにする
- りんごマーク>システム環境設定>ネットワーク>該当の VPN >詳細>詳細なログを作成にチェック
- ターミナルを開く
- 次のコマンドを叩く
tail -f /var/log/system.log
- 該当の VPN に接続する
これで接続した瞬間だらだらログがでるはず。
ログ表示を止めるときは control + C
を押す。
ログを調べてたら
PPTP connection established.
となっているので、ルータも生きているし、 VPN の初期フェーズは突破している。
だがそのあとで PPTP disconnected
となってしまう。
問題はその間のログにあるはず。
でも実際に書いてあったのは以下。
ppp0: is now delegating en0 (type 0x6, family 2, sub-family 3)
Connect: ppp0 <--> socket[34:17]
LCP: timeout sending Config-Requests
Connection terminated.
PPTP disconnecting...
詳細ログとは一体。
わかんねーときは比較だ
ということで、他の VPN に接続してそのログを見てみる(一部省略)。
PPTP connection established. ppp0: is now delegating en0 (type 0x6, family 2, sub-family 3)
Connect: ppp0 <--> socket[34:17]
local IP address 192.168.xxx.x
remote IP address 192.168.xxx.1
local IP address とな?
ルータの状態を見てみる
DHCP のリース帯を確認 -> 18個
現在リース中のアドレス数 -> 18個
こ れ だ
よく考えると
VPN だろうがローカル IP を割り当てる必要があるのは当たり前で、割り当てには DHCP サーバが担当するのもわかりきったことだった。
しかし VPN が繋がらないと言ったら、普通他の原因を探ると思うんだ。
そもそも設定がおかしいとか、認証方法やパスワードを間違えてるとか、ルータが死にかけてるとか。
そりゃネットを調べてみても、解決策がなかなか出てこないわけだよ。
VPN 自体の障害じゃないもん。
蛇足
今回は対応としてモバイル端末の Wifi を切り離したが、ルータによっては VPN 接続してきた端末のセグメントを分離することができる。
その場合はローカル資源にアクセスできるように、両方のセグメント間で通信ができるように設定する必要がある。
Discussion