NSX NSX Data Center ネットワーク

NSX IPsec 設定徹底ガイド (CiscoルータとのIPsec編)

はじめに

前回のブログではNSX T0/T1 Gateway 間でIPsecを張るための具体的な設定を紹介しました。今回はIPsecの対向をCisco ルータで想定した場合の設定例を紹介していきます。前回NSXではIKEv2のポリシーベースIPsecとルートベースIPsecの2種類のIPsec方式をサポートしていると紹介しましたが、Cisco ルータにおいても同様にサポートするため、それぞれについて解説していきます。


ポリシーベースIPsec

構築するネットワーク構成は以下となります。

SiteA (Cisco 側)
ユーザセグメント:172.16.30.0/24
IPsec用エンドポイントIP:172.16.104.81
SiteB (NSX 側)
ユーザセグメント:172.16.10.0/24
IPsec用エンドポイントIP:10.34.34.34
NAT外部ルータ:223.135.xx.xx

NSX ver.3.2.3.1
Cisco ISR ver.15.8(3)M2

設定手順

①T0ゲートウェイにエンドポイント間のルートを学習
②NSX IPsecの設定
1.VPNサービスの設定
2.NSX IPsec Session (ポリシーベース)の作成
3.NSX ローカルエンドポイントの作成
※ここまではNSX-NSXケースと同様(前回のブログ)
③Cisco ルータの設定
1.IKEv2 IPsecの設定
2.アンダーレイルートの設定
3.インターフェースへの適用

 

①T0ゲートウェイにエンドポイント間のルートを学習

この後設定するIPsecエンドポイントIPは対向サイトへ広報している必要があります。アンダーレイをダイナミックルーティングで構築している場合は、このIPを再配送している必要があります。T1およびT0ゲートウェイで再配送の設定を確認します。

ネットワーク > Tier-1 ゲートウェイ >ルートアドバタイズ

ネットワーク > Tier-0 ゲートウェイ >ルート再配分

(スタティックルートを用いて構築している場合は対向IPsecエンドポイントIPへのスタティックルートを追加します。)

②NSX IPsecの設定

ネットワーク > VPN > VPNサービス > IPsec

ネットワーク > VPN > IPsecセッション > IPsecセッションの追加

ローカルエンドポイントを新規作成

(ローカルIDは空欄のままだとIPアドレスがそのまま入る)

リモートIP(対向のIP)、ローカル・リモートのIP、プリシェアードキーを入力

③Cisco ルータの設定
1.IKEv2 IPsecの設定

ここではNSXのデフォルトIKEv2/IPsecプロファイルと合致する暗号化アルゴリズムやパラメータを記載しています

crypto ikev2 proposal Ikev2Proposal
  encryption aes-cbc-128
  integrity sha256
  group 14
  !
crypto ikev2 policy Ikev2Policy
match fvrf any
proposal Ikev2Proposal

  !
crypto ikev2 keyring Keys
  peer NSX
    address 223.135.xx.xx
    pre-shared-key local PASSWORD
    pre-shared-key remote PASSWORD
    !
crypto ikev2 profile Ikev2Profile
  match identity remote address 223.135.xx.xx 255.255.255.255
  authentication remote pre-share
  authentication local pre-share
  keyring local Keys
  !
crypto ipsec transform-set myset esp-gcm
  mode tunnel
!
crypto map mymap 10 ipsec-isakmp
  set peer 223.135.xx.xx
  set transform-set myset
  set ikev2-profile Ikev2Profile
  match address 100

2.アンダーレイルートの設定
3.インターフェースへの適用

今回アンダーレイルーとはスタティックルートで設定する。

interface GigabitEthernet0
  ip address 172.16.104.81 255.255.252.0
  crypto map mymap
  !
ip route 0.0.0.0 0.0.0.0 172.16.107.254
!
access-list 100 permit ip 172.16.30.0 0.0.0.255 172.16.10.0 0.0.0.255

ポリシーベースの設定は以上になる。
(状態確認はこのあとのルートベースIPsec で紹介)


ルートベースIPsec

構築するネットワーク構成は以下となります。

SiteA
ユーザセグメント:172.16.30.0/24
IPsec用エンドポイントIP:172.16.104.81
IPsec用トンネルインターフェースIP:10.222.222.2/24

SiteB
ユーザセグメント:172.16.10.0/24
IPsec用エンドポイントIP:10.34.34.34
IPsec用トンネルインターフェースIP:10.222.222.1/24
NAT外部ルータ:223.135.xx.xx

NSX ver.3.2.3.1
Cisco ISR ver.15.8(3)M2

 

設定手順

