FutureNet

NXR,VXRシリーズ

WireGuard編

1. WireGuard接続設定

1-1. WireGuard接続設定(Amazon Web Services)

Amazon Web Services(以下AWS)上でセットアップしたVXR-x64をセンタルータとするハブ&スポーク構成のWireGuard接続設定例です。

 

【対象機種】VXR-x64

 

コンテンツ
構成図 設定例 設定例解説 端末の設定例 補足 付録

 

【 構成図 】

  • AWS側のVXR-x64ではAWSのセキュリティグループで、WireGuard用に以下のインバウンドルールを追加します。
    ※VXR-x64へのSSHアクセス用ルール等はすでに作成済みとします。

    タイプ プロトコル ポート範囲 ソース
    カスタムUDPルール UDP 60000 0.0.0.0/0

    なお、この設定例ではAWS側のVXR-x64(VXR_A)のWireGuard用UDPポート番号を60000、VXR_BのWireGuard用UDPポート番号を60001に設定しています。このポート番号はユーザが指定可能です。

 

【 設定例 】

〔VXR_Aの設定〕

vxr-x64#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
vxr-x64(config)#hostname VXR_A
VXR_A(config)#interface ethernet 1
VXR_A(config-if)#ip address 10.0.1.254/24
VXR_A(config-if)#exit
VXR_A(config)#interface ethernet 0
VXR_A(config-if)#ip masquerade
VXR_A(config-if)#ip tcp adjust-mss auto
VXR_A(config-if)#exit
VXR_A(config)#ip route 192.168.10.0/24 wireguard 1
VXR_A(config)#ip route 192.168.20.1/32 wireguard 1
VXR_A(config)#interface wireguard 1
VXR_A(config-if-wg)#wireguard port 60000
VXR_A(config-if-wg)#wireguard remote-peer-id 1
VXR_A(config-if-wg)#wireguard remote-peer-id 2
VXR_A(config-if-wg)#ip tcp adjust-mss auto
VXR_A(config-if-wg)#exit
VXR_A(config)#exit
VXR_A#show config interface wireguard 1
interface wireguard 1
no ip address
ip tcp adjust-mss auto
wireguard private-key TsEw8Gg1RoPPd2hHLT9XDLXnAXcrn8xZL4kXUA/bdTqFt82KwUZuwqPv16Suyb63 encrypted
wireguard public-key Kh/nFywfFrj8XiqeOLQJRx0/kERfGljkXzPBiJQUIUA=
wireguard port 60000
wireguard remote-peer-id 1
wireguard remote-peer-id 2
!
VXR_A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
VXR_A(config)#wireguard peer 1
VXR_A(config-wg-peer)#public-key I6BBUieFeiv7xX6Sjb2n+Qzs9hrIU4EWBVBV5kdBkCg=
VXR_A(config-wg-peer)#server address 192.0.2.1 port 60001
VXR_A(config-wg-peer)#network 192.168.10.0/24
VXR_A(config-wg-peer)#exit
VXR_A(config)#wireguard peer 2
VXR_A(config-wg-peer)#public-key gbnpGGIOLWRCDanmRbcBr53MFzqKSy1jWl6ppwct8Uw=
VXR_A(config-wg-peer)#network 192.168.20.1/32
VXR_A(config-wg-peer)#exit
VXR_A(config)#dns
VXR_A(config-dns)#service enable
VXR_A(config-dns)#exit
VXR_A(config)#fast-forwarding enable
VXR_A(config)#exit
VXR_A#save config

 

〔VXR_Bの設定〕

vxr-x64#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
vxr-x64(config)#hostname VXR_B
VXR_B(config)#interface ethernet 1
VXR_B(config-if)#ip address 192.168.10.1/24
VXR_B(config-if)#exit
VXR_B(config)#ip route 10.0.1.0/24 wireguard 1
VXR_B(config)#ip route 0.0.0.0/0 192.0.2.2
VXR_B(config)#ip access-list eth0_in permit 203.0.113.1 192.0.2.1 udp 60000 60001
VXR_B(config)#interface ethernet 0
VXR_B(config-if)#ip address 192.0.2.1/30
VXR_B(config-if)#ip masquerade
VXR_B(config-if)#ip spi-filter
VXR_B(config-if)#ip access-group in eth0_in
VXR_B(config-if)#ip tcp adjust-mss auto
VXR_B(config-if)#exit
VXR_B(config)#interface wireguard 1
VXR_B(config-if-wg)#wireguard port 60001
VXR_B(config-if-wg)#wireguard remote-peer-id 1
VXR_B(config-if-wg)#ip tcp adjust-mss auto
VXR_B(config-if-wg)#exit
VXR_B(config)#exit
VXR_B#show config interface wireguard 1
interface wireguard 1
no ip address
ip tcp adjust-mss auto
wireguard private-key eCoZFbvrkWWAowbENs9STUZduej+kDoetPoKZy9CMeA+s7B2uqHUj/MhgwAe9rfK encrypted
wireguard public-key I6BBUieFeiv7xX6Sjb2n+Qzs9hrIU4EWBVBV5kdBkCg=
wireguard port 60001
wireguard remote-peer-id 1
!
VXR_B#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
VXR_B(config)#wireguard peer 1
VXR_B(config-wg-peer)#public-key Kh/nFywfFrj8XiqeOLQJRx0/kERfGljkXzPBiJQUIUA=
VXR_B(config-wg-peer)#server address 203.0.113.1 port 60000
VXR_B(config-wg-peer)#network 10.0.1.0/24
VXR_B(config-wg-peer)#exit
VXR_B(config)#dns
VXR_B(config-dns)#service enable
VXR_B(config-dns)#address 192.0.2.253
VXR_B(config-dns)#address 192.0.2.254
VXR_B(config-dns)#exit
VXR_B(config)#fast-forwarding enable
VXR_B(config)#exit
VXR_B#save config

 

