[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [+]

W2K で VPN

ふと、W2K で VPN をやってみました。(それだけです。)

目次


1. 構成

VPN クライアントがインターネットを介して VPN サーバに接続し、LAN に参加する(?)、という構成です。
ネットワーク同士をつなぐ、というわけではないようです。
# VPN サーバ同士でつなげばそうなると思いますが、今回は試せませんでした。
IP アドレスは、今回試したもので、こうでなければならないというわけ ではありません。

  [VPN クライアント]---- インターネット ----[VPN サーバ]
               1.1.1.1                    2.2.2.2    |10.0.0.1
                                                     |
                                           LAN(10.0.0.0/24)

VPN サーバには、Window2000 Server が必要です。VPN クライアントは、 Windows2000 であれば、標準で搭載されています。(他はよく知りません。)
VPN クライアントには Windows2000 Professional を使用しました。

2. 設定方法

2.1 VPN サーバ側の設定

  1. [管理ツール]→[ルーティングとリモートアクセス] を実行します。
  2. 設定したいサーバを右クリックして、 ルーティングとリモートアクセスの構成と有効化 を選択します。すると、セットアップウィザードが起動されます。
  3. 標準的な構成 では、 仮想プライベートネットワーク(VPN)サーバ を選択します。
  4. リモートクライアントプロトコルは、どう いうふうでもいいと思いますが、とりあえず TCP/IP だけにしました。
  5. インターネット標準 では、VPN を受ける 側のインタフェース(インターネット側のインタフェース)を指定します。
  6. IPアドレスの割り当て では、新規で作成 してもいいですし、DHCP サーバとしてすでに設定されているなら、 動的ホスト構成プロトコル(DHCP)を使う にすると管理が楽なのではないかと思います。
  7. 複数のリモートアクセスサーバの管理 では、RADIUS サーバは存在しませんので、いいえを選択しました。
完了後、しばらくすると設定がなされるようです。

2.2 VPN クライアント側の設定

  1. [設定]→[ネットワークとダイヤルアップ接続]→[新しい接続の作成] を実行すると、セットアップウィザードが起動されます。
  2. ネットワーク接続の種類では、 インターネット経由でプライベートネットワークに接続する にチェックを入れます。
  3. 接続先のアドレス は、VPN サーバである 2.2.2.2を入力します。
  4. 接続の利用範囲 は、このマシンは自分し か使わないのですが、なんとなく自分のみ にしました。
最後に名前をつけたら完了です。
完了すると、早速つなごうとします。

3. 動作確認

3.1 とりあえず失敗

で、ユーザ名とパスワードを入力しますと…つながりません。
実は、リモートセキュリティポリシーがデフォルトでは接続拒否になって いますので、変更する必要があります。
許可したいユーザが決まっているなら、ユーザのプロパティで、 ダイヤルイン タブの リモートアクセス許可 のところを、 アクセスを許可 に変更します。
でもユーザがたくさんいる場合は面倒です。とりあえずさくっと全部許可に するには、 [管理ツール]→[ルーティングとリモートアクセス] を起動し、リモートアクセスポリシーダイヤルインのアクセス許可が有効な場合、 アクセスを許可する のプロパティを開き、 ユーザが上の条件を満たした場合リモートアクセス許可を与える に変更します。
あるいは、新しいリモートアクセスポリシーを追加し、追加した方で許可 するのでも問題ないと思います。(ただし、追加した方の優先度が低いと拒否 されてしまいますが…。)

3.2 今度は成功

[設定]→[ネットワークとダイヤルアップ接続] にある、作成した VPN のアイコンを開いて、再度試みます。…今度はつながり ました。
ipconfig を実行すると、ちゃんとアドレスがとれています。
# 今回は、DHCP で割り当ててもらっています。

C:\> ipconfig

Windows 2000 IP Configuration

Ethernet adapter ローカル エリア接続:

        Connection-specific DNS Suffix  . : 
        IP Address. . . . . . . . . . . . : 1.1.1.1
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 1.1.1.254

PPP adapter usu-test:

        Connection-specific DNS Suffix  . : 
        IP Address. . . . . . . . . . . . : 10.0.0.240
        Subnet Mask . . . . . . . . . . . : 255.255.255.255
        Default Gateway . . . . . . . . . : 10.0.0.240

# ちなみに、VPN サーバも、DHCP から1つアドレスをもらっています。

ただ、これだとデフォルトルートが両方設定されてしまいます。
プロパティ→ネットワーク→インターネットプロトコル のプロパティを開き、詳細設定ボタンを押して、 全般タブの リモートネットワークでデフォルトゲートウェイを使う のチェックを外せば、VPN 側のデフォルトゲートウェイの設定がされなく なり、かちあうことがなくなります。

ちなみに、DHCP を使わずに、新規で全く異なるIPアドレスを割り当てるよう にしても、少なくとも VPN サーバまではつながりました。その先もつながる ようにするには、経路を追加する必要がありました。
# 192.168.0.2 というのは、VPN クライアントに割り当てられたアドレスです。

  C:\> route add 10.0.0.0 mask 255.255.255.0 192.168.0.2


4. おまけ

流れているパケットを tcpdump で覗いてみました。

  # tcpdump -n -x
  ...
  22:55:00.158559 eth0 > gre-proto-0x880B (gre encap)
                         4500 005b 821d 0000 802f 2d2c 0101 0101
                         0202 0202 3001 880b 003b 43e7 0000 003d
                         fdf0 2e5a da47 ef7f 1d29 35fa a79c 9ddd
                         dd70 25c5 1ccd 0437 ddf3 aa77 b0a2 4078
                         d167 2e2d 18d1 47d2 5b7a 6a07 e1e6 b95c
                         d7f1 292f 4b6a 2c94 ea90 d2

IPヘッダはさすがに普通です。
プロトコルのところ(9オクテット目)が、2fh になっています。
これは、GRE(Generic Routing Encapsulation)というもので、RFC1701 と RFC1702 で定められています。
20オクテット目から16オクテットが GRE のヘッダのようなのですが、そこ から先はさっぱりわかりません。

UDP か TCP のどこかのポートを使っていれば、VPN クライアントにグロー バルアドレスを持たせる必要がなくていいな(NAPT すればいいな)と思った のですが…甘かったです…。

Powered by Apache PostgreSQL Usupi Logo Kuri Logo
[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [-]
usu@usupi.org Last modified : Tue Sep 10 23:49:42 2002