FutureNet

NXR,VXRシリーズ

IPsec編

4. Virtual Private Cloud(VPC)設定

4-7. Oracle Cloud InfrastructureとのVPN接続(BGPの利用)

このページでは、Oracle Cloud Infrastructure(以下OCI)とIPsec接続する際の設定例について解説します。本設定例はBGPを使用した経路制御を想定しており、弊社独自の検証結果を基に作成しています。なお、OCIの仮想ネットワークとの接続や動作を保証するものではありません。また、将来的な仕様変更により接続ができなくなる可能性があります。

 

重要な注意事項
  • 設定例は参考情報としてご活用ください。実際の環境で利用する際には、事前に十分な検証を行うことをお勧めします。
  • OCIに関する詳細情報はこちらをご確認ください。

 

商標について

Oracle、Java、MySQLおよびNetSuiteはオラクルおよびその関連会社の登録商標です。その他の社名や商品名は、それぞれの所有者の商標または登録商標である場合があります。

 

【 IPsec,BGP機能対応機種 】

NXR-1300シリーズ,NXR-650,NXR-610Xシリーズ,NXR-530,NXR-350/C,NXR-230/C,NXR-160/LW,NXR-G180/L-CA,NXR-G200シリーズ,NXR-G110シリーズ,NXR-G100シリーズ,NXR-G060シリーズ,NXR-G050シリーズ,VXRシリーズ(2024/6現在)

設定例で使用している機能の対応状況は、各製品の更新履歴やユーザーズガイドをご確認ください。

 

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

 

【 構成図 】

  • 使用機器:NXR-530
  • 固定グローバルIPアドレスを利用してVPN接続を構成
  • NXRのeth1で接続しているISPのDNSサーバアドレスを以下とします。
    プライマリ:203.0.113.253
    セカンダリ:203.0.113.254

 

〔 正常時 〕

fnw_router_ipsec_vpc_oci_bgp_normal

  • NXRはOCIの動的ルーティング・ゲートウェイ(以下DRG)の外部IPアドレス(192.0.2.1および192.0.2.2)に対してIPsecトンネルを確立します。
  • ルーティングでは、DRGからBGPで受信する経路情報のローカルプリファレンス値を調整することで、192.0.2.1側のIPsecトンネルを優先的に使用します。さらに、NXRからBGPでDRGに配信する経路情報にはMED値を設定し、NXRへの通信が192.0.2.1のIPsecトンネルを経由するよう制御します。

 

〔 IPsecトンネル1障害時 〕

fnw_router_ipsec_vpc_oci_bgp_main-down

  • 192.0.2.1側のトンネルがダウンした場合、自動的に192.0.2.2側のIPsecトンネルにフェイルオーバーします。

 

【 設定例 】

〔 OCIの設定 〕

OCIに関する詳細情報や設定手順については、OCIのサイト間VPNに関するドキュメントをご参照ください。

設定時に使用する主なパラメータは以下の通りです。

 

IPsecTunnel1 IPsecTunnel2
Oracle VPN IPアドレス 192.0.2.1 192.0.2.2
共有シークレット IPsecKEY1 IPsecKEY2
IPV4トンネル内インタフェース – Oracle 172.16.10.2/30 172.16.10.6/30

 

〔 NXRの設定 〕

