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 ‾]#