①T0ゲートウェイにエンドポイント間のルートを学習(ポリシーベースと同様のため省略)
②NSX IPsecの設定
1.VPNサービスの設定
2.NSX IPsec Session (ルートベース)の作成
3.NSX ローカルエンドポイントの作成
③T0ゲートウェイにトンネル経由のルートを追加
※ここまではNSX-NSXケースと同様(前回のブログ)
④Cisco ルータの設定
1.IKEv2 IPsecの設定
2.アンダーレイルートの設定
3.インターフェースへの適用
4.オーバーレイルートの設定

②NSX IPsecの設定

2.NSX IPsec Session (ルートベース)の作成
ネットワーク > VPN > IPsecセッション > IPsecセッションの追加 からルートベースを選択

ポリシーベースにはなかった設定としてトンネルインターフェイスCIDRの指定が必要となる。

VPN 経由の通信はこのトンネルインターフェースを経由し、対向のトンネルIPをネクストホップとなる転送を行うが、その転送のためのルートはスタティックルートで定義するかBGPにより広報して貰う必要がある。以下はスタティックルートおよびBGPの設定例となる。
*NSXではトンネルインターフェースでのOSPFはサポートしていない

③ゲートウェイにトンネル経由のルートを追加(スタティックルートによるルート追加の場合)
ネットワーク > Tier-0 ゲートウェイ or Tier-1 ゲートウェイ  >ルーティング > スタティックルートからルートを追加

対向サイトのネットワークサブネットを下記、ネクストホップは対向のトンネルインターフェースIPを入力

③T0ゲートウェイにトンネル経由のルートを追加(BGPによるルートの広報の場合)

ネットワーク > Tier-0 ゲートウェイ or Tier-1 ゲートウェイ  >BGP > BGP ネイバー を設定する

BGPネイバーIPは対向のトンネルIPで、送信元アドレスは自身のトンネルIPをいれる

④Cisco ルータの設定
1.IKEv2 IPsecの設定

ここではNSXのデフォルトIKEv2/IPsecプロファイルと合致する暗号化アルゴリズムやパラメータを記載しています

crypto ikev2 proposal Ikev2Proposal
  encryption aes-cbc-128
  integrity sha256
  group 14
  !
crypto ikev2 policy Ikev2Policy
match fvrf any
proposal Ikev2Proposal
  !
crypto ikev2 keyring Keys
  peer NSX
    address 223.135.xx.xx
    pre-shared-key local PASSWORD
    pre-shared-key remote PASSWORD
    !
crypto ikev2 profile Ikev2Profile
  match identity remote address 223.135.xx.xx 255.255.255.255
  authentication remote pre-share
  authentication local pre-share
  keyring local Keys
  !
crypto ipsec transform-set myset esp-gcm
  mode transport
!
crypto ipsec profile IpsecProfile
  set transform-set myset
  set ikev2-profile Ikev2Profile

2.アンダーレイルートの設定
3.インターフェースへの適用
4.オーバーレイルートの設定

オーバーレイルートがスタティックルートの場合

interface Tunnel1
  ip address 10.222.222.2 255.255.255.0
tunnel source GigabitEthernet0

  tunnel mode ipsec ipv4
  tunnel destination 223.135.xx.xx
  tunnel protection ipsec profile IpsecProfile
  !
interface GigabitEthernet0
ip address 172.16.104.81 255.255.252.0
!
ip route 0.0.0.0 0.0.0.0 172.16.107.254  ←対向IPsecエンドポイントへのアンダーレイルート

!
ip route 172.16.10.0 255.255.255.0 Tunnel1 ←対向クライアントセグメントへのオーバーレイルート

オーバーレイルートがBGPの場合 (*NSXではトンネルインターフェースでのOSPFはサポートしていない)

interface Tunnel1
  ip address 10.222.222.2 255.255.255.0
  tunnel source GigabitEthernet0
  tunnel mode ipsec ipv4
  tunnel destination 223.135.xx.xx
  tunnel protection ipsec profile IpsecProfile
  !
interface GigabitEthernet0
  ip address 172.16.104.81 255.255.252.0
!
router bgp 64512 ←対向クライアントセグメントへのオーバーレイ用BGP
  bgp log-neighbor-changes
  neighbor 10.222.222.1 remote-as 65001
  !
  address-family ipv4
   network 172.16.30.0 mask 255.255.255.0
   neighbor 10.222.222.1 activate
  exit-address-family
  !
ip route 0.0.0.0 0.0.0.0 172.16.107.254  ←対向IPsecエンドポイントへのアンダーレイルート

ルートベースの設定は以上になる。


CiscoルータのIPsec状態確認例

以下はルートベースの場合の出力になります。

nsx-isr-01#show crypto ikev2 sa
IPv4 Crypto IKEv2 SA