nxr530#configure terminal
nxr530(config)#interface ethernet 0
nxr530(config-if)#ip address 192.168.10.1/24
nxr530(config-if)#exit
nxr530(config)#ip route 10.0.0.0/24 null 254
nxr530(config)#ip route 0.0.0.0/0 203.0.113.2
nxr530(config)#ip access-list eth1_IN permit 192.0.2.1 203.0.113.1 udp 500 500
nxr530(config)#ip access-list eth1_IN permit 192.0.2.1 203.0.113.1 50
nxr530(config)#ip access-list eth1_IN permit 192.0.2.2 203.0.113.1 udp 500 500
nxr530(config)#ip access-list eth1_IN permit 192.0.2.2 203.0.113.1 50
nxr530(config)#ipsec priority-ignore enable
nxr530(config)#ipsec access-list IPsec_ACL ip any any
nxr530(config)#ipsec local policy 1
nxr530(config-ipsec-local)#address ip
nxr530(config-ipsec-local)#exit
nxr530(config)#ipsec isakmp policy 1
nxr530(config-ipsec-isakmp)#description OCI-IPsecTunnel1
nxr530(config-ipsec-isakmp)#authentication pre-share IPsecKEY1
nxr530(config-ipsec-isakmp)#hash sha384
nxr530(config-ipsec-isakmp)#encryption aes256
nxr530(config-ipsec-isakmp)#group 20
nxr530(config-ipsec-isakmp)#lifetime 28800
nxr530(config-ipsec-isakmp)#isakmp-mode main
nxr530(config-ipsec-isakmp)#remote address ip 192.0.2.1
nxr530(config-ipsec-isakmp)#keepalive 10 3 periodic restart
nxr530(config-ipsec-isakmp)#local policy 1
nxr530(config-ipsec-isakmp)#exit
nxr530(config)#interface tunnel 1
nxr530(config-tunnel)#description OCI-IPsecTunnel1
nxr530(config-tunnel)#ip address 172.16.10.1/30
nxr530(config-tunnel)#tunnel mode ipsec ipv4
nxr530(config-tunnel)#tunnel protection ipsec policy 1
nxr530(config-tunnel)#tunnel pre-fragment
nxr530(config-tunnel)#ip tcp adjust-mss auto
nxr530(config-tunnel)#exit
nxr530(config)#ipsec tunnel policy 1
nxr530(config-ipsec-tunnel)#description OCI-IPsecTunnel1
nxr530(config-ipsec-tunnel)#negotiation-mode auto
nxr530(config-ipsec-tunnel)#set transform esp-aes256 esp-sha256-hmac
nxr530(config-ipsec-tunnel)#set pfs group5
nxr530(config-ipsec-tunnel)#set sa lifetime 3600
nxr530(config-ipsec-tunnel)#set key-exchange isakmp 1
nxr530(config-ipsec-tunnel)#match address IPsec_ACL
nxr530(config-ipsec-tunnel)#exit
nxr530(config)#ipsec isakmp policy 2
nxr530(config-ipsec-isakmp)#description OCI-IPsecTunnel2
nxr530(config-ipsec-isakmp)#authentication pre-share IPsecKEY2
nxr530(config-ipsec-isakmp)#hash sha384
nxr530(config-ipsec-isakmp)#encryption aes256
nxr530(config-ipsec-isakmp)#group 20
nxr530(config-ipsec-isakmp)#lifetime 28800
nxr530(config-ipsec-isakmp)#isakmp-mode main
nxr530(config-ipsec-isakmp)#remote address ip 192.0.2.2
nxr530(config-ipsec-isakmp)#keepalive 10 3 periodic restart
nxr530(config-ipsec-isakmp)#local policy 1
nxr530(config-ipsec-isakmp)#exit
nxr530(config)#interface tunnel 2
nxr530(config-tunnel)#description OCI-IPsecTunnel2
nxr530(config-tunnel)#ip address 172.16.10.5/30
nxr530(config-tunnel)#tunnel mode ipsec ipv4
nxr530(config-tunnel)#tunnel protection ipsec policy 2
nxr530(config-tunnel)#tunnel pre-fragment
nxr530(config-tunnel)#ip tcp adjust-mss auto
nxr530(config-tunnel)#exit
nxr530(config)#ipsec tunnel policy 2
nxr530(config-ipsec-tunnel)#description OCI-IPsecTunnel2
nxr530(config-ipsec-tunnel)#negotiation-mode auto
nxr530(config-ipsec-tunnel)#set transform esp-aes256 esp-sha256-hmac
nxr530(config-ipsec-tunnel)#set pfs group5
nxr530(config-ipsec-tunnel)#set sa lifetime 3600
nxr530(config-ipsec-tunnel)#set key-exchange isakmp 2
nxr530(config-ipsec-tunnel)#match address IPsec_ACL
nxr530(config-ipsec-tunnel)#exit
nxr530(config)#interface ethernet 1
nxr530(config-if)#ip address 203.0.113.1/30
nxr530(config-if)#ip masquerade
nxr530(config-if)#ip spi-filter
nxr530(config-if)#ip access-group in eth1_IN
nxr530(config-if)#ip tcp adjust-mss auto
nxr530(config-if)#ipsec policy 1
nxr530(config-if)#exit
nxr530(config)#route-map LOCAL-PREF200 permit 1
nxr530(config-route-map)#set local-preference 200
nxr530(config-route-map)#exit
nxr530(config)#route-map LOCAL-PREF150 permit 1
nxr530(config-route-map)#set local-preference 150
nxr530(config-route-map)#exit
nxr530(config)#route-map MED10 permit 1
nxr530(config-route-map)#set metric 10
nxr530(config-route-map)#exit
nxr530(config)#route-map MED20 permit 1
nxr530(config-route-map)#set metric 20
nxr530(config-route-map)#exit
nxr530(config)#router bgp 65000
nxr530(config-router)#network 192.168.10.0/24
nxr530(config-router)#neighbor 172.16.10.2 remote-as 31898
nxr530(config-router)#neighbor 172.16.10.2 timers 10 30
nxr530(config-router)#neighbor 172.16.10.2 route-map LOCAL-PREF200 in
nxr530(config-router)#neighbor 172.16.10.2 route-map MED10 out
nxr530(config-router)#neighbor 172.16.10.6 remote-as 31898
nxr530(config-router)#neighbor 172.16.10.6 timers 10 30
nxr530(config-router)#neighbor 172.16.10.6 route-map LOCAL-PREF150 in
nxr530(config-router)#neighbor 172.16.10.6 route-map MED20 out
nxr530(config-router)#exit
nxr530(config)#dns
nxr530(config-dns)#service enable
nxr530(config-dns)#address 203.0.113.253
nxr530(config-dns)#address 203.0.113.254
nxr530(config-dns)#exit
nxr530(config)#fast-forwarding enable
nxr530(config)#exit
nxr530#save config

 

