
私の住んでいる浜松市で、コロナウィルスのクラスターが発生しました。今日現在で2店舗で70人弱の感染が確認されています。
私の勤め先は、いわゆるIT系の会社ですが、中小企業ということもあり、テレワークは行われていません。社員のPCは基本デスクトップですので、自宅に持ち帰ることができないのが現状です。
とはいえ、コロナウィルス騒動が始まった際に、何もしないわけにはいかないな、とルータの設定を変更してテストを行い、40本のVPN回線を外部から張れるように準備を行っておきました。
社内のネットワークインフラとサーバ管理を行っている者としては、当然の危機管理というか、転ばぬ先の杖というやつですね。
今回の騒動で社内から感染者は出ていませんが、いきなりVPN回線を実際に運用することになりました。
が、ここで思わぬ問題発生!
今回はこの問題と、解決方法を紹介します。
VPNって基本的な概念としてインターネットに接続された2点間でトンネルを掘って、トンネル内を通して通信を行います。
この図では左側が社内ネットワークで、右側が自宅ネットワークになります。
VPNはリモートアクセス方式を使い、社内ネットワークのルータがVPNサーバを兼ねていて、自宅ネットワーク内のPCが、このVPNサーバにリモート接続を行います。
VPNとしては他に拠点間接続方式などがありますが、会社に個々の社員がVPN接続する場合は、リモートアクセス方式が適しています。
さて、この方式の場合、ネットワークの組み方で大前提になるポイントがあります。これができていないとVPNの通信が行えません。
それは何かと言うと...
左側と右側のネットワークのIPアドレス範囲は重ならないこと、という大前提があります。
図でいうと、左側の社内ネットワークは192.168.128.1/24ですので、192.168.128.1~192.168.128.255のIPアドレスが使用できる範囲になります。
右側の自宅ネットワークは192.168.1.1/24ですので、192.168.1.1~192.168.1.255のIPアドレスが使用できる範囲になります。
使用できるIPアドレスの範囲が異なっています。
何故にIPアドレスの範囲が重ならないようにしなければいけないかというと...
この図では192.168.1.2のIPアドレスのノートPCがVPNサーバに接続を行いVPNトンネルが張られます。
192.168.1.2のPCは社内ネットワークにアクセスする時、社内ネットワークの192.168.128.1~192.168.128.254のIPアドレス先の機器と通信を行います。
PC内のWindowsのTCP/IPプロトコルスタック(WinSock)では、IPアドレスが192.168.128.1/24の通信はVPNサーバに送ればよいのだなとトンネルを通して通信が行われます。
さて、ここで自宅ネットワークが、同じ192.168.128.1~192.168.128.255だった場合を考えてみましょう。
WinSockは自宅ネットワークに流すIPパケットとVPNトンネルを通すIPパケットの範囲が同じなので、何をトンネルに流せばよいのか分からなくなり通信が破綻します。
なので、それぞれのネットワークのIPアドレス範囲は異なること、というのがリモートアクセス方式では大前提になります。
しかし、世間で売られているルータのほとんどが192.168.1.1/24のIPアドレス範囲を初期設定値と使っています。
このため、最初からVPNを考慮していないと、結構な頻度でIPアドレス範囲がバッティングします。
今回会社で発生したのは、会社のIPアドレス範囲は192.168.0.1/20なのですが、VPN接続を行う自宅回線が192.168.1.1/24というパターンでした。
これだと会社は192.168.0.1~192.168.15.255の範囲
自宅回線は192.168.1.1~192.168.1.255の範囲と、一部が重なってバッティングしています。
自宅回線を192.168.16.1~192.168.16.255などバッティングしないようにしてね、と言うのは簡単ですが、実際には自宅にも様々なネットワーク機器があるので、全ての設定を変えることは困難です。
さて、これを回避するには...長くなったので「
VPNでIPアドレス範囲のバッティングを回避する方法 ~後編~」に続きます。
ブログ一覧 |
ガジェット | 趣味
Posted at
2020/07/28 23:58:49