モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

目次目次を開く/閉じる

AWS で VPC を VPN 接続するための VyOS 設定例

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2017/04/09
最終更新最終更新
2019/07/15
記事区分記事区分
一般公開

目次

    インフラ構築と自動化が得意。TerraformとAnsibleでインフラを自動構築するお仕事が多め

    VyOS を AWS EC2 インスタンスで動作させ、異なる二つの VPC を VPN 接続してみます。簡単な構成であれば、VPC Peering という AWS が提供する機能を用いても実現できますが、AWS 以外のデータセンターとの接続が必要な場合など、VyOS を用いると要求に柔軟に対応できます。

    VPC の設定

    • myvpc-1 (10.1.0.0/16)
      • mysubnet-1 (10.1.1.0/24)
        • vyos-0001 (10.1.1.4, EIP xxx.xxx.xxx.xxx)
    • myvpc-2 (10.2.0.0/16)
      • mysubnet-2 (10.2.1.0/24)
        • vyos-0002 (10.2.1.4, EIP yyy.yyy.yyy.yyy)

    ルーティングテーブル

    myvpc-1

    • 0.0.0.0/0 → インターネットゲートウェイ
    • 10.0.0.0/8 → vyos-0001
    • 10.1.0.0/16 → local

    myvpc-2

    • 0.0.0.0/0 → インターネットゲートウェイ
    • 10.0.0.0/8 → vyos-0002
    • 10.2.0.0/16 → local

    セキュリティグループ

    以下の接続を許可します。検証用ですので簡単のため 0.0.0.0/0 としています。セキュリティ上は好ましくありません。

    • TCP 22 from 0.0.0.0/0 (SSH)
    • UDP 1194 from 0.0.0.0/0 (OpenVPN)
    • ICMP ALL from 0.0.0.0/0 (ping 等)

    VyOS EC2 インスタンスの用意

    以下の二つのインスタンスを VyOS AMI を利用して用意します。インスタンス Launch 時に Community AMIs を選択して "vyos" という文字列で検索すると、リージョンに応じて複数の AMI が見つかります。2017/04/09 現在の Oregon リージョンで見つかった AMI のうち、VyOS (HVM) 1.1.7 (ami-ac23fccc) を利用することにします。

    • vyos-0001 (10.1.1.4, EIP xxx.xxx.xxx.xxx)
    • vyos-0002 (10.2.1.4, EIP yyy.yyy.yyy.yyy)

    SSH ログイン時に利用するユーザー名は vyos です。

    ssh -o ServerAliveInterval=1 -i /path/to/mykey.pem vyos@xxx.xxx.xxx.xxx
    ssh -o ServerAliveInterval=1 -i /path/to/mykey.pem vyos@yyy.yyy.yyy.yyy
    

    自分宛でないパケットも受信するように AWS 設定を変更

    他の VPC に転送すべきパケットを受信するために、上記二つのインスタンスについて、AWS コンソールにおいて「Actions」→「Networking」→「Change Source/Dest. Check」を Disable します。

    VPC 間 VPN 接続設定

    サイト間 VPN 接続には、二拠点間の通信を暗号化する方式によって、主に IPsec-VPN と SSL-VPN があります。IPsec-VPN は IP 層で暗号化などを行うため、例えばプロキシサーバーが存在する場合の NAT 越えが困難になりますが、一般に処理は高速であるとされます。SSL-VPN は VyOS の場合、TCP/UDP 上の OpenVPN が アプリケーションプロセスとして SSL 終端となります。NAT 越えなどが問題になりません。

    公式ドキュメントによると VyOS の場合は OpenVPN による SSL-VPN を用いても性能は大きく変わらないとありますので、ここでは設定の簡単な OpenVPN によるサイト間 VPN 接続を行います。

    As a software router and firewall, VyOS does not see a performance gain for IPSec, or rather, a performance penalty for SSL VPN solutions such as OpenVPN.
    If building a VPN solution using VyOS exclusively, OpenVPN will generally provide the best results in terms of ease-of-use, stability, and performance
    https://wiki.vyos.net/wiki/User_Guide#OpenVPN

    設定例

    事前に共有鍵を生成します。生成された鍵は vyos-0002 に scp 等でコピーします。

    vyos@vyos-0001:~$ generate openvpn key openvpn-20170409.key
    Generating OpenVPN key to /config/auth/openvpn-20170409.key
    Your new local OpenVPN key has been generated
    
    vyos@vyos-0001:~$ ls -l /config/auth/
    total 4
    -rw------- 1 root vyattacfg 636 Apr  9 16:55 openvpn-20170409.key
    

    それぞれ OpenVPN の設定を行います。

    vyos-0001

    set interfaces openvpn vtun1 mode site-to-site
    set interfaces openvpn vtun1 protocol udp
    set interfaces openvpn vtun1 persistent-tunnel
    set interfaces openvpn vtun1 encryption aes256
    set interfaces openvpn vtun1 hash sha256
    set interfaces openvpn vtun1 shared-secret-key-file /config/auth/openvpn-20170409.key
    set interfaces openvpn vtun1 remote-host yyy.yyy.yyy.yyy  ←相手のVPNサーバ
    set interfaces openvpn vtun1 remote-port 1194
    set interfaces openvpn vtun1 local-address 169.254.255.1  ←OpenVPN 同士で利用する自分と相手のIP
    set interfaces openvpn vtun1 remote-address 169.254.255.2
    set protocols static interface-route 10.2.0.0/16 next-hop-interface vtun1  ←ルーティングするパケット
    commit
    save
    

    vyos-0002

    set interfaces openvpn vtun1 mode site-to-site
    set interfaces openvpn vtun1 protocol udp
    set interfaces openvpn vtun1 persistent-tunnel
    set interfaces openvpn vtun1 encryption aes256
    set interfaces openvpn vtun1 hash sha256
    set interfaces openvpn vtun1 shared-secret-key-file /config/auth/openvpn-20170409.key
    set interfaces openvpn vtun1 remote-host xxx.xxx.xxx.xxx
    set interfaces openvpn vtun1 remote-port 1194
    set interfaces openvpn vtun1 local-address 169.254.255.2
    set interfaces openvpn vtun1 remote-address 169.254.255.1
    set protocols static interface-route 10.1.0.0/16 next-hop-interface vtun1
    commit
    save
    

    動作検証やログ確認を行います。

    run show interfaces openvpn vtun1
    run show log openvpn
    ping 10.1.1.4
    ping 10.2.1.4
    

    リモートアクセス VPN 接続設定 (参考情報)

    VyOS で利用できる VPN 接続には、サイト間 VPN の他にリモートアクセス VPN があります。拠点間の接続ではなく、自宅等の PC を、ある拠点の LAN 内に仮想的に接続するために利用します。

    Likeボタン(off)0
    詳細設定を開く/閉じる
    アカウント プロフィール画像

    インフラ構築と自動化が得意。TerraformとAnsibleでインフラを自動構築するお仕事が多め

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事

      • Ciscoルータの基本操作
        シスコ社の製品のうち、ルータは Cisco*** という製品名でスイッチは Catalyst*** という製品名です。いずれも *** は機種番号で、数字が小さいほど小規模ネットワーク向けとなっています。例えば資格試験 CCNA Routing and Switching では小規模および中規模ネットワークが対象です。そのため、中小規模のネットワークのルータおよびス
      • BIND 9 ゾーンファイル Dynamic Update の設定方法
        DHCP 環境下などで IP が動的に付与される場合は DNS レコードを動的に更新する必要があります。これを実現する Dynamic Update 機能が BIND 9 には実装されています。使用方法をまとめます。Dynamic Update に対応した DNS を特に Dynamic DNS または DDNS とよぶことがあります。 ゾーンファイルの作成 ローカルホストに example.co...
      • VyOS の基本的なルーティング設定
        本ページでは、複数の LAN をつなぐルータとしての設定方法をまとめます。具体的には、スタティックルーティングおよびダイナミックルーティング (RIP/OSPF/BGP)の設定方法を把握します。 設定方法を検証するための構成 ルーティング設定の検証を行うために VirtualBox で 5 台の VM を用意します。ホスト OS から vyos-0001 へ SSH 接続する部分を除き、「内部ネッ...
      • BIND 9.10.2 の公式マニュアルに学ぶ DNS の基本
        DNS の実装としては Internet Systems Consortium (ISC) の Berkeley Internet Name Domain (BIND) が有名です。本ページは公式サイトの Documentation からダウンロードできる v9.10.2 の PDF マニュアルおよび『DNSの仕組み完全解説』から基本事項を抽出してまとめ
      • スタティックルートの設定
        サムネイル画像-73e0bcdf3a
        インターフェイスに IP を設定しただけでは他のデバイスと通信できません。各デバイスにルーティングテーブルを設定する必要があります。ルーティングテーブルの設定方法には動的に自動設定するものと、静的に手動設定するものの二種類があります。ここでは静的に手動設定するスタティックルートの方法を紹介します。 具体的にはまず PC0, PC1, Router0, Router1 それぞれ
        あきらあきら9/7/2021に更新
        いいねアイコン画像0