【 設定例解説 】

〔 NXRの設定 〕

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

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

 

2. <スタティックルート設定>
nxr530(config)#ip route 10.0.0.0/24 null 254

宛先10.0.0.0/24への通信を破棄するためのnullルートを設定します。

nxr530(config)#ip route 0.0.0.0/0 203.0.113.2

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

 

3. <IPアクセスリスト設定>
nxr530(config)#ip access-list eth1_IN permit 192.0.2.1 203.0.113.1 udp 500 500
nxr530(config)#ip access-list eth1_IN permit 192.0.2.1 203.0.113.1 50
nxr530(config)#ip access-list eth1_IN permit 192.0.2.2 203.0.113.1 udp 500 500
nxr530(config)#ip access-list eth1_IN permit 192.0.2.2 203.0.113.1 50

IPアクセスリストeth1_INを以下の条件で設定します:

  • 送信元IPアドレス192.0.2.1、宛先IPアドレス203.0.113.1、UDPポート500番(送信元および宛先)を許可します。
  • 送信元IPアドレス192.0.2.1、宛先IPアドレス203.0.113.1、プロトコル番号50(ESP)を許可します。
  • 送信元IPアドレス192.0.2.2、宛先IPアドレス203.0.113.1、UDPポート500番(送信元および宛先)を許可します。
  • 送信元IPアドレス192.0.2.2、宛先IPアドレス203.0.113.1、プロトコル番号50(ESP)を許可します。

(☞) IPアクセスリストを設定するだけではフィルタリングは動作しません。必ず使用するインタフェースに適用してください。

 

4. <IPsec priority-ignore設定>
nxr530(config)#ipsec priority-ignore enable

IPsecのpriority-ignore機能を有効にします。

 

5. <IPsecアクセスリスト設定>
nxr530(config)#ipsec access-list IPsec_ACL ip any any

IPsecアクセスリストIPsec_ACLを以下の条件で設定します:

  • 送信元IPアドレス … any
  • 宛先IPアドレス … any

 

6. <IPsecローカルポリシー設定>
nxr530(config)#ipsec local policy 1
nxr530(config-ipsec-local)#address ip

IPsecトンネルの送信元IPアドレスにipを設定します。

 

7. <IPsec ISAKMPポリシー1設定>
nxr530(config)#ipsec isakmp policy 1
nxr530(config-ipsec-isakmp)#description OCI-IPsecTunnel1

ISAKMPポリシー1の説明文を設定します。

nxr530(config-ipsec-isakmp)#authentication pre-share IPsecKEY1

認証方式に事前共有鍵(pre-share)を選択し、鍵を設定します。
(☞) この事前共有鍵は、OCIのIPsecTunnel1で指定されたものと一致させる必要があります。

nxr530(config-ipsec-isakmp)#hash sha384

認証アルゴリズムをsha384に設定します。

nxr530(config-ipsec-isakmp)#encryption aes256

暗号化アルゴリズムをaes256に設定します。

nxr530(config-ipsec-isakmp)#group 20

DHグループを20に設定します。

nxr530(config-ipsec-isakmp)#lifetime 28800

ISAKMP SAのライフタイムを設定します。

nxr530(config-ipsec-isakmp)#isakmp-mode main

フェーズ1のネゴシエーションモードをメインモードに設定します。

nxr530(config-ipsec-isakmp)#remote address ip 192.0.2.1

リモートアドレスにOCIのIPsecTunnel1で指定されているDRGのIPアドレスを設定します。

nxr530(config-ipsec-isakmp)#keepalive 10 3 periodic restart

