LinuxでのSoftEther VPN ではブリッジ接続ではbridge deviceか別NICを準備したほうが良い。
ちょいと所用があり Raspberry Pi での Raspbian で SoftEther VPN Server を動かしている。 SoftEther VPN Server には raspbian/Debianに収録されている softether-vpnserver の debパッケージを apt でインストールして、設定は Windows11 上の SoftEther VPN 管理コンソールのアプリを使っている。 この構成で、NAT-Tや VPN Azureの構成などを行って、楽天モバイルのSIMとモバイルルータでインターネットに繋がるEthernetセグメントへ、外から入れるようにはなった。
しかし、IPv4の帰りのパケットが不完全だったり、SoftEther VPN Serverを動かす Raspberry Pi へ SSH できなかったりと、不具合が多すぎる。何なのだろうか。
SoftEther のマニュアルなどを探していたところ、ローカルブリッジの説明では、ローカルブリッジにはローカルブリッジ用LANカードを準備せよとか書いてある。特に、このような表現も有る。
物理的な LAN カードに対して入力された Ethernet フレームを、オペレーティングシステム内で TCP/IP プロトコルスタックへのフレームバッファと、ローカルブリッジを行うために入力する際に必要となるフレームバッファの 2 つに複製しなければならないので、CPU 時間およびメモリ負荷が発生し、通信速度が低速になります。
またローカルブリッジ用のLANと通常のIPアドレスを持ったEthernetポートを共用した場合の制約として、このような記述もあります。
Linux オペレーティングシステム内部での制限事項により、tap モードではないローカルブリッジでは、VPN 側 (仮想 HUB 側) からローカルブリッジしている LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。この制限は SoftEther VPN が原因ではなく、Linux の内部構造に原因があります。もし VPN 側 (仮想 HUB 側) から Linux でローカルブリッジに使用しているコンピュータ本体と、何らかの通信を行いたい場合 (たとえば VPN Server / VPN Bridge サービスと HTTP サーバーサービスを両方動作させており、VPN 側からもサーバーサービスにアクセスさせたい場合) は、ローカルブリッジ用の LAN カードを用意して接続し、その LAN カードと既存の LAN カードの両方を物理的に同じセグメントに接続してください (この他の場合においても 「3.6 ローカルブリッジ」 で解説したように、ローカルブリッジに使用する LAN カードはそのための単独のものを用意することが推奨されています)。
今回の、VPN接続した後にRaspiへSSHができない、という問題は、まさにコレかもしれないですね。
Raspiには通常1本のEthernetとWiFiが1系統あるだけだ。今回の構成だと1つのEthernetポートでリモートサイトのLANに繋がり、そこからモバイルルータ経由でインターネットと通信し、さらにこのリモートサイトのLANに外から接続したいわけだ。 物理的なLANは1本なのでEthernetポートも1個で間に合う。
で、他の皆様はどうやっているのか事例を調べたところ、br0 などのブリッジインターフェースを作る方法でやっていらっしゃるようだ。
コメント
コメントを投稿