DHCP取得に失敗する/L3スイッチ経由の通信に失敗

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
nison
Posts: 2
Joined: Mon Jan 04, 2021 1:29 pm

DHCP取得に失敗する/L3スイッチ経由の通信に失敗

Post by nison » Mon Jan 04, 2021 2:40 pm

【困っていること】
1. DHCP取得が成功する拠点・失敗する拠点があります。

(下記の構成で、拠点AのVPNに接続すると、DHCPによるIPアドレスの取得に失敗します。また、拠点BのVPNにおいて、拠点AのVPNとカスケード接続している仮想HUBに接続しても、同様の現象が発生します。)

2. L3スイッチ経由の通信が、一部のみ失敗します。
(拠点B及び拠点Cから、拠点Aにあるサーバー 192.168.2.100上で動作するHTTP等サービスへの接続はできるが、拠点Aから、拠点B/Cにあるサーバー192.168.120.2や192.168.121.205上で動作するHTTP等サービスへの接続ができません。また、拠点B及び拠点Cから、192.168.2.0/24上の192.168.2.100以外のサーバへの通信ができません。)

- 拠点A上での実行

Code: Select all

[root@localhost ~]# curl "http://192.168.121.205:xxxx"
curl: (7) Failed connect to 192.168.121.205:xxxx; ホストへの経路がありません
- 拠点B上での実行

Code: Select all

[root@localhost network-scripts]# curl 192.168.2.100:xxxx
<!DOCTYPE html>
(以下省略)

Code: Select all

[root@localhost network-scripts]# curl 192.168.2.15
curl: (7) Failed connect to 192.168.2.15:80; ホストへの経路がありません
【気がかりな点】
pingはすべてのホスト宛に届きますが、tracerouteでは!Xが表示されます。

【構成】
現在、2拠点においてSoftEtherサーバを運用しています。
また、別の人が管理するSoftEtherサーバ(拠点C)とカスケード接続しています。
この3拠点間の通信を、SoftEtherの仮想L3スイッチで中継しています。

- 3拠点共通
ルーター:RTX1200
DHCPサーバ:RTX1200で動作

- 拠点A
IPアドレス:192.168.2.0/24
DHCP配布範囲:192.168.2.10-192.168.2.99/24
L3スイッチ:192.168.2.2
SoftEtherサーバ:192.168.2.100 CentOS7 物理マシン
外部への接続方法: 192.168.2.100 -> PPPoE 動的グローバルIP、それ以外のIPv4->DS-Lite、IPv6->transix
静的ルーティング(RTX1200):

Code: Select all

192.168.120.0/24	192.168.2.2
192.168.121.0/24	192.168.2.2
- 拠点B
IPアドレス:192.168.120.0/24
DHCP配布範囲:192.168.120.10-192.168.120.191/24
L3スイッチ:192.168.120.6
SoftEtherサーバ:192.168.120.2 Hyper-V仮想マシン
外部への接続方法: IPv4-> IPv4 over IPv6の固定IP、IPv6->transix
静的ルーティング(RTX1200):

Code: Select all

192.168.2.0/24		192.168.120.6
192.168.121.0/24	192.168.120.6
- 拠点C
IPアドレス:192.168.121.0/24
DHCP配布範囲:192.168.121.2-192.168.121.63/24
L3スイッチ:192.168.121.195
SoftEtherサーバ:192.168.121.205 仮想マシン(恐らくESXiだったかと思います)
外部への接続方法: IPv4->PPPoE 動的グローバルIP、IPv6->なし
静的ルーティング(RTX1200):

Code: Select all

192.168.2.0/24		192.168.121.195
192.168.120.0/24	192.168.121.195
- 拠点間の接続
拠点B上の仮想HUBを3つ用意し、そのうちの2つがそれぞれ拠点A,Cの仮想HUBに接続しています。
拠点B->拠点AはIPv6、拠点B->拠点CはIPv4で、それぞれsoftether.netのDDNS名で接続しています。
仮想HUBは拠点B上のSoftEtherサーバで設定しています。

- ローカルブリッジの設定
拠点AおよびBでは、tapデバイスにローカルブリッジしています。
tapデバイスはNICとブリッジしており、IPアドレスはブリッジ(br0)に対して設定しています。
拠点Cでの設定は不明です。(調査中)
拠点A:

Code: Select all

bridge name     bridge id               STP enabled     interfaces
br0             xxxx.xxxxxxxxxxx       no              enp2s0
                                                        tap_tap1
拠点B:

Code: Select all

bridge name     bridge id               STP enabled     interfaces
br0             xxxx.xxxxxxxxxxx       no              eth0
                                                        tap_tap1

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

Re: DHCP取得に失敗する/L3スイッチ経由の通信に失敗

Post by cedar » Tue Jan 05, 2021 10:30 am

ESXi では、デフォルトではプロミスキャスモードが無効になっていたと思います。
ブリッジを行う場合は、設定が必要かもしれません。

https://kb.vmware.com/s/article/1004099?lang=ja

nison
Posts: 2
Joined: Mon Jan 04, 2021 1:29 pm

Re: DHCP取得に失敗する/L3スイッチ経由の通信に失敗

Post by nison » Wed May 25, 2022 3:08 am

自己解決したので、その内容を記しておきます…

端的に表現しますと「NICは2つ必要」ということになりそうです。

SoftEtherサイト内のマニュアルには下記の記述があります。
https://ja.softether.org/4-docs/1-manual/3/3.6
Linux オペレーティングシステム内部での制限事項により、VPN 側 (仮想 HUB 側) からローカルブリッジしている LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。この制限は SoftEther VPN が原因ではなく、Linux の内部構造に原因があります。もし VPN 側 (仮想 HUB 側) から Linux でローカルブリッジに使用しているコンピュータ本体と、何らかの通信を行いたい場合 (たとえば VPN Server / VPN Bridge サービスと HTTP サーバーサービスを両方動作させており、VPN 側からもサーバーサービスにアクセスさせたい場合) は、ローカルブリッジ用の LAN カードを用意して接続し、その LAN カードと既存の LAN カードの両方を物理的に同じセグメントに接続してください (この他の場合においても 「3.6 ローカルブリッジ」 で解説したように、ローカルブリッジに使用する LAN カードはそのための単独のものを用意することが推奨されています)。
⇒しかし実際には真逆の現象が発生していました。本件でいう「拠点A」で、「ローカルブリッジしているLANカードに割り当てられるIP」(=192.168.2.100)以外との通信ができない状況でした。

下記拠点Bについてですが、仮想NICを追加・ローカルブリッジ先は新たに追加した仮想NICに設定。
(このNICはIPアドレスを0.0.0.0に設定)

同様に拠点Aですが、こちらは仮想化していないため、NICを追加購入・取付し、IPを持たないNICとしてローカルブリッジを設定しました。

このような設定により、無事通信ができるようになっています。

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

Re: DHCP取得に失敗する/L3スイッチ経由の通信に失敗

Post by cedar » Wed May 25, 2022 4:35 am

その部分は、マニュアルが説明不足ですね。
Linux 環境では、既存のイーサネットデバイスにローカルブリッジした場合、他のホストだけと通信ができ、ローカルブリッジ用の tap デバイスを生成した場合は、ホスト自身だけと通信できる状態になります。
後者はホスト外と通信しないのでプロミスキャスモードを要求しないというメリットがあります。

Post Reply