IKE KeepAlive(DPD)を以下の条件で設定します:

  • 監視間隔 … 10秒
  • リトライ回数 … 3回
  • ダウン検知後の動作 … IKEの再ネゴシエーション
nxr530(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシー番号を設定します。

 

8. <トンネル1インタフェース設定>
nxr530(config)#interface tunnel 1
nxr530(config-tunnel)#description OCI-IPsecTunnel1

tunnel1インタフェースの説明文を設定します。

nxr530(config-tunnel)#ip address 172.16.10.1/30

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

nxr530(config-tunnel)#tunnel mode ipsec ipv4

トンネルモードをipsec ipv4に設定します。

nxr530(config-tunnel)#tunnel protection ipsec policy 1

このトンネルで使用するIPsecトンネルポリシー番号を設定します。

nxr530(config-tunnel)#tunnel pre-fragment

トンネルのプリフラグメント機能を有効にします。

nxr530(config-tunnel)#ip tcp adjust-mss auto

TCP MSS調整機能を自動設定にします。

 

9. <IPsec トンネルポリシー1設定>
nxr530(config)#ipsec tunnel policy 1
nxr530(config-ipsec-tunnel)#description OCI-IPsecTunnel1

IPsecトンネルポリシー1の説明文を設定します。

nxr530(config-ipsec-tunnel)#negotiation-mode auto

ネゴシエーションモードを自動に設定します。

nxr530(config-ipsec-tunnel)#set transform esp-aes256 esp-sha256-hmac

暗号化アルゴリズムをaes256、認証アルゴリズムをsha256に設定します。

nxr530(config-ipsec-tunnel)#set pfs group5

Perfect Forward Secrecy(PFS)を有効にし、DHグループをgroup5に設定します。

nxr530(config-ipsec-tunnel)#set sa lifetime 3600

IPsec SAのライフタイムを設定します。

nxr530(config-ipsec-tunnel)#set key-exchange isakmp 1

このトンネルポリシーで使用するIPsec ISAKMPポリシー番号を設定します。

nxr530(config-ipsec-tunnel)#match address IPsec_ACL

IPsecアクセスリストを設定します。

 

10. <IPsec ISAKMPポリシー2設定>
nxr530(config)#ipsec isakmp policy 2
nxr530(config-ipsec-isakmp)#description OCI-IPsecTunnel2

ISAKMPポリシー2の説明文を設定します。

nxr530(config-ipsec-isakmp)#authentication pre-share IPsecKEY2

認証方式に事前共有鍵(pre-share)を選択し、鍵を設定します。
(☞) この事前共有鍵は、OCIのIPsecTunnel2で指定されたものと一致させる必要があります。

nxr530(config-ipsec-isakmp)#hash sha384

認証アルゴリズムをsha384に設定します。

nxr530(config-ipsec-isakmp)#encryption aes256

暗号化アルゴリズムをaes256に設定します。

nxr530(config-ipsec-isakmp)#group 20

DHグループを20に設定します。

nxr530(config-ipsec-isakmp)#lifetime 28800

ISAKMP SAのライフタイムを設定します。

nxr530(config-ipsec-isakmp)#isakmp-mode main

フェーズ1のネゴシエーションモードをメインモードに設定します。

nxr530(config-ipsec-isakmp)#remote address ip 192.0.2.2

リモートアドレスにOCIのIPsecTunnel2で指定されているDRGのIPアドレスを設定します。

nxr530(config-ipsec-isakmp)#keepalive 10 3 periodic restart

IKE KeepAlive(DPD)を以下の条件で設定します:

  • 監視間隔 … 10秒
  • リトライ回数 … 3回
  • ダウン検知後の動作 … IKEの再ネゴシエーション
nxr530(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシー番号を設定します。

 

11. <トンネル2インタフェース設定>
nxr530(config)#interface tunnel 2
nxr530(config-tunnel)#description OCI-IPsecTunnel2

tunnel2インタフェースの説明文を設定します。

nxr530(config-tunnel)#ip address 172.16.10.5/30

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

nxr530(config-tunnel)#tunnel mode ipsec ipv4

トンネルモードをipsec ipv4に設定します。

nxr530(config-tunnel)#tunnel protection ipsec policy 2

このトンネルで使用するIPsecトンネルポリシー番号を設定します。

nxr530(config-tunnel)#tunnel pre-fragment

トンネルのプリフラグメント機能を有効にします。

nxr530(config-tunnel)#ip tcp adjust-mss auto

TCP MSS調整機能を自動設定にします。

 

12. <IPsec トンネルポリシー2設定>
nxr530(config)#ipsec tunnel policy 2
nxr530(config-ipsec-tunnel)#description OCI-IPsecTunnel2

IPsecトンネルポリシー2の説明文を設定します。

nxr530(config-ipsec-tunnel)#negotiation-mode auto

ネゴシエーションモードを自動に設定します。

nxr530(config-ipsec-tunnel)#set transform esp-aes256 esp-sha256-hmac

暗号化アルゴリズムをaes256、認証アルゴリズムをsha256に設定します。

nxr530(config-ipsec-tunnel)#set pfs group5

Perfect Forward Secrecy(PFS)を有効にし、DHグループをgroup5に設定します。

nxr530(config-ipsec-tunnel)#set sa lifetime 3600

IPsec SAのライフタイムを設定します。

nxr530(config-ipsec-tunnel)#set key-exchange isakmp 2

このトンネルポリシーで使用するIPsec ISAKMPポリシー番号を設定します。

nxr530(config-ipsec-tunnel)#match address IPsec_ACL

IPsecアクセスリストを設定します。

 

13. <WAN側(ethernet1)インタフェース設定>
nxr530(config)#interface ethernet 1
nxr530(config-if)#ip address 203.0.113.1/30

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

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

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

nxr530(config-if)#ip access-group in eth1_IN

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

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

TCP MSS調整機能を自動設定にします。

nxr530(config-if)#ipsec policy 1

このインタフェースで使用するIPsecローカルポリシー番号を設定します。

 

14. <ルートマップ設定>
nxr530(config)#route-map LOCAL-PREF200 permit 1
nxr530(config-route-map)#set local-preference 200

ルートマップLOCAL-PREF200を作成し、ローカルプリファレンス値を200に設定します。

nxr530(config)#route-map LOCAL-PREF150 permit 1
nxr530(config-route-map)#set local-preference 150

ルートマップLOCAL-PREF150を作成し、ローカルプリファレンス値を150に設定します。

nxr530(config)#route-map MED10 permit 1
nxr530(config-route-map)#set metric 10

ルートマップMED10を作成し、MED値を10に設定します。

nxr530(config)#route-map MED20 permit 1
nxr530(config-route-map)#set metric 20

ルートマップMED20を作成し、MED値を20に設定します。

 

15. <BGP設定>
nxr530(config)#router bgp 65000

BGPで使用する自AS番号(ローカルAS番号)を設定します。

nxr530(config-router)#network 192.168.10.0/24

BGPでアドバタイズするネットワークアドレスを設定します。

nxr530(config-router)#neighbor 172.16.10.2 remote-as 31898

BGPピアのIPアドレス(IPsecTunnel1のOracle側トンネル内インタフェースアドレス)とリモートAS番号を設定します。

nxr530(config-router)#neighbor 172.16.10.2 timers 10 30

BGPピア(IPsecTunnel1)に対して、キープアライブタイマーを10秒、ホールドタイマーを30秒に設定します。

nxr530(config-router)#neighbor 172.16.10.2 route-map LOCAL-PREF200 in

BGPピア(IPsecTunnel1)に対して、ルートマップLOCAL-PREF200を設定し、受信する経路情報に適用するためinを設定します。

nxr530(config-router)#neighbor 172.16.10.2 route-map MED10 out

BGPピア(IPsecTunnel1)に対して、ルートマップMED10を設定し、送信する経路情報に適用するためoutを設定します。

nxr530(config-router)#neighbor 172.16.10.6 remote-as 31898

BGPピアのIPアドレス(IPsecTunnel2のOracle側トンネル内インタフェースアドレス)とリモートAS番号を設定します。

nxr530(config-router)#neighbor 172.16.10.6 timers 10 30

BGPピア(IPsecTunnel2)に対して、キープアライブタイマーを10秒、ホールドタイマーを30秒に設定します。

nxr530(config-router)#neighbor 172.16.10.6 route-map LOCAL-PREF150 in

BGPピア(IPsecTunnel2)に対して、ルートマップLOCAL-PREF150を設定し、受信する経路情報に適用するためinを設定します。

nxr530(config-router)#neighbor 172.16.10.6 route-map MED20 out

BGPピア(IPsecTunnel2)に対して、ルートマップMED20を設定し、送信する経路情報に適用するためoutを設定します。

 

16. <DNS設定>
nxr530(config)#dns
nxr530(config-dns)#service enable

DNS機能を有効にします。

nxr530(config-dns)#address 203.0.113.253
nxr530(config-dns)#address 203.0.113.254

使用するDNSサーバアドレスを設定します。

 

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

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

 

18. <設定の保存>
nxr530#save config

現在の設定内容を保存します。

 

【 端末の設定例 】

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

 

【 付録 】