初めまして。
現在SoftEtherの導入を検討し、評価を行っています。
L2TP/IPSecでのVPNを行った際に、サーバ側ではVPNクライアントPCに対して動的にMACアドレスを生成するかと思いますが、この割り当てのルールはあるのでしょうか?
いくつか試したところ、「CA:xx:xx:xx:xx:xx」となっているように見えますが、テストした際にはこのルールに該当しないものもあったように思ったのですが、再現しないため確信が持てません。
https://github.com/SoftEtherVPN/SoftEth ... on.c#L2340
では「0xCA」から始まるように読み取れます。(プログラムは得意ではないです。)
質問としては以下です。
1)調べた内容での理解では、SoftEtherを利用してクライアントのMAC固定にするには
・ SoftEther VPN Clientを使う(仮想I/Fの初期値は、00:AC:xx:xx:xx:xx)
・ OpenVPNをTAPモードで使う
であり、
L2TP/IPSec、OpenVPN(TAPモード以外)、MS-SSTPは動的にMACアドレスが決まる。
という認識はあってますでしょうか?
2)この「動的にクライアントのMACが決まる」ケースはすべて「Session.c」の「// Generate a MAC address for IPC」の箇所の動作となるのでしょうか?L2TP/IPSecについても。
参考にした投稿
viewtopic.php?t=8743
viewtopic.php?f=7&t=60085&p=78037&hilit=MAC#p78037
よろしくお願いいたします。
L2TP/IPSec利用時のクライアントMACアドレスについて
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: L2TP/IPSec利用時のクライアントMACアドレスについて
はい。
そのような認識で正しいと思います。
MAC アドレスを固定するには、その部分のロジックを変更する方法もあります。
例えば、同じユーザー名のクライアントが同時に接続しないことを運用で保証する前提であれば、ユーザー名が同じ場合には同じMACアドレスが生成されるように変更することも可能です。
Format(tmp, sizeof(tmp), "%s@%s@%u", machine, h->Name, s->user_name_upper);
そのような認識で正しいと思います。
MAC アドレスを固定するには、その部分のロジックを変更する方法もあります。
例えば、同じユーザー名のクライアントが同時に接続しないことを運用で保証する前提であれば、ユーザー名が同じ場合には同じMACアドレスが生成されるように変更することも可能です。
Format(tmp, sizeof(tmp), "%s@%s@%u", machine, h->Name, s->user_name_upper);
-
- Posts: 6
- Joined: Thu Apr 19, 2018 6:12 am
Re: L2TP/IPSec利用時のクライアントMACアドレスについて
ご返信ありがとうございます。
MACアドレスが、からなず「CA」から始まるというのは一つ嬉しい情報でした。
また、MAC固定のロジックも御呈示ありがとうございます。実際に試してみたところ「s->user_name_upper」だとmake時にエラーとなったので、「user_name_upper」にするのと同時に、フォーマットを「%s@%s@%s」として試してみました。
Format(tmp, sizeof(tmp), "%s@%s@%s", machine, h->Name, user_name_upper);
結果、ユーザIDが同じであれば同一MACが払い出されることが確認できました。
しかし、同じユーザーIDを利用して別のクライアントから行っても同一のMACアドレスとなりました。
上記ロジックでは、「machine」(マシン名?)があるのでホスト名の違うクライアントの場合MACも変わると思っていたのですが違うのでしょうか?
(machineがクライアント名ではないのでしょうか・・)
たびたび恐縮ですが、よろしくお願いいたします。
MACアドレスが、からなず「CA」から始まるというのは一つ嬉しい情報でした。
また、MAC固定のロジックも御呈示ありがとうございます。実際に試してみたところ「s->user_name_upper」だとmake時にエラーとなったので、「user_name_upper」にするのと同時に、フォーマットを「%s@%s@%s」として試してみました。
Format(tmp, sizeof(tmp), "%s@%s@%s", machine, h->Name, user_name_upper);
結果、ユーザIDが同じであれば同一MACが払い出されることが確認できました。
しかし、同じユーザーIDを利用して別のクライアントから行っても同一のMACアドレスとなりました。
上記ロジックでは、「machine」(マシン名?)があるのでホスト名の違うクライアントの場合MACも変わると思っていたのですが違うのでしょうか?
(machineがクライアント名ではないのでしょうか・・)
たびたび恐縮ですが、よろしくお願いいたします。
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: L2TP/IPSec利用時のクライアントMACアドレスについて
machineはVPNサーバーのホスト名のことです。
これを含めることでクラスタモードで動作している時に、MACアドレスが重ならないようにしています。
L2TP では、クライアントはホスト名を送ってこないため、クライアント自体を識別することはできません。
これを含めることでクラスタモードで動作している時に、MACアドレスが重ならないようにしています。
L2TP では、クライアントはホスト名を送ってこないため、クライアント自体を識別することはできません。
-
- Posts: 6
- Joined: Thu Apr 19, 2018 6:12 am
Re: L2TP/IPSec利用時のクライアントMACアドレスについて
ご返信ありがとうございます。
>machineはVPNサーバーのホスト名のことです。
このため、ハッシュ値が変わらなくなってしまうため同時ユーザIDでの複数接続がダメということですね。
試したところ、サーバから見るとセッションが一つに見えおかしい状態でした。
本方式のMAC固定ですが、最終的には有償版(Packetix)を利用する予定ですのでそちらで行うには、サーバソフト側でオプションサポート等を行っていただかないと難しそうですね。
DHCPでMAC固定払い出しを行っているのですが、先頭の「CA」だけ見て払い出しを行うことを検討したいと思います。
ありがとうございました。
>machineはVPNサーバーのホスト名のことです。
このため、ハッシュ値が変わらなくなってしまうため同時ユーザIDでの複数接続がダメということですね。
試したところ、サーバから見るとセッションが一つに見えおかしい状態でした。
本方式のMAC固定ですが、最終的には有償版(Packetix)を利用する予定ですのでそちらで行うには、サーバソフト側でオプションサポート等を行っていただかないと難しそうですね。
DHCPでMAC固定払い出しを行っているのですが、先頭の「CA」だけ見て払い出しを行うことを検討したいと思います。
ありがとうございました。