Tunnel-id Local Remote fvrf/ivrf Status
2 172.16.104.81/4500 223.135.xx.xx/4500 none/none READY
Encr: AES-CBC, keysize: 128, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/418 sec

IPv6 Crypto IKEv2 SA

nsx-isr-01#show crypto ikev2 session
IPv4 Crypto IKEv2 Session

Session-id:22, Status:UP-ACTIVE, IKE count:1, CHILD count:2

Tunnel-id Local Remote fvrf/ivrf Status
2 172.16.104.81/4500 223.135.xx.xx/4500 none/none READY
Encr: AES-CBC, keysize: 128, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/425 sec
Child sa: local selector 0.0.0.0/0 – 255.255.255.255/65535
remote selector 0.0.0.0/0 – 255.255.255.255/65535
ESP spi in/out: 0xA9F0D2ED/0xF4B9001
Child sa: local selector 0.0.0.0/0 – 255.255.255.255/65535
remote selector 0.0.0.0/0 – 255.255.255.255/65535
ESP spi in/out: 0xB9CC9DFF/0x901C9000

IPv6 Crypto IKEv2 Session

IKEv2 セッションが正常に張れている。

 

nsx-isr-01#show crypto ipsec sa

interface: Tunnel1
Crypto map tag: Tunnel1-head-0, local addr 172.16.104.81

protected vrf: (none)
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
current_peer 223.135.xx.xx port 4500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 440, #pkts encrypt: 440, #pkts digest: 440
#pkts decaps: 440, #pkts decrypt: 440, #pkts verify: 440
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0

local crypto endpt.: 172.16.104.81, remote crypto endpt.: 223.135.xx.xx
plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0
current outbound spi: 0xF4B9001(256610305)
PFS (Y/N): Y, DH group: group14

inbound esp sas:
spi: 0xB9CC9DFF(3117194751)
transform: esp-gcm ,
in use settings ={Tunnel UDP-Encaps, }
conn id: 1024, flow_id: SW:24, sibling_flags 80000040, crypto map: Tunnel1-head-0
sa timing: remaining key lifetime (k/sec): (4608000/3159)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
spi: 0xA9F0D2ED(2851132141)
transform: esp-gcm ,
in use settings ={Tunnel UDP-Encaps,
conn id: 1025, flow_id: SW:25, sibling_flags 80000040, crypto map: Tunnel1-head-0
sa timing: remaining key lifetime (k/sec): (4274988/3211)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)

inbound ah sas:

inbound pcp sas:

outbound esp sas:
spi: 0x901C9000(2417790976)
transform: esp-gcm ,
in use settings ={Tunnel UDP-Encaps, }
conn id: 1023, flow_id: SW:23, sibling_flags 80000040, crypto map: Tunnel1-head-0
sa timing: remaining key lifetime (k/sec): (4608000/3159)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
spi: 0xF4B9001(256610305)
transform: esp-gcm ,
in use settings ={Tunnel UDP-Encaps, }
conn id: 1026, flow_id: SW:26, sibling_flags 80000040, crypto map: Tunnel1-head-0
sa timing: remaining key lifetime (k/sec): (4274988/3211)
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)

outbound ah sas:

outbound pcp sas:

IPsec経由の通信が正常にカウントされている。

 

nsx-isr-01#show ip bgp
BGP table version is 4, local router ID is 172.16.104.81
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path,
Origin codes: i – IGP, e – EGP, ? – incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path
 *>   172.16.10.0/24   10.222.222.1             0             0 65001 ?
*>   172.16.30.0/24   0.0.0.0                  0         32768 i nsx-isr-01#show ip route
Codes: L – local, C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static route, H – NHRP, l – LISP
a – application route
+ – replicated route, % – next hop override, p – overrides from PfR

Gateway of last resort is 172.16.107.254 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 172.16.107.254
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.222.222.0/24 is directly connected, Tunnel1
L        10.222.222.2/32 is directly connected, Tunnel1
172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks
B        172.16.10.0/24 [20/0] via 10.222.222.1, 00:19:32
C        172.16.30.0/24 is directly connected, Vlan172
L        172.16.30.254/32 is directly connected, Vlan172
C        172.16.104.0/22 is directly connected, GigabitEthernet0
L        172.16.104.81/32 is directly connected, GigabitEthernet0

対向のクライアントセグメントルートが学習できている。

 

 

[Tips: NSX VPNトンネルの冗長化]

NSX のルートベースIPsecではトンネルインターフェースの冗長をサポートしている。冗長されたWAN回線がある場合は、回線ごとにIPsecを構築することでWAN回線の耐障害性を高めることができる。この場合、ルートの広報はBGPを利用する。(スタティックルートはサポートしない)