NEC IXのIKEv2 IPsec設定 片拠点 不定IPアドレス

スポンサーリンク

NEC IXで片拠点がプライベートアドレスを持つ場合のIPSec設定を紹介します。IPsecの通信経路上にNAT機器が存在する場合は、udp500, udp4500を用いてNAT変換前のIPアドレスを通知する「NATトラバーサル」と呼ばれる機能を有効にする必要があります。

NEC IXで「NATトラバーサル」を有効にできるのはversion9.2以降です。NEC IXのファームウェアは一般公開されていませんので、バージョンアップは極めて困難です。ヤフオクなどでNEC IXを入手する場合は、ファームウェアバージョンに注意が必要です。

設定まとめ

コマンド一覧

IKEv2 IPsecに関連するコマンド一覧は以下の通りです。「NEC IXのIKEv2 IPsec設定 両拠点 固定IPアドレス」と「NEC IXのIKEv2 IPsec設定 片拠点 プライベートIPアドレス」に載せたコマンドは説明を省略します。

Router(config)# interface Tunnel0.0
Router(config-Tunnel0.0)# ikev2 peer any authentication psk id [keyid|ipv4|fqdn] <value>

対向拠点の指定

対向拠点のIPアドレスが不定となる場合は、peerを「any」として指定できます。

Router(config)# interface Tunnel0.0
Router(config-Tunnel0.0)# ikev2 peer any authentication psk id [keyid|ipv4|fqdn] <value>

動作確認

動作確認の構成

以下の環境で動作確認を行います。

+------------------+
|  Rocky Linux 8.5 |
|     host010      |
+-------+----------+
 ens224 | .10
        |
        | 192.168.10.0/24
        | 
   G1.0 | .1 
+-------+----------+ 
|    NEC IX 2015   | 
|       R10        |
+-------+----------+
   G0.0 | .10
        |
        | 200.0.10.0/24
        |
   eth0 | .1 
+-------+----------+ 
|    VyOS 1.4      | 
|    Internet      |
+-------+----------+
   eth1 | .1
        |
        | 200.0.20.0/24
        |
   G0.0 | .dhcp
+-------+----------+ 
|    NEC IX 2015   | 
|       R20        |
+-------+----------+
   G1.0 | .1 
        |
        | 192.168.20.0/24
        | 
 ens224 | .20
+-------+----------+
|  Rocky Linux 8.5 |
|     host020      |
+------------------+

初期設定

IX2015の初期設定は以下の通りとします。設定はIPアドレスとインターネットに接続するためのNATしか投入していません。

R10 : NEC IX 2015
! NEC Portable Internetwork Core Operating System Software
! IX Series IX2105 (magellan-sec) Software, Version 8.10.11, RELEASE SOFTWARE
! Compiled Aug 02-Fri-2013 13:57:45 JST #2
! Current time Nov 23-Tue-2021 17:46:43 JST
!
!
hostname R10
timezone +09 00
!
!
!
username admin password hash 0C34240482 administrator
!
!
!
!
!
!
logging buffered 131072
logging subsystem all warn
logging timestamp datetime
!       
!
ip route default 200.0.10.1
!
!
!
!
!
!
!
!
!
!
telnet-server ip enable
!
!
!
!
!
!
!
!
!
device GigaEthernet0
!
device GigaEthernet1
!
interface GigaEthernet0.0
  ip address 200.0.10.10/24
  ip napt enable
  no shutdown
!
interface GigaEthernet1.0
  ip address 192.168.10.1/24
  no shutdown
!
interface Loopback0.0
  no ip address
!
interface Null0.0
  no ip address
R20 : NEC IX 2015
! NEC Portable Internetwork Core Operating System Software
! IX Series IX2105 (magellan-sec) Software, Version 10.2.34, RELEASE SOFTWARE
! Compiled Mar 26-Fri-2021 16:04:41 JST #2
! Current time Nov 23-Tue-2021 18:02:23 JST
!
hostname R20
timezone +09 00
!
logging buffered 8192
logging subsystem all warn
logging timestamp datetime
!
username admin password hash 63cA632c6fBB8D099804ed6eBc758b@ administrator
!
!
ip ufs-cache enable
!
!
!
!
!
!
!       
!
!
telnet-server ip enable
!
!
!
device GigaEthernet0
!
device GigaEthernet1
!
interface GigaEthernet0.0
  ip address dhcp receive-default
  no shutdown
