質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • Raspberry Pi

    714questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • ネットワーク

    501questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

  • Raspbian

    76questions

  • ルーティング

    46questions

    ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

  • OpenVPN

    4questions

OpenVPNでLAN間接続がうまくいかない。

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 420

wyonaha478

score 10

 前提・実現したいこと

Raspberry Pi3 Model B同士でOpenVPNを用いたLAN間接続。

 トポロジ図(抜粋)

トポロジ図

接続構成としては、Site AにあるRaspberry PiがOpenVPNのサーバとなっており、
Site BにあるRaspberry Piがクライアントになっております。
Site Aのルータ(Cisco 841M)には、あらかじめ以下のように、192.168.5.0へのルーティングが入っています。

ip route 192.168.5.0 255.255.255.0 192.168.0.yyy


Site B側は諸事情でルータではなく、端末にroute addで追加しています。

route add 192.168.0.0 mask 255.255.255.0 192.168.5.yyy

 該当のソースコード

server.conf

port 1194
proto udp
dev tun

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.0.0 255.255.255.0"

keepalive 10 120

cipher AES-256-CBC

comp-lzo

user nobody
group nogroup

persist-key
persist-tun

status /var/log/openvpn-status.log

log /var/log/openvpn.log
log-append /var/log/openvpn.log

verb 3

explicit-exit-notify 1


client.conf

client

dev tun

proto udp

remote xxx.xxx.xxx.xxx nnnn

resolv-retry infinite

nobind

user nobody
group nogroup

persist-key
persist-tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/client.crt
key /etc/openvpn/client.key

remote-cert-tls server

ns-cert-type server

cipher AES-256-CBC

comp-lzo

verb 3


ipp.txt

client,10.8.0.6


サーバ側のルーティングテーブル

カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
default         gateway         0.0.0.0         UG    202    0        0 eth0
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.0.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0


クライアント側のルーティングテーブル

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.5.1     0.0.0.0         UG    202    0        0 eth0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.0.0     10.8.0.5        255.255.255.0   UG    0      0        0 tun0
192.168.5.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0


気になることとしては、以下があります。
(1)サーバ側にクライアントへ渡すルートがないため、手動で登録しようとしてもDestination Unreachableになること。
(2)クライアント側のルーティングテーブルに見覚えのない10.8.0.5がゲートウェイとして登録されている。
ちなみに、消して正しいルートを入れようとしても(1)同様にDestination Unreachableで登録できませんでした。
※(2)については、10.8.0.5へはPINGは通りませんでした。

IPアドレスとしてはサーバ側が10.8.0.1でクライアント側が10.8.0.6になります。

 試したこと

サーバ側とクライアント側にルートを追加したが、Destination Unreachableになる。
しかし、正しいIPへのPINGが正常に通る。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

VPNはネットワーク接続しているサーバと端末との間で、仮想的なネットワークを作成する仕組みです。なので、192.168.5.yyyから192.168.0.yyyへのネットワーク接続はできることが前提になりますが、質問の記述内容からは、VPNを使用して192.168.5.0/24と192.168.0.0.0/24のネットワークを接続しようとしているように見受けられます。

192.168.5.yyyから192.168.0.yyyへのネットワーク接続が出来る状態の場合、10.8.0.0/24のプライベートネットワークが構築されます。

+----------------+    +-----------------+
|  192.168.0.yyy |----| 192.168.5.yyy   |
|                |    |                 |
|  +----------+  |    |  +----------+   |
|  | 10.8.0.1 |----------| 10.8.0.6 |   |
|  +----------+  |    |  +----------+   |
+----------------+    +-----------------+

ルーティング情報はそれぞれ以下の通り。(proto kernelはカーネルが自動生成するルート)

# VPNサーバ
$ ip route
default via 192.168.0.1 dev eth0 proto static metric 100
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
192.168.0.0/23 dev eth0 proto kernel scope link src 192.168.0.yyy metric 100
# VPNクライアント
$ ip r
default via 192.168.5.1 dev eth0 onlink
10.8.0.1 via 10.8.0.5 dev tun0
10.8.0.5 dev tun0  proto kernel  scope link  src 10.8.0.6
192.168.5.0/24 dev eth0  proto kernel  scope link  src 192.168.5.yyy

10.8.0.2、10.8.0.5 は仮想ネットワークのネットワークアドレスとして設定されているようで、OpenVPNが設定するデフォルト値のようです。

【参考】

VPNが正常に接続できてる状態のログです。

 VPNサーバ側ログ(CentOS 7)

