# VPN / マルチポイントVPN

マルチポイントVPNは、ポイントツーマルチポイント（一対多）型のトンネルインターフェースを利用することにより、1つのインターフェース設定で複数拠点とのVPN接続を実現する仕組みです。
Note

通信内容の暗号化と認証には対応していません。また、IPアドレスが不定な対向装置との接続はできません。

## 概要

従来、VPN接続にはおもにポイントツーポイント（一対一）型のトンネルインターフェースが用いられてきましたが、この方式では接続先の数だけトンネルインターフェースの設定が必要になるため、接続拠点の追加にともなう設定変更量が多く、ネットワークの構成変更に手間がかかりました。
これに対して、ポイントツーマルチポイント型のトンネルインターフェースでは、1つのインターフェースで複数拠点との接続が可能なため、拠点追加にともなう設定変更量がポイントツーポイント型よりも少なく、さらにRADIUSサーバー等を利用すれば設定変更なしで拠点を追加することも可能になります。
本製品では、ポイントツーマルチポイント型のトンネルインターフェースを使用することで、メッシュ構成のVPNを従来よりシンプルな設定で実現可能です。

### ポイントツーマルチポイント型トンネルインターフェース

次に、ポイントツーポイント型トンネルとポイントツーマルチポイント型トンネルのおもな違いをまとめます。

| ポイントツーポイント | ポイントツーマルチポイント
接続先 | 1つ | 複数
ブロードキャスト | なし | あり
リンク層アドレス（ARP）解決 | 不要 | 必要
経路設定時のネクストホップ指定方法 | インターフェース | 対向アドレス

ポイントツーポイント型トンネルインターフェースに転送されたパケットは、該当トンネルで使用しているトンネリングプロトコルによってカプセル化され、唯一の接続先である対向ルーターに転送されます。この場合、接続先が1つしかないためARP解決の必要はありません。
一方、ポイントツーマルチポイント型トンネルインターフェースは、同インターフェース上に複数の対向ルーターが存在しうるという点でEthernetに似た性質を持っています。そのため、ポイントツーマルチポイント型トンネルインターフェースにパケットを転送するにあたっては、同インターフェース上のどの対向ルーターに送信すればよいかの判断が必要になります。これはEthernetと同じようにネクストホップIPアドレスをARP解決することによって行いますが、得られるアドレスがMACアドレスではなく対向ルーターのトンネル終端IPアドレス（エンドポイントIPアドレス）になる点がEthernetと異なります。したがって、ポイントツーマルチポイント型トンネルインターフェース上のARPエントリーはリンク層アドレスがIPアドレスになります。
また、ポイントツーマルチポイント型トンネルインターフェースではブロードキャストもサポートしています。ポイントツーマルチポイント型トンネルインターフェースはその時点で把握している接続先（エンドポイント）の1つ1つに対してブロードキャストパケットを複製し、それぞれを適切にカプセル化してから各接続先に送信します。

## 基本仕様

マルチポイントVPNの基本的な仕様は次のとおりです。

- トンネリングプロトコルにはマルチポイントGREを使用する。
- 暗号化・認証機能（セキュリティープロトコル）はサポートしない。
- デリバリー（外側）プロトコル、ペイロード（内側）プロトコルともにIPv4のみサポート。
- デリバリー（外側）ヘッダーのDF（フラグメント不可）ビットはつねにセットされる。
- マルチポイントGREトンネルインターフェースは1装置あたり1つだけ作成可能。
- マルチポイントGREトンネルインターフェースでは、スタティックルーティングをサポート
  - ip routeコマンドでスタティック経路を設定するときは、GATEWAYパラメーターでネクストホップアドレス（エンドポイント）を明示的に指定すること。
- マルチポイントGREトンネルインターフェースのIPv4アドレスをDHCP、ISAKMPなどによって動的に設定することはできない。

## 基本設定

### フルメッシュ構成

- 各サイトが他のすべてのサイトと接続するフルメッシュ構成
- すべてのサイトでマルチポイントGREトンネルインターフェースを使用

ノード1（サイト1）

    interface tunnel0
     tunnel mode gre multipoint
     tunnel source ppp0
     tunnel local name node1
     tunnel endpoint 10.2.2.2
     tunnel endpoint 10.3.3.3
     ip address 172.16.0.1/28
    !
    ip route 192.168.20.0/24 172.16.0.2
    ip route 192.168.30.0/24 172.16.0.3

ノード2（サイト2）

    interface tunnel0
     tunnel mode gre multipoint
     tunnel source ppp0
     tunnel local name node2
     tunnel endpoint 10.1.1.1
     tunnel endpoint 10.3.3.3
     ip address 172.16.0.2/28
    !
    ip route 192.168.10.0/24 172.16.0.1
    ip route 192.168.30.0/24 172.16.0.3

ノード3（サイト3）

    interface tunnel0
     tunnel mode gre multipoint
     tunnel source ppp0
     tunnel local name node3
     tunnel endpoint 10.1.1.1
     tunnel endpoint 10.2.2.2
     ip address 172.16.0.3/28
    !
    ip route 192.168.10.0/24 172.16.0.1
    ip route 192.168.20.0/24 172.16.0.2

## 設定と状態の確認

マルチポイントGREトンネルインターフェースの情報はshow interfaceコマンドで確認できます。

    awplus# show interface tunnel0
    Interface tunnel0
      Link is UP, administrative state is UP
      Hardware is Tunnel
      IPv4 address 172.16.0.1/28 broadcast 172.16.0.15
      index 15 metric 1 mtu 1434
      <UP,BROADCAST,RUNNING,MULTICAST>
      VRF Binding: Not bound
      SNMP link-status traps: Disabled
      Bandwidth 1g
      Tunnel source 10.1.1.1
      Tunnel name local hub
      Tunnel protocol/transport gre multipoint, key disabled, sequencing disabled
      Tunnel endpoint 10.2.2.2
      Tunnel endpoint 10.3.3.3
      Tunnel TTL 64
      Checksumming of packets disabled, path MTU discovery disabled
      Router Advertisement is disabled
      Router Advertisement default routes are accepted
      Router Advertisement prefix info is accepted
        input packets 56, bytes 3804, dropped 0, multicast packets 0
        output packets 121, bytes 5364, multicast packets 0, broadcast packets 0
        input average rate : 30 seconds 0 bps, 5 minutes 0 bps
        output average rate: 30 seconds 0 bps, 5 minutes 0 bps
        input peak rate 972 bps at 2019/03/14 00:30:13
        output peak rate 1.53 Kbps at 2019/03/14 00:30:13
      Time since last state change: 0 days 02:18:50

マルチポイントGREトンネルインターフェース上のARPエントリーは、リンク層アドレス（LL Address）が対向ルーターのトンネル終端IPアドレス（エンドポイントIPアドレス）になっています。これはshow arpコマンドで確認できます。

    awplus# show arp
    IP Address      LL Address       Interface            Port        Type
    172.16.0.2      10.2.2.2         tunnel0              -           dynamic