Yamaha RTXで片拠点のIPアドレスが不定となる場合のIPSec設定を紹介します。IPアドレスが固定の場合は、IPアドレスをIDとして対向機器を指定していましたが、不定となる場合は「名前」や「FQDN」をIDとして対向機器を指定する事ができます。
設定まとめ
「IPsec設定 両拠点固定IPアドレスCLI編」で紹介されたコマンドは説明を割愛します。
名前によるID指定
DHCPやPPP IPCPなどでIPアドレスが不定になる場合は、IPアドレスをIDとしてIPsecを確立する事ができません。このような場合は「名前」や「FQDN」をIDとして指定する事ができます。
自身のIDを名前で指定するコマンドは以下の通りです。
tunnel select <トンネル番号> ipsec ike local name <ゲートウェイ番号> <自身のID> key-id
対向拠点のIDを名前で指定するコマンドは以下の通りです。
tunnel select <トンネル番号> ipsec ike remote name <ゲートウェイ番号> <対向のID> key-id
動作確認
動作確認の構成
以下の環境で動作確認を行います。R20はDHCPによる不定IPアドレスとします。
+------------------+ | RockyLinux 8.4 | | host010 | +-------+----------+ ens224 | .10 | | 192.168.10.0/24 | lan1 | .1 +-------+----------+ | Yamaha RTX 810 | | R10 | +-------+----------+ lan2 | .10 | | 200.0.10.0/24 | eth0 | .1 +-------+----------+ | VyOS 1.4 | | Internet | +-------+----------+ eth1 | .1 | | 200.0.20.0/24 | lan2 | .dhcp +-------+----------+ | Yamaha RTX 810 | | R20 | +-------+----------+ lan1 | .1 | | 192.168.20.0/24 | ens224 | .20 +-------+----------+ | RockyLinux 8.4 | | host020 | +------------------+
初期設定
初期設定は以下の通りです。R20のグローバルIPアドレスはDHCPによるアドレス取得です。
動作確認 (1) IPsec確立
R10側は対向拠点のIPアドレスは不定となるため「ipsec ike remote address 1 any」のように指定します。また、対向拠点を識別できるようIPアドレスではなく名前「R20」をIDとして指定します。
[R10:RTX810] tunnel select 1 ipsec tunnel 1 ipsec sa policy 1 1 esp 3des-cbc md5-hmac ipsec ike keepalive use 1 on heartbeat 10 6 ipsec ike local address 1 200.0.10.10 ipsec ike pre-shared-key 1 text P@ssw0rd ipsec ike remote address 1 any ipsec ike remote name 1 R20 key-id tunnel enable 1 tunnel select none ipsec use on ipsec auto refresh on
R20側は自身を対向拠点に識別してもらえるようIPアドレスではなく名前「R20」をIDとして指定します。また、このようなIPアドレス不定のような場合は、IKE keepaliveを省略すると発呼が始まらない現象に遭遇しましたので、IKE keepaliveは必ず有効にするようにして下さい。
[R20:RTX810] tunnel select 1 ipsec tunnel 1 ipsec sa policy 1 1 esp 3des-cbc md5-hmac ipsec ike keepalive use 1 on heartbeat 10 6 ipsec ike local name 1 R20 key-id ipsec ike pre-shared-key 1 text P@ssw0rd ipsec ike remote address 1 200.0.10.10 tunnel enable 1 tunnel select none ipsec use on ipsec auto refresh on
IPsecトンネルが確立されている事を確認します。
[R10:RTX810] # show ipsec sa Total: isakmp:1 send:1 recv:1 sa sgw isakmp connection dir life[s] remote-id ----------------------------------------------------------------------------- 1 1 - isakmp - 28466 200.0.20.100 2 1 1 tun[001]esp send 28468 200.0.20.100 3 1 1 tun[001]esp recv 28468 200.0.20.100 # # show ipsec sa ? 入力形式: show ipsec sa [SAの識別子] show ipsec sa gateway [ゲートウェイの識別子] [detail] 説明: 現在管理しているSAを表示します # show ipsec sa gateway 1 detail SA[1] 寿命: 28456秒 自分側の識別子: 200.0.10.10 相手側の識別子: 200.0.20.100 (R20) プロトコル: IKE アルゴリズム: 3DES-CBC, SHA-1, MODP 1024bit SPI: 72 11 2e 24 57 bd 67 6e 16 82 ae bb d8 3d 9c 19 鍵 : ** ** ** ** ** (confidential) ** ** ** ** ** ---------------------------------------------------- SA[2] 寿命: 28458秒 <omitted>
動作確認 (2) 疎通確認
疎通確認ができるようstatic routeを定義します。
[R10:RTX810] ip route 192.168.20.0/24 gateway tunnel 1
[R30:RTX810] ip route 192.168.10.0/24 gateway tunnel 1
host010とhost020間で疎通可能である事を確認します。
[host010:RockyLinux8.4] [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.53 ms 64 bytes from 192.168.20.20: icmp_seq=2 ttl=62 time=1.39 ms 64 bytes from 192.168.20.20: icmp_seq=3 ttl=62 time=1.41 ms --- 192.168.20.20 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 1.388/1.442/1.525/0.059 ms [root@host010 ‾]#