はじめに
本ドキュメントでは、Cisco ルータから Umbrella への IPsec トンネルを経由してアプリケーションと通信する際、アプリケーションを利用できない場合の一因を紹介します。なお、あくまで本ドキュメントでご紹介する例は、アプリケーションを利用できない要因の 1 つになり、環境によっては本ドキュメントで紹介する要因が当てはまらない場合もあります。
本ドキュメントは、Catalyst 8000v 17.12.01a を用いて検証、作成しております。本ドキュメントの内容は、IOS-XE ソフトウェアで動作する Catalyst 8000 シリーズや ISR 1000 シリーズなどでも利用することができます。
IPsec トンネルの確立方法
Cisco ルータと Umbrella 間の IPsec トンネル確立のための設定はこちらのサイトを参照してください。
Umbrella がサポートしている IPsec のパラメータについてはこちらを参照してください。
注意事項
IKEv2 Proposal を設定する際に、Encryption は AES-GCM (256ビット) を指定し、"integrity" コマンドを使用して Integrity を "sha256" に設定しようとすると以下のように AES-GCM (256ビット) と一緒に設定できない、というエラーを出力します。
router(config)#crypto ikev2 proposal umbrella-proposal
IKEv2 proposal MUST either have a set of an encryption algorithm other than aes-gcm, an integrity algorithm and a DH group configured or
encryption algorithm aes-gcm, a prf algorithm and a DH group configured
router(config)#crypto ikev2 proposal umbrella-proposal
IKEv2 proposal MUST either have a set of an encryption algorithm other than aes-gcm, an integrity algorithm and a DH group configured or
encryption algorithm aes-gcm, a prf algorithm and a DH group configured
router(config-ikev2-proposal)#encryption aes-gcm-256
router(config-ikev2-proposal)#integrity sha256
Warning!! Integrity algorithms are not allowed with AES_GCM
この場合には、以下のように "prf" コマンドを使用して "sha256" を設定してください。PRF とは Pseudo Random Function の略称で、詳細はこちらを参照してください。
router(config-ikev2-proposal)#prf sha256
検証環境
本検証では、Windows PC が Catalyst 8000v から Umbrella への IPsec トンネルを通して、cisco.com へアクセスします。
検証環境は以下の通りです。Catalyst 8000v から Cisco Umbrella への IPsec トンネルは問題なく Up していると仮定します。

本ドキュメントの検証環境において、Catalyst 8000v において Umbrella と IPsec トンネルを確立し、Windows PC が Umbrella との IPsec トンネルを経由して cisco.com へアクセスするために設定した内容は以下のとおりです。
crypto ikev2 proposal umbrella-proposal
encryption aes-gcm-256
prf sha256
group 19 20
crypto ikev2 policy umbrella-policy
match address local <IP Address>
proposal umbrella-proposal
crypto ikev2 keyring umbrella-kr
peer umbrella
address 146.112.112.8
pre-shared-key <pre-shared-key>
crypto ikev2 profile umbrella-ikev2-profile
match identity remote address 146.112.112.8 255.255.255.255
identity local email <email>
authentication remote pre-share
authentication local pre-share
keyring local umbrella-kr
dpd 10 2 periodic
crypto ipsec transform-set umbrella-tset esp-aes 256 esp-sha256-hmac
mode tunnel
crypto ipsec profile umbrella-ipsec-profile
set transform-set umbrella-tset
set ikev2-profile umbrella-ikev2-profile
interface GigabitEthernet1
ip address <IP Address> <Subnet mask>
ip nat outside
end
interface Tunnel1
ip unnumbered GigabitEthernet1
tunnel source GigabitEthernet1
tunnel mode ipsec ipv4
tunnel destination 146.112.112.8
tunnel protection ipsec profile umbrella-ipsec-profile
end
interface GigabitEthernet2
ip address 192.168.171.254 255.255.255.0
ip nat inside
ip policy route-map umbrella-routemap
end
ip access-list standard 1
10 permit 192.168.171.0 0.0.0.255
ip nat inside source list 1 interface GigabitEthernet1 overload
ip access-list extended To_Umbrella
10 permit ip 192.168.171.0 0.0.0.255 any
route-map umbrella-routemap permit 10
match ip address To_Umbrella
set interface Tunnel1
cisco.com へアクセスできるようにする
ここまでの検証環境において、Windows PC から cisco.com へアクセスしようとすると、タイムアウトが発生します。

しかし、cisco.com への Ping は成功します。

Umbrella へのトンネル接続時のトラブルシューティング
Umbrella へのトンネル接続時のトラブルシューティングについては、こちらを参照してください。
本検証では cisco.com での Ping は成功、トンネルは問題なく Up し、また Route-map や ACL で特に設定は入れていないため、他の原因について紹介します。
TCP MSS の値を変更する
Cisco Umbrella では、Secure Internet Access 用の IPsec トンネルは MTU (Maximum Transmission Unit) が 1400バイト 以下、MSS (Maximum Segment Size) が 1360 バイト以下である必要があります (参考)。さらに IPsec の設定 (Encryption、Integrity 等) や利用する WAN によっては、もう少し大きな MTU と MSS であっても動作可能、またはもう少し小さな MTU とMSS である必要があります。適切な MTU、MSS の値については IPsec の設定、WAN に基づいて計算してください。計算方法は省略しますが、本環境での適切な MSS は、1350になります。
そこで以下のコマンドで、Catalyst 8000v から Cisco Umbrella へ送るパケットの MSS を 1350 に設定します。
router(config)#interface Tunnel1
router(config-if)#ip tcp adjust-mss 1350
この結果、問題なく Windows PC から cisco.com へアクセスできました。