〔MA-E3xxの設定〕

MA-E3xxの設定は、弊社で公開していますMA-EシリーズのDevelopers’WiKi内にあるWireGuard VPNの利用をご参照ください。

 

【 設定例解説 】

〔VXR_Aの設定〕

1. <ホスト名の設定>
vxr-x64(config)#hostname VXR_A

ホスト名を設定します。

 

2. <LAN側(ethernet1)インタフェース設定>
VXR_A(config)#interface ethernet 1
VXR_A(config-if)#ip address 10.0.1.254/24

ethernet1インタフェースのIPアドレスを設定します。

 

3. <WAN側(ethernet0)インタフェース設定>
VXR_A(config)#interface ethernet 0
VXR_A(config-if)#ip masquerade

IPマスカレードを有効にします。

VXR_A(config-if)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

 

4. <スタティックルート設定>
VXR_A(config)#ip route 192.168.10.0/24 wireguard 1

192.168.10.0/24向けのルートを設定します。またゲートウェイインタフェースはwireguard 1を設定します。

VXR_A(config)#ip route 192.168.20.1/32 wireguard 1

192.168.20.1/32向けのルートを設定します。

 

5. <WireGuard1インタフェース設定>
VXR_A(config)#interface wireguard 1
VXR_A(config-if-wg)#wireguard port 60000

WireGuardで使用するポート番号を設定します。

VXR_A(config-if-wg)#wireguard remote-peer-id 1
VXR_A(config-if-wg)#wireguard remote-peer-id 2

このWireGuardインタフェースで使用するリモートピアIDを設定します。

VXR_A(config-if-wg)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

 

6. <公開鍵の確認>
VXR_A#show config interface wireguard 1
interface wireguard 1
no ip address
ip tcp adjust-mss auto
wireguard private-key TsEw8Gg1RoPPd2hHLT9XDLXnAXcrn8xZL4kXUA/bdTqFt82KwUZuwqPv16Suyb63 encrypted
wireguard public-key Kh/nFywfFrj8XiqeOLQJRx0/kERfGljkXzPBiJQUIUA=
wireguard port 60000
wireguard remote-peer-id 1
wireguard remote-peer-id 2

作成した公開鍵(public-key)を確認します。ここで表示された公開鍵は、VXR_B,MA-E3xxの設定で使用します。

 

7. <wireguard peer 1設定>
VXR_A(config)#wireguard peer 1
VXR_A(config-wg-peer)#public-key I6BBUieFeiv7xX6Sjb2n+Qzs9hrIU4EWBVBV5kdBkCg=

VXR_Bで作成した公開鍵を設定します。

VXR_A(config-wg-peer)#server address 192.0.2.1 port 60001

サーバアドレスにVXR_BのWAN側IPアドレスおよびUDPポート番号を設定します。

VXR_A(config-wg-peer)#network 192.168.10.0/24

許可するIPアドレスを設定します。

 

8. <wireguard peer 2設定>
VXR_A(config)#wireguard peer 2
VXR_A(config-wg-peer)#public-key gbnpGGIOLWRCDanmRbcBr53MFzqKSy1jWl6ppwct8Uw=

MA-E3xxで作成した公開鍵を設定します。

VXR_A(config-wg-peer)#network 192.168.20.1/32

許可するIPアドレスを設定します。

 

9. <DNS設定>
VXR_A(config)#dns
VXR_A(config-dns)#service enable

DNSサービスを有効にします。

 

10. <ファストフォワーディング設定>
VXR_A(config)#fast-forwarding enable

ファストフォワーディングを有効にします。

 