$ grep vpn /var/log/messages | tail -n 20 | sed -r 's/(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/***.***.***.***/g' | sed -r 's/www[0-9]{5}[a-z]{2}/********/g'
Apr 29 08:42:53 ******** openvpn: Sun Apr 29 08:42:53 2018 client/***.***.***.***:34457 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 08:42:53 ******** openvpn: Sun Apr 29 08:42:53 2018 client/***.***.***.***:34457 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 08:42:53 ******** openvpn: Sun Apr 29 08:42:53 2018 client/***.***.***.***:34457 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384,
4096 bit RSA
Apr 29 09:42:53 ******** openvpn: Sun Apr 29 09:42:53 2018 client/***.***.***.***:34457 TLS: soft reset sec=0 bytes=37202/0 pkts=708/0
Apr 29 09:42:54 ******** openvpn: Sun Apr 29 09:42:54 2018 client/***.***.***.***:34457 VERIFY OK: depth=1, CN=********.sakura.ne.jp
Apr 29 09:42:54 ******** openvpn: Sun Apr 29 09:42:54 2018 client/***.***.***.***:34457 VERIFY OK: depth=0, CN=client
Apr 29 09:42:54 ******** openvpn: Sun Apr 29 09:42:54 2018 client/***.***.***.***:34457 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 09:42:54 ******** openvpn: Sun Apr 29 09:42:54 2018 client/***.***.***.***:34457 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 09:42:54 ******** openvpn: Sun Apr 29 09:42:54 2018 client/***.***.***.***:34457 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 09:42:54 ******** openvpn: Sun Apr 29 09:42:54 2018 client/***.***.***.***:34457 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 09:42:54 ******** openvpn: Sun Apr 29 09:42:54 2018 client/***.***.***.***:34457 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384,
4096 bit RSA
Apr 29 10:32:52 ******** yum[26376]: Updated: openvpn-2.4.5-1.el7.x86_64
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 TLS: soft reset sec=0 bytes=37097/0 pkts=706/0
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 VERIFY OK: depth=1, CN=********.sakura.ne.jp
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 VERIFY OK: depth=0, CN=client
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 10:42:54 ******** openvpn: Sun Apr 29 10:42:54 2018 client/***.***.***.***:34457 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384,
4096 bit RSA

 VPNクライアント側ログ(Ubuntu 16.04)

$ grep vpn /var/log/syslog | tail -n 20 | sed -r 's/(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/***.***.***.***/g' | sed -r 's/www[0-9]{5}[a-z]{2}/********/g'
Apr 29 09:42:54 brix ovpn-client[1150]: VERIFY OK: nsCertType=SERVER
Apr 29 09:42:54 brix ovpn-client[1150]: VERIFY OK: depth=0, CN=server
Apr 29 09:42:54 brix ovpn-client[1150]: Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 09:42:54 brix ovpn-client[1150]: WARNING: this cipher's block size is less than 128 bit (64 bit).  Consider using a --cipher with a larger block size.
Apr 29 09:42:54 brix ovpn-client[1150]: Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 09:42:54 brix ovpn-client[1150]: Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 09:42:54 brix ovpn-client[1150]: WARNING: this cipher's block size is less than 128 bit (64 bit).  Consider using a --cipher with a larger block size.
Apr 29 09:42:54 brix ovpn-client[1150]: Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 09:42:54 brix ovpn-client[1150]: Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 4096 bit RSA
Apr 29 10:42:53 brix ovpn-client[1150]: TLS: tls_process: killed expiring key
Apr 29 10:42:54 brix ovpn-client[1150]: VERIFY OK: depth=1, CN=********.sakura.ne.jp
Apr 29 10:42:54 brix ovpn-client[1150]: VERIFY OK: nsCertType=SERVER
Apr 29 10:42:54 brix ovpn-client[1150]: VERIFY OK: depth=0, CN=server
Apr 29 10:42:54 brix ovpn-client[1150]: Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 10:42:54 brix ovpn-client[1150]: WARNING: this cipher's block size is less than 128 bit (64 bit).  Consider using a --cipher with a larger block size.
Apr 29 10:42:54 brix ovpn-client[1150]: Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 10:42:54 brix ovpn-client[1150]: Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Apr 29 10:42:54 brix ovpn-client[1150]: WARNING: this cipher's block size is less than 128 bit (64 bit).  Consider using a --cipher with a larger block size.
Apr 29 10:42:54 brix ovpn-client[1150]: Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Apr 29 10:42:54 brix ovpn-client[1150]: Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 4096 bit RSA

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/25 10:55

    tkmtmkt 様
    ご回答有り難うございます。

    10.8.0.2と10.8.0.5についてはこちらとして想定していないアドレスで、OpenVPNが入っているRaspberry Pi同士でもpingが疎通できない状態です。
    質問に記載しているのですが、10.8.0.1がホストで10.8.0.6がクライアントとなります。
    上記のような.2と.5の設定をした覚えがないため、設定場所の情報などあったりしますでしょうか。

    知識が乏しい中での質問ですが、どうかご容赦ください。

    キャンセル

  • 2018/04/27 01:25

    IPアドレスの記述間違えていたので修正しました。
    10.8.0.2と10.8.0.5はOpenVPNが作成しているネットワークアドレスのようです。
    設定を行わない場合のデフォルト値が10.8.0.2と10.8.0.5になっているようです。

    キャンセル

  • 2018/04/29 00:08

    この設定を10.8.0.1と10.8.0.6にする設定などあるのでしょうか。
    調べてみたのですが、どうも探し方が悪いのか見当たらないです…。

    キャンセル

  • 2018/04/29 11:21

    VPNの設定に問題があると考えておられるようですが、回答欄に示したルーティング情報は正常に接続できている状態のものです。接続できない原因の調査はまずログを見てみたほうが良いです。

    回答欄の最初に書いていますが、質問欄にある環境でRaspberry PiのVPN接続を行うためには192.168.0.yyy~192.168.5.yyyが接続できていなければなりません(SiteAとSiteBのルータ間でVPNが構築されていること)。

    質問欄の図からServer(Linux)とClient(Windows)を接続するために、Raspberry PiでVPN構築しようと考えているように推察されますが、そのような接続を行いたいのであれば、サーバ側のRaspberry PiのVPNポートをルータの設定変更してインターネット上に公開し、クライアント側からはインターネット上に公開したポートに接続するように設定する必要があります。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Raspberry Pi

    714questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

  • ネットワーク

    501questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

  • Raspbian

    76questions

  • ルーティング

    46questions

    ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

  • OpenVPN

    4questions