このセクションでは、IPSec VPN の作成について紹介します。ここでは、作成されている OpenStack の仮想ネットワーク間を IPSec で VPN 接続する例で紹介します。
demo クレデンシャルを読み込み、非管理者専用 CLI コマンドへのアクセス権を取得します。
[root@controller ~]# . openrc/demo-openrc [root@controller ~]#
サブネットとルーターの確認
ネットワークのサブネットリストを表示し、現在作成されているサブネットを確認します。
[root@controller ~]# openstack subnet list +--------------------------------------+----------------+--------------------------------------+-----------------+ | ID | Name | Network | Subnet | +--------------------------------------+----------------+--------------------------------------+-----------------+ | 04360fb4-82c6-43f5-a448-a7a72e218d36 | Self network 2 | 43f15c29-76d3-479d-9df0-0b2de354713e | 172.16.3.0/24 | | 812d8088-e027-452b-b006-3124bbee81c2 | Self network 1 | 2769f828-ae94-4934-8b63-eb5a7a139b73 | 172.16.2.0/24 | | b80414a4-b901-4b5d-a030-b144e49733ca | provider | a07ede34-eb96-470e-97a8-6dd6917ba18d | 192.168.25.0/24 | +--------------------------------------+----------------+--------------------------------------+-----------------+ [root@controller ~]#
ネットワークのルーターリストを表示し、現在作成されているルーターを確認します。
[root@controller ~]# openstack router list +--------------------------------------+----------+--------+-------+-------------+------+----------------------------------+ | ID | Name | Status | State | Distributed | HA | Project | +--------------------------------------+----------+--------+-------+-------------+------+----------------------------------+ | 24a5432c-5001-439d-8da4-7d8789dfdb5f | Router 2 | ACTIVE | UP | None | None | b9644b0689c4469baa45f9acb009d860 | | 669c99e1-0e27-4246-841c-b75cfd7ae3b7 | Router 1 | ACTIVE | UP | None | None | b9644b0689c4469baa45f9acb009d860 | +--------------------------------------+----------+--------+-------+-------------+------+----------------------------------+ [root@controller ~]#
自ネットワークのポリシー作成
自ネットワークに適用する IPSec のポリシーを作成します。ここでは、ipsec-policy1 としています。
[root@controller ~]# openstack vpn ipsec policy create ipsec-policy1 +-------------------------------+----------------------------------------+ | Field | Value | +-------------------------------+----------------------------------------+ | Authentication Algorithm | sha1 | | Description | | | Encapsulation Mode | tunnel | | Encryption Algorithm | aes-128 | | ID | 057f208e-13e5-4a11-b0fc-7deecc10d22d | | Lifetime | {u'units': u'seconds', u'value': 3600} | | Name | ipsec-policy1 | | Perfect Forward Secrecy (PFS) | group5 | | Project | b9644b0689c4469baa45f9acb009d860 | | Transform Protocol | esp | | project_id | b9644b0689c4469baa45f9acb009d860 | +-------------------------------+----------------------------------------+ [root@controller ~]#
自ネットワークに適用する ike のポリシーを作成します。ここでは、ike-policy1 としています。
[root@controller ~]# openstack vpn ike policy create ike-policy1 +-------------------------------+----------------------------------------+ | Field | Value | +-------------------------------+----------------------------------------+ | Authentication Algorithm | sha1 | | Description | | | Encryption Algorithm | aes-128 | | ID | a36515da-01ac-4d62-9265-6f9a55d96c91 | | IKE Version | v1 | | Lifetime | {u'units': u'seconds', u'value': 3600} | | Name | ike-policy1 | | Perfect Forward Secrecy (PFS) | group5 | | Phase1 Negotiation Mode | main | | Project | b9644b0689c4469baa45f9acb009d860 | | project_id | b9644b0689c4469baa45f9acb009d860 | +-------------------------------+----------------------------------------+ [root@controller ~]#
自ネットワークの VPNサービスを作成します。ここでは、vpn-1 としています。
[root@controller ~]# openstack vpn service create vpn-1 --router 669c99e1-0e27-4246-841c-b75cfd7ae3b7 --subnet 812d8088-e027-452b-b006-3124bbee81c2 +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | Description | | | Flavor | None | | ID | cc192bdc-fe0f-4253-aa9d-773a609c5116 | | Name | vpn-1 | | Project | b9644b0689c4469baa45f9acb009d860 | | Router | 669c99e1-0e27-4246-841c-b75cfd7ae3b7 | | State | True | | Status | PENDING_CREATE | | Subnet | 812d8088-e027-452b-b006-3124bbee81c2 | | external_v4_ip | 192.168.25.123 | | external_v6_ip | None | | project_id | b9644b0689c4469baa45f9acb009d860 | +----------------+--------------------------------------+ [root@controller ~]#
対向先ネットワークのポリシー作成
対向先ネットワークに適用する IPSec のポリシーを作成します。ここでは、ipsec-policy2 としています。
[root@controller ~]# openstack vpn ipsec policy create ipsec-policy2 +-------------------------------+----------------------------------------+ | Field | Value | +-------------------------------+----------------------------------------+ | Authentication Algorithm | sha1 | | Description | | | Encapsulation Mode | tunnel | | Encryption Algorithm | aes-128 | | ID | abb44ee1-faa3-4d98-9705-d7c9061b2168 | | Lifetime | {u'units': u'seconds', u'value': 3600} | | Name | ipsec-policy2 | | Perfect Forward Secrecy (PFS) | group5 | | Project | b9644b0689c4469baa45f9acb009d860 | | Transform Protocol | esp | | project_id | b9644b0689c4469baa45f9acb009d860 | +-------------------------------+----------------------------------------+ [root@controller ~]#
対向先ネットワークに適用する ike のポリシーを作成します。ここでは、ike-policy2 としています。
[root@controller ~]# openstack vpn ike policy create ike-policy2 +-------------------------------+----------------------------------------+ | Field | Value | +-------------------------------+----------------------------------------+ | Authentication Algorithm | sha1 | | Description | | | Encryption Algorithm | aes-128 | | ID | 23a52fd7-06ac-46ed-a2c3-81c8b175d71d | | IKE Version | v1 | | Lifetime | {u'units': u'seconds', u'value': 3600} | | Name | ike-policy2 | | Perfect Forward Secrecy (PFS) | group5 | | Phase1 Negotiation Mode | main | | Project | b9644b0689c4469baa45f9acb009d860 | | project_id | b9644b0689c4469baa45f9acb009d860 | +-------------------------------+----------------------------------------+ [root@controller ~]#
対向先ネットワークの VPNサービスを作成します。ここでは、vpn-2 としています。
[root@controller ~]# openstack vpn service create vpn-2 --router 24a5432c-5001-439d-8da4-7d8789dfdb5f --subnet 04360fb4-82c6-43f5-a448-a7a72e218d36 +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | Description | | | Flavor | None | | ID | 2d6edf62-6042-479f-b8ad-c0e8a8af1ea9 | | Name | vpn-2 | | Project | b9644b0689c4469baa45f9acb009d860 | | Router | 24a5432c-5001-439d-8da4-7d8789dfdb5f | | State | True | | Status | PENDING_CREATE | | Subnet | 04360fb4-82c6-43f5-a448-a7a72e218d36 | | external_v4_ip | 192.168.25.102 | | external_v6_ip | None | | project_id | b9644b0689c4469baa45f9acb009d860 | +----------------+--------------------------------------+ [root@controller ~]#
自ネットワークのVPN接続作成
自ネットワークの VPN接続を作成します。ここでは、conn-1 としています。
[root@controller ~]# openstack vpn ipsec site connection create conn-1 \ --vpnservice vpn-1 \ --ikepolicy ike-policy1 \ --ipsecpolicy ipsec-policy1 \ --peer-address 192.168.25.102 \ --peer-id 192.168.25.102 \ --peer-cidr 172.16.3.0/24 \ --psk secret +--------------------------+--------------------------------------------------------+ | Field | Value | +--------------------------+--------------------------------------------------------+ | Authentication Algorithm | psk | | Description | | | ID | b2770bc7-ec9b-4435-a75f-5a7fe04abdb2 | | IKE Policy | a36515da-01ac-4d62-9265-6f9a55d96c91 | | IPSec Policy | 057f208e-13e5-4a11-b0fc-7deecc10d22d | | Initiator | bi-directional | | Local Endpoint Group ID | None | | Local ID | | | MTU | 1500 | | Name | conn-1 | | Peer Address | 192.168.25.102 | | Peer CIDRs | 172.16.3.0/24 | | Peer Endpoint Group ID | None | | Peer ID | 192.168.25.102 | | Pre-shared Key | secret | | Project | b9644b0689c4469baa45f9acb009d860 | | Route Mode | static | | State | True | | Status | PENDING_CREATE | | VPN Service | cc192bdc-fe0f-4253-aa9d-773a609c5116 | | dpd | {u'action': u'hold', u'interval': 30, u'timeout': 120} | | project_id | b9644b0689c4469baa45f9acb009d860 | +--------------------------+--------------------------------------------------------+ [root@controller ~]#
VPN 接続のリストを表示します。 conn-1 が作成されていることが確認できます。この時点では、対向先の VPN 接続 がないため、ステータスが Down と表示されています。
[root@controller ~]# openstack vpn ipsec site connection list +--------------------------------------+--------+----------------+--------------------------+--------+ | ID | Name | Peer Address | Authentication Algorithm | Status | +--------------------------------------+--------+----------------+--------------------------+--------+ | 8e6b871d-fa3f-4ede-9b7b-36cfd9dca399 | conn-1 | 192.168.25.102 | psk | DOWN | +--------------------------------------+--------+----------------+--------------------------+--------+ [root@controller ~]#
対向先ネットワークのVPN接続作成
対向先ネットワークの VPN接続を作成します。ここでは、conn-2 としています。
[root@controller ~]# openstack vpn ipsec site connection create conn-2 \ > --vpnservice vpn-2 \ > --ikepolicy ike-policy2 \ > --ipsecpolicy ipsec-policy2 \ > --peer-address 192.168.25.123 \ > --peer-id 192.168.25.123 \ > --peer-cidr 172.16.2.0/24 \ > --psk secret +--------------------------+--------------------------------------------------------+ | Field | Value | +--------------------------+--------------------------------------------------------+ | Authentication Algorithm | psk | | Description | | | ID | a4e355ad-e2f2-43af-a313-a3aff45d3ca2 | | IKE Policy | 23a52fd7-06ac-46ed-a2c3-81c8b175d71d | | IPSec Policy | abb44ee1-faa3-4d98-9705-d7c9061b2168 | | Initiator | bi-directional | | Local Endpoint Group ID | None | | Local ID | | | MTU | 1500 | | Name | conn-2 | | Peer Address | 192.168.25.123 | | Peer CIDRs | 172.16.2.0/24 | | Peer Endpoint Group ID | None | | Peer ID | 192.168.25.123 | | Pre-shared Key | secret | | Project | b9644b0689c4469baa45f9acb009d860 | | Route Mode | static | | State | True | | Status | PENDING_CREATE | | VPN Service | 2d6edf62-6042-479f-b8ad-c0e8a8af1ea9 | | dpd | {u'action': u'hold', u'interval': 30, u'timeout': 120} | | project_id | b9644b0689c4469baa45f9acb009d860 | +--------------------------+--------------------------------------------------------+ [root@controller ~]#
VPN 接続のリストを表示します。 conn-2 が作成されていることが確認できます。この時点では、conn-1 と conn-2 のステータスが Active( IPSec VPN 接続できている) になります。
[root@controller ~]# openstack vpn ipsec site connection list +--------------------------------------+--------+----------------+--------------------------+--------+ | ID | Name | Peer Address | Authentication Algorithm | Status | +--------------------------------------+--------+----------------+--------------------------+--------+ | 3b36557a-b531-464c-bdf7-47c86fccb832 | conn-2 | 192.168.25.123 | psk | ACTIVE | | 8e6b871d-fa3f-4ede-9b7b-36cfd9dca399 | conn-1 | 192.168.25.102 | psk | ACTIVE | +--------------------------------------+--------+----------------+--------------------------+--------+ [root@controller ~]#