11. <設定の保存>
VXR_A#save config

設定内容を保存します。

 

〔VXR_Bの設定〕

1. <ホスト名の設定>
vxr-x64(config)#hostname VXR_B

ホスト名を設定します。

 

2. <LAN側(ethernet1)インタフェース設定>
VXR_B(config)#interface ethernet 1
VXR_B(config-if)#ip address 192.168.10.1/24

ethernet1インタフェースのIPアドレスを設定します。

 

3. <スタティックルート設定>
VXR_B(config)#ip route 10.0.1.0/24 wireguard 1

10.0.1.0/24向けのルートを設定します。

VXR_B(config)#ip route 0.0.0.0/0 192.0.2.2

デフォルトルートを設定します。

 

4. <IPアクセスリスト設定>
VXR_B(config)#ip access-list eth0_in permit 203.0.113.1 192.0.2.1 udp 60000 60001

IPアクセスリストeth0_inを以下のルールで設定します。

  • 送信元IPアドレス203.0.113.1、宛先IPアドレス192.0.2.1、送信元UDPポート60000番、宛先UDPポート60001番を許可

(☞) IPアクセスリストを設定しただけではフィルタとして有効にはなりません。フィルタリングを行うインタフェースでの登録が必要になります。

 

5. <WAN側(ethernet0)インタフェース設定>
VXR_B(config)#interface ethernet 0
VXR_B(config-if)#ip address 192.0.2.1/30

ethernet0インタフェースのIPアドレスを設定します。

VXR_B(config-if)#ip masquerade
VXR_B(config-if)#ip spi-filter

IPマスカレード、ステートフルパケットインスペクションを有効にします。

VXR_B(config-if)#ip access-group in eth0_in

IPアクセスグループのinフィルタにIPアクセスリストeth0_inを設定します。

VXR_B(config-if)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

 

6. <WireGuard1インタフェース設定>
VXR_B(config)#interface wireguard 1
VXR_B(config-if-wg)#wireguard port 60001

WireGuardで使用するポート番号を設定します。

VXR_B(config-if-wg)#wireguard remote-peer-id 1

このWireGuardインタフェースで使用するリモートピアIDを設定します。

VXR_B(config-if-wg)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

 

7. <公開鍵の確認>
VXR_B#show config interface wireguard 1
interface wireguard 1
no ip address
ip tcp adjust-mss auto
wireguard private-key eCoZFbvrkWWAowbENs9STUZduej+kDoetPoKZy9CMeA+s7B2uqHUj/MhgwAe9rfK encrypted
wireguard public-key I6BBUieFeiv7xX6Sjb2n+Qzs9hrIU4EWBVBV5kdBkCg=
wireguard port 60001
wireguard remote-peer-id 1

作成した公開鍵(public-key)を確認します。ここで表示された公開鍵は、VXR_Aの設定で使用します。

 

8. <wireguard peer 1設定>
VXR_B(config)#wireguard peer 1
VXR_B(config-wg-peer)#public-key Kh/nFywfFrj8XiqeOLQJRx0/kERfGljkXzPBiJQUIUA=

VXR_Aで作成した公開鍵を設定します。

VXR_B(config-wg-peer)#server address 203.0.113.1 port 60000

サーバアドレスにVXR_A側のElastic IPアドレスおよびUDPポート番号を設定します。

VXR_B(config-wg-peer)#network 10.0.1.0/24

許可するIPアドレスを設定します。

 

9. <DNS設定>
VXR_B(config)#dns
VXR_B(config-dns)#service enable

DNSサービスを有効にします。

VXR_B(config-dns)#address 192.0.2.253
VXR_B(config-dns)#address 192.0.2.254

プロバイダから指定されたプライマリ,セカンダリのDNSサーバアドレスを設定します。

 

10. <ファストフォワーディング設定>
VXR_B(config)#fast-forwarding enable

ファストフォワーディングを有効にします。

 

11. <設定の保存>
VXR_B#save config

設定内容を保存します。

 

【 端末の設定例 】

10.0.1.0/24 192.168.10.0/24
IPアドレス 10.0.1.100 192.168.10.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 10.0.1.254 192.168.10.1
DNSサーバアドレス

 

【 補足 】

WireGuard対応機器の上位にNATまたはファイアウォールがあり、ポートフォワーディングなど静的な設定が行われていない場合、キープアライブパケットを送信してセッションを維持する必要があります。
また、WAN側IPアドレスがセンタ固定IP,拠点動的IPの組み合わせで、かつWireGuardトンネル経由の通信の契機がセンタ側の場合にもキープアライブを設定することでトンネル経由の通信が可能になります。

キープアライブ設定
(config)#wireguard peer 1
(config-wg-peer)#keepalive 25

キープアライブを設定します。

 

【 付録 】