中華電信 hicloud CVPC 的 IPsec VPN

先說結論,如果照中華電信 hicloud 的文件設定,是絕對不會通的

我一開始參考的是這邊

  • 16.5 如何新增 IPSEC Tunnel 至客戶端 IPSEC 設備
  • 16.6 客戶端 IPSSEC VPN 設備 Tunnel 設定範例

這兩份文件。

16.5 這份文件提供了 hicloud 端的 IPsec 設定,基本上沒有太大的問題,要注意的是加密演算法要和本地端設備設定相同

主要的問題會在 16.6 這份文件讓人很困惑。以 phase 1 來說,文件中的設定用了

set security ike proposal ike-proposal authentication-algorithm md5

set security ike proposal ike-proposal encryption-algorithm 3des-cbc

這樣的加密和認證方式,但是 hicloud 的後台並沒有這個組合可以選,所以我改用 sha1/3des 這個組合。

同樣的問題也發生在 phase 2,文件中用了

set security ipsec proposal ike-proposal authentication-algorithm hmac-sha1-96

set security ipsec proposal ike-proposal encryption-algorithm aes-128-cbc

這樣的組合,但是一樣後台並沒有這樣的組合,所以我一樣用 sha1/3des

如果只有這樣,你的 IPSec tunnel 肯定還是不會起來,花了很長時間找原因之後,忽然發現在

run show log kmd-logs

的時候,會噴類似下面的 log

Jun 5 15:03:52 sr-hq-srx240-1 kmd[22276]: IKE negotiation failed with error: Authentication failed. IKE Version: 1, VPN: ike-vpn-hicloud-10-0-0-0 Gateway: gw-hicloud-10-0-0-0, Local: xxx.xxx.xxx.xxx/500, Remote: 210.65.122.28/500, Local IKE-ID: xxx.xxx.xxx.xxx, Remote IKE-ID: 127.0.0.1, VR-ID: 0

可以看到 IKE 在 negotiation 的時候,認證失敗了。而失敗的原因並不是設定中的 pre-shared-key 打錯,而是因為 hicloud 的 Remote IKE-ID 是 127.0.0.1。

所以我們必須要在設定中加上這樣的設定

set security ike gateway ${YOUR_GATEWAY_NAME} remote-identity inet 127.0.0.1

這樣就會通了,而這一點是完全沒有在文件上提到的。

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料