😱

ローカル IP が枯渇して VPN 接続ができなかった時の話

2016/09/28に公開

症状

なんか VPN が使えない。

原因

DHCP がリース可能なローカル IP アドレスがなかった。

ルータの設定

  • DHCP がリースできる IP は18個
  • IP アドレスのリース期間は3日
  • VPN での接続時にクライアントは DHCP からローカル IP の割り当てを受ける

対策

  • DHCP のリースアドレスを増やした
  • リース期間を24時間にした
  • モバイル端末などの Wifi アクセスを受けるルータを1台追加し、セグメントを分離した

ルータ追加はコストがかかるが、今回は業務上必要だったので行った。
セグメントの切り分けや中継の設定方法はそれぞれのルータの説明を確認。

実際の調査

思いつくことはいくつかあるけれども、とりあえず現状は把握しておかないとならない。

前提

  • クライアントに MacBook を使用
  • クライアントでは VPN の設定が完了している
  • クライアントは対象のルータに接続していない
  • 対象のルータに接続済みの端末があり、ルータの管理画面を開いている
  • ルータのメーカーは YAMAHA

VPN 接続時のログを詳細に吐くようにする

  1. りんごマーク>システム環境設定>ネットワーク>該当の VPN >詳細>詳細なログを作成にチェック
  2. ターミナルを開く
  3. 次のコマンドを叩く
    tail -f /var/log/system.log
  4. 該当の 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