!
interface GigaEthernet1.0
  ip address 192.168.20.1/24
  no shutdown
!
interface Loopback0.0
  no ip address
!
interface Null0.0
  no ip address
Internet : VyOS1.4
set interfaces ethernet eth0 address '200.0.10.1/24'
set interfaces ethernet eth0 hw-id '00:50:56:90:8e:9d'
set interfaces ethernet eth1 address '200.0.20.1/24'
set interfaces ethernet eth1 hw-id '00:50:56:90:a2:8c'
set protocols static route 192.168.0.0/16 next-hop 192.168.20.30
set service dhcp-server shared-network-name net020 subnet 200.0.20.0/24 default-router '200.0.20.1'
set service dhcp-server shared-network-name net020 subnet 200.0.20.0/24 range range01 start '200.0.20.20'
set service dhcp-server shared-network-name net020 subnet 200.0.20.0/24 range range01 stop '200.0.20.100'
set service ssh disable-host-validation
set system config-management commit-revisions '100'
set system conntrack modules ftp
set system conntrack modules h323
set system conntrack modules nfs
set system conntrack modules pptp
set system conntrack modules sip
set system conntrack modules sqlnet
set system conntrack modules tftp
set system console device ttyS0 speed '115200'
set system host-name 'internet'
set system login user admin authentication encrypted-password '$6$cl1DIDt8CHJnLXst$zNkGlajjlSDirfSVdmFEkVfkvj3rxjayuu1RfzvuJQ.rNzJlb3s995/1HZX91nvW83ZvINnGvXBG6Z.sWVE7W/'
set system login user vyos authentication encrypted-password '$6$BLBE.ChYBI4ynui8$u2B.sTlyz1d.5GEjLyQKQmNRPN3kDHb3ynAzolORLLGOYe3up4u3vNg93QWk1DkOBbRNgkJJyYYVkrMofOFgw1'
set system login user vyos authentication plaintext-password ''
set system ntp server time1.vyos.net
set system ntp server time2.vyos.net
set system ntp server time3.vyos.net
set system syslog global facility all level 'info'
set system syslog global facility protocols level 'debug'

動作確認 (1) IPsec確立

initiator側

initiator側のIPアドレスは不定です。デフォルト設定の場合はlocal idはIPアドレスになりますので、デフォルト設定ではlocal idが不定になってしまいます。

そこで、initiator側はlocal idを明示指定する必要があります。

[R20:IX2015]
ikev2 authentication psk id ipv4 200.0.10.10 key char P@ssw0rd
!
interface Tunnel0.0
  tunnel mode ipsec-ikev2
  ip address 169.254.0.20/24
  ip tcp adjust-mss auto
  ikev2 connect-type auto
  ikev2 ipsec pre-fragment
  ikev2 local-authentication id keyid R20
  ikev2 negotiation-direction initiator
  ikev2 peer 200.0.10.10 authentication psk id ipv4 200.0.10.10
  no shutdown

responder側

responder側から見ると対向拠点のIPアドレスは不定になります。このような場合は、対向のIPアドレスを「any」と指定します。

[R10:IX2015]
ikev2 authentication psk id keyid R20 key char P@ssw0rd
!
interface Tunnel0.0
  tunnel mode ipsec-ikev2
  ip address 169.254.0.10/24
  ip tcp adjust-mss auto
  ikev2 connect-type auto
  ikev2 ipsec pre-fragment
  ikev2 negotiation-direction responder
  ikev2 peer any authentication psk id keyid R20
  no shutdown

NAT併用時の注意

NAT併用時はudp500などの受信許可が必要になる事もあります。R20がinitiatorでR10がresponderになりますので、受信許可が必要なのはR10のみです。

NEC IXのバージョンによっては暗黙的にudp500などが許可されるため、設定投入を省略できます。

[R10:IX2015]
interface GigaEthernet0.0
  ip napt static GigaEthernet0.0 50
  ip napt static GigaEthernet0.0 udp 500

IPsec確立の確認

ikev2 saが確立された事を確認します。local id, remote id, initiator, responderあたりの仕様がやや複雑なので注意深く観察しましょう。

[R10:IX2015]
R10(config)# show ikev2 sa 
IKEv2 SA - 1 created
Interface Tunnel0.0
  SPI (I)0x5b199b22d1531af9  (R)0x71c44759805339a2
    Remain lifetime[sec] : 84555
    Serial : 1
    Direction : responder
    Local Addr : 200.0.10.10:500
    Peer Addr  : 200.0.20.20:500
    Local ID : IPV4-ADDR 200.0.10.10
    Peer ID  : KEY-ID R20
    Status : establish
    Local message ID : 0
    Peer message ID  : 2
    Encryption alg : AES-CBC-256

 <omitted>

[R20:IX2015]
R20(config)# show ikev2 sa 
IKEv2 SA - 1 created
Interface Tunnel0.0
  SPI (I)0x5b199b22d1531af9  (R)0x71c44759805339a2
    Remain lifetime[sec] : 84530
    Serial : 5
    Direction : initiator
    Local Addr : 200.0.20.20:500
    Peer Addr  : 200.0.10.10:500
    Local ID : KEY-ID R20
    Peer ID  : IPV4-ADDR 200.0.10.10
    Status : establish
    Local message ID : 2
    Peer message ID  : 0
    Encryption alg : AES-CBC-256

 <omitted>

ikev2 child-saが確立された事を確認します。

[R10:IX2015]
R10(config)# show ikev2 child-sa 
Child SA - 1 connected
Interface Tunnel0.0
  IKE Peer ID : KEY-ID R20
    IKE SPI (I)0x5b199b22d1531af9  (R)0x71c44759805339a2
    IKE SA serial : 1
    Child SA
      Protocol : ESP
      Local Addr : 200.0.10.10
      Peer Addr  : 200.0.20.20
      Enc alg  : AES-CBC-256
      Hash alg : HMAC-SHA2-512-256
      Remain lifetime[sec] : 26912
      Anti-replay : on
      Direction is outbound

 <omitted>

[R20:IX2015]
R20(config)# show ikev2 child-sa 
Child SA - 1 connected
Interface Tunnel0.0
  IKE Peer ID : IPV4-ADDR 200.0.10.10
    IKE SPI (I)0x5b199b22d1531af9  (R)0x71c44759805339a2
    IKE SA serial : 5
    Child SA
      Protocol : ESP
      Local Addr : 200.0.20.20
      Peer Addr  : 200.0.10.10
      Enc alg  : AES-CBC-256
      Hash alg : HMAC-SHA2-512-256
      Remain lifetime[sec] : 26878
      Anti-replay : on
      Direction is outbound

 <omitted>

トンネル間の疎通を確認します。

[R10:IX2015]
R10(config)# ping 169.254.0.20 count 3
PING 169.254.0.10 > 169.254.0.20 56 data bytes
64 bytes from 169.254.0.20: icmp_seq=0 ttl=64 time=1.076 ms
64 bytes from 169.254.0.20: icmp_seq=1 ttl=64 time=0.966 ms
64 bytes from 169.254.0.20: icmp_seq=2 ttl=64 time=0.886 ms

--- 169.254.0.20 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip (ms)  min/avg/max = 0.886/0.976/1.076

動作確認 (2) 拠点間の疎通確認

ルーティング設定

host010とhost030間で疎通可能になるようにstatic routeを定義します。

[R10:IX2015]
ip route 192.168.20.0/24 Tunnel0.0
[R20:IX2015]
ip route 192.168.10.0/24 Tunnel0.0

疎通確認

host010(192.168.10.10)とhost020(192.168.20.20)の間で疎通を確認します。

[host010:RockyLinux8.5]
[root@host010 ~]# ping -c 3 192.168.20.20
PING 192.168.20.20 (192.168.20.20) 56(84) bytes of data.
64 bytes from 192.168.20.20: icmp_seq=1 ttl=62 time=1.70 ms
64 bytes from 192.168.20.20: icmp_seq=2 ttl=62 time=1.76 ms
64 bytes from 192.168.20.20: icmp_seq=3 ttl=62 time=1.43 ms

--- 192.168.20.20 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.425/1.628/1.763/0.153 ms
タイトルとURLをコピーしました