2NIC+SecureNATでの内部LAN通信

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Wed Jan 03, 2024 7:05 am

2NICを持ったサーバーで
 NIC1:WAN側(デフォルトGWあり)
 NIC2:LAN側(デフォルトGWなし)
といった構成で、WAN側でVPN着信した通信をLAN側へ通信させたいと考えています。
その際、LAN内のDHCPが使用できないためSecureNAT(NAT、DHCP)を使用します。

 [Internet/WAN]---[NIC1]-[SecureNAT]-[NIC2]---[LAN(DHCPなし)]

諸事情により、既存のWAN回線は使えないため、本構成はVPN着信専用のWAN回線です。
※LANのみ既存LANに結線

クライアントからは、SecureNATよりDHCP配布を受け、IPを取得してVPN接続までは
問題なくできています。

しかし、LAN内へping到達できません。(NIC2にIP振った場合も含め、その先も)
tracertをかけると、LAN内への通信はNIC1(デフォルトGWあり)側へ向いてしまっています。

そもそも、SecureNATのNAT後の通信先は上記のNIC1、NIC2のいずれが、どのような条件で選定
されるのでしょうか。(デフォルトGWあり、が優先?)

SecureNATのNAT後の通信先をNIC2に向け(?)、NIC1で着信したVPN接続をもって、NIC2より先の
LAN内と通信させることは可能でしょうか。

ちなみに、SecureNATを使わずVPN着信する仮想HUBをNIC2とローカルブリッジし、
LAN内の既設DHCPサーバーからIP配布を受ければ、LAN内は自由に通信できています。
(この状態でSecureNAT有効化するとLAN内と通信できなくなる、というのか本件の
 不具合自事象です)

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: 2NIC+SecureNATでの内部LAN通信

Post by cedar » Thu Jan 04, 2024 11:10 am

SecureNAT をユーザーモードで動作させることで、VPN サーバーの動作している OS のルーティング機能を利用できるので目的を達成できると思います。

https://ja.softether.org/4-docs/3-kb/VPNFAQ036

paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

Re: 2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Thu Jan 04, 2024 4:01 pm

cedar様、ご無沙汰しております。

ご返信いただいた内容はまだ試せていないのですが、先にたまたま別の方法で解決したように
見えたので見解を教示ください。

 [Internet/WAN]---[NIC1]-[SecureNAT]-[NIC2]---[LAN(DHCPなし)]

NIC1よりWAN側のルーターのDHCPに、SecureNATらしきものの配布履歴があったので、DHCPを
停止させたところ、要望どおりの通信が叶いました。

NIC1・NIC2各々が接続されているネットワークにDHCPが存在している場合、SecureNATは
どのような基準でDHCPを選定するか分かりませんが、WAN側ルーターのDHCPを停止した後、
試しにLAN側のDHCPを稼動させたら、SecureNATはそちらからIPを取得しているようでした。

このような状態で、要望の通信が出来ていたのですが、実際はLAN側のDHCPは停止させて
おく必要があったため、DHCPを停止させたところ、引き続き問題なく通信できています。

SecureNAT自体がWAN(NIC1側)/LAN(NIC2側)いずれかからDHCPでIPを取得する必要があるのか、
なぜ取得するのか、なくても動作に問題が無いのか、メカニズムを理解できずに結果だけ上手く
いっているように見えるので釈然としません。(たまたま上手く通信できているだけかも知れない?)

もしかすると、上記の動きを明示的に指定するのが、ユーザーモードで動作させることと
同義なのでしょうか。

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: 2NIC+SecureNATでの内部LAN通信

Post by cedar » Thu Jan 04, 2024 10:28 pm

はい、そのあたりも先程のURLに書かれています。

paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

Re: 2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Fri Jan 05, 2024 2:40 am

ご報告です。


 [Internet/WAN]---[NIC1]-[SecureNAT]-[NIC2]---[LAN(DHCPなし)]

SecureNATをユーザーモードに固定したら、NIC1側・NIC2側いずれにもDHCP有無にかかわらず
目的の通信を実現できました。ありがとうございます。

URL先の文書を読んでも理解できない部分があったので、後学のため以下について教授いただけると
幸いです。

1.NIC1側またはNIC2側にDHCPが存在する場合、なぜSecureNATはIPを取得するのか。
  DHCPでIP取得できない場合のデメリットや問題はないのか。
  
2.両端にDHCPが存在する場合、どちらからIP取得するかは、何か条件があるのか。
  (文書からはインターネット疎通ができる方が優先、と読み取れますが・・・?)
  
3.SecureNATは、DHCPが存在せずIPを取得できなくても動作に差し支えがないようだが、
  SoftetherとOSの境界線(SecureNATの外側)のIPはどのような値を使用しているか。
  (NATの名の通り、何かしらのIPを使っていると思われるが・・・?)

4.SecureNATがユーザーモードで動作時、2NICある場合、どのような条件でデフォルトルートを
  Internet側NICに選定しているのか。誤って、Internetに疎通しないLAN側のNICにパケット送出
  することはないのか。

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: 2NIC+SecureNATでの内部LAN通信

Post by cedar » Fri Jan 05, 2024 4:16 am

1. ユーザーモード SecureNAT は最初に実装されたのですが、ストリームの再構築や OS とのやり取りが必要で、非常に動作が遅いので、VPN Server 自身が NAT 処理を行うカーネルモードが後から追加されました。これには、NAT 自身が IP アドレスを持つ必要があるため、DHCP で IP アドレスを取得します。また、処理の簡素化のため、接続できる NIC は 1 つだけとなります。(カーネルモードと名前がついていますが、カーネルは関係ありません。)

2.本来はインターネット接続の共有が目的のため、インターネット接続がある方を優先します。

3.ユーザーモード NAT は、NAT ではなく透過型プロキシとして動作し、WAN 側の通信は OS の通信スタックを利用し、OS の持つ IP アドレスで通信します。このため SecureNAT 自身は WAN 側の IP アドレスを別個に持ちません。

4. ユーザーモード NAT では、ルーティングは OS が行います。OS が到達できるネットワークであれば、いずれも利用できます。

なお、RawIP モードでは、カーネルモードのように VPN Server 自身で NAT 処理を行いますが、WAN 側で OS の通信スタックの途中に割り込んでパケットを奪うようになっているため、別個の IP アドレスを使用する必要がありません。ただ、このモードでもインターネット疎通ができる NIC が優先されてしまうため、LAN との通信には適しません。

paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

Re: 2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Fri Jan 05, 2024 4:42 am

詳細な解説、ありがとうございます。

ユーザーモードでは透過型プロキシとして動作、ということで合点がいきました。

SecureNAT、または動作モードに関連しているかも知れないので追加で教えてください。

クライアントはMS-SSTPを使用してVPN着信させ、スプリットトンネルで社内LANリソース向けのみ
トンネリングさせ、他の広帯域通信はクライアントのネット環境から利用させたいと思っています。
※スプリットトンネル:Windowsの「リモートネットワークでデフォルトGWをつかう」のチェック無効

SecureNATを使わず、VPN着信する仮想HUBを社内LAN側NICにローカルブリッジさせる構成の場合は
想定どおりの通信が出来ています。(一時的に社内LANのDHCP稼働)

ところが、SecureNATを使う構成の場合、クライアントは同じ設定でも、VPNトンネルは確立している
ものの、すべての通信がクライアントのネット環境がデフォルトルートになってしまっています。(VPNトンネルが使われない)

 [Internet/WAN]---[NIC1]-[SecureNAT]-[NIC2]---[LAN(DHCPなし)]

の構成の場合、スプリットトンネルではクライアントまたはSoftetherサーバーで別途の設定が
必要なのでしょうか。

追記:VPN着信にはVPN Azureを使用しています。

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: 2NIC+SecureNATでの内部LAN通信

Post by cedar » Fri Jan 05, 2024 6:14 am

Windows の VPN クライアントの動作については不明ですが、SecureNAT の DHCP サーバー機能で、必要な経路だけプッシュし、デフォルトゲートウェイの情報を配布しないようにしてみてはいかがでしょうか。

paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

Re: 2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Fri Jan 05, 2024 7:15 am

設定を試みたところ、「この機能はオープンソース版SoftEther VPNにはまだ実装されていません」と
アラートが出ます。PaketiX VPNでないとダメでしょうか。

現在はSoftEtherのバージョンVer4.42, Build 9798です。

リリースノートには4.06 Build 9430 (Beta)がPacketiXと連名になっているもの、PaketiXのみと
記載がありますが、SoftEtherでは実装されていないのでしょうか。

PaketiXを導入し、必要な経路をプッシュする際のゲートウェイはSecureNATの仮想ホストIP
(既定値:192.168.30.1)を指定すれば良いのでしょうか。

また、VPNクライアントにSoftEther VPNクライアントを使用した場合、スプリットトンネルを
実現する方法はありますでしょうか。

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: 2NIC+SecureNATでの内部LAN通信

Post by cedar » Fri Jan 05, 2024 9:11 am

未実装の機能でしたか。すみません。
PacketiX VPN 4.0 に切り替える手もありますが、カスケード接続できるようにすると結構かかります。

Windows 内蔵の代わりに SoftEther VPN Client を使用すれば、通常の LAN カードと同様に IP アドレスやルーティングは手動で設定できますので、そちらを先に試してみるのが良いかも知れません。

paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

Re: 2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Fri Jan 05, 2024 9:32 am

『カスケード接続できるようにすると結構かかります』とは、どのようなことを意味して
おられますでしょうか。理解が追いついていないため、教授いただけると幸いです。


また、『通常の LAN カードと同様に IP アドレスやルーティングは手動で設定できます』
というのは、SoftEther VPN Clientで接続情報を作成する際、生成・指定が必要となる仮想NICに対して
行うことを指していますでしょうか。

NICへのIPアドレスの設定はさておき、ルーティング手動設定は「route add」を指して(I/F指定)
おられますでしょうか。

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: 2NIC+SecureNATでの内部LAN通信

Post by cedar » Fri Jan 05, 2024 10:12 am

カスケード接続に対応したライセンスは 4 万円以上するので、ちょっと手が出ないなぁ、と思っていました。

https://www.softether.jp/1-product/11-v ... ce/2-price

IP アドレスとルーティングの設定についてはその通りです。
route add -p で永続的に経路を追加することも可能のようです。

paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

Re: 2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Fri Jan 05, 2024 10:43 am

仰るとおり、そこそこの金額がするので出来れば無償版でどこまで実現できるかを
追求したいと考えています。

『カスケード接続に対応したライセンス』とありますが、本構成ではカスケードは
使用していない認識ですが、PaketiXを導入した際はこちらが必要となるのでしょうか。

なお、本件では利用者リテラシーに期待できず、せいぜいVPNクライアントの設定
(接続先とID/パスワード程度)しか出来ないと想定しています。

そのため、IPやルーティングの手動設定は現実的ではないため、SecureNATに
経路情報のプッシュが実装されることを期待したいと思います。
(スプリットトンネルはしばらくお預けですね)

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: 2NIC+SecureNATでの内部LAN通信

Post by cedar » Fri Jan 05, 2024 11:12 am

すいません。カスケード接続に関するトピックと混同していたようです。
SSTP や VPN クライアントからの接続 2 件までであれば Home Edition でも対応できそうです。
しかし、現状で原因がわからないため、それで問題が解決するかどうかは分かりません。

SecureNAT の DHCP 機能を使用せず、別途、静的経路の設定に対応した DHCP サーバーを設置する方法も考えられますが、これもやや面倒ではあります。

ローカルブリッジを設定したくないのは、LAN に DHCP を置きたくないためでしょうか?

paopaocafe2
Posts: 32
Joined: Sun Aug 08, 2021 2:25 pm

Re: 2NIC+SecureNATでの内部LAN通信

Post by paopaocafe2 » Fri Jan 05, 2024 11:45 am

ローカルブリッジする構成かつLAN内にDHCPがあれば、本論であった2NICによる
WAN側VPN着信→LAN内通信も実現できますし、スプリットトンネルも出来ます。

しかし、設置先の環境が常時一定とは限らず、DHCP運用がある日突然取りやめに
なったり、そもそも固定IP運用でDHCPが存在しないこともあります。

このような事情でLAN内のDHCPの有無に左右されないよう、SecureNAT採用によって
同等の通信を実現しようと追求していた次第です。

SecureNAT採用(LAN内のDHCPに期待しない)の構成において、クライアントにroute addで
経路を追加したらスプリットトンネルが出来ました。
(利用者にはお願い出来ないので、これを自動化する必要があるですが…)
よって、SoftEther未実装の経路情報プッシュがあれば万事解決かと推察しています。

現時点ではフルトンネルであれば、SecureNATでもローカルブリッジでも本論は
実現可能、スプリットトンネルはローカルブリッジの場合のみ実現可能、ということに
なりますね。

SecureNATの場合、スプリットトンネルは技術的には可能でも、運用上は不可(困難)という
結論になりそうです。。。

Post Reply