Three MikroTiks, "2", "3", and "4"; "2" and "3" keep up a WireGuard tunnel each to "4"; "4" is a responder.
It works fine, with one exception: Although persistent-keepalive is set to 00:00:30 on both peer ends of each WireGuard tunnel, the only time either peer MikroTik logs the keepalive is right at the time of each handshake (every two minutes). It seems that a keepalive should be logged every 30 seconds, no?
"4" config:
interface=wg1 name="MikroTik2-WG" public-key={public key} endpoint-address="" endpoint-port=0 current-endpoint-address=80.41.162.160
current-endpoint-port=12345 allowed-address=192.168.254.0/24,192.168.255.142/32 persistent-keepalive=30s client-endpoint="" client-allowed-address=::/0 responder=yes
rx=764.2MiB tx=271.6MiB last-handshake=54s
"2" config:
interface=wg1 name="MikroTik4-WG" public-key="{public key}" http://endpoint-address=mikrotik4-dyn.felines.org endpoint-port=12345
current-endpoint-address=83.40.90.106 current-endpoint-port=12345 allowed-address=192.168.255.0/26,192.168.255.64/26,192.168.255.128/26,192.168.251.0/24 persistent-keepalive=30s
client-endpoint="" client-allowed-address=::/0 rx=266.4MiB tx=757.4MiB last-handshake=1m54s
Log on "4":
2026-06-12 22:34:10 wireguard,debug wg1: [MikroTik3B-WG] {pubkey}: Receiving handshake initiation from peer (95.33.33.196:59366) extra:0 (ein
val)
2026-06-12 22:34:10 wireguard,debug wg1: [MikroTik3B-WG] {pubkey}: Sending handshake response to peer (95.33.33.196:59366)
2026-06-12 22:34:10 wireguard,debug wg1: [MikroTik3B-WG] {pubkey}: Receiving keepalive packet from peer (95.33.33.196:59366)2026-06-12 22:34:38 wireguard,debug wg1: [MikroTik3-WG] {pubkey}: Receiving handshake initiation from peer (73.80.148.50:12345) extra:0 (einv
al)
2026-06-12 22:34:38 wireguard,debug wg1: [MikroTik3-WG] {pubkey}: Sending handshake response to peer (73.80.148.50:12345)
2026-06-12 22:34:38 wireguard,debug wg1: [MikroTik3-WG] {pubkey}: Receiving keepalive packet from peer (73.80.148.50:12345)2026-06-12 22:35:24 wireguard,debug wg1: [MikroTik2-WG] {pubkey}: Receiving handshake initiation from peer (83.41.122.160:12345) extra:0 (ein
val)
2026-06-12 22:35:24 wireguard,debug wg1: [MikroTik2-WG] {pubkey}: Sending handshake response to peer (83.41.122.160:12345)
2026-06-12 22:35:24 wireguard,debug wg1: [MikroTik2-WG] {pubkey}: Receiving keepalive packet from peer (83.41.122.160:12345)2026-06-12 22:36:10 wireguard,debug wg1: [MikroTik3B-WG] {pubkey}: Receiving handshake initiation from peer (95.33.33.196:12345) extra:0 (ein
val)
2026-06-12 22:36:10 wireguard,debug wg1: [MikroTik3B-WG] {pubkey}: Sending handshake response to peer (95.33.33.196:12345)
2026-06-12 22:36:10 wireguard,debug wg1: [MikroTik3B-WG] {pubkey}: Receiving keepalive packet from peer (95.33.33.196:12345)2026-06-12 22:36:38 wireguard,debug wg1: [MikroTik3-WG] {pubkey}: Receiving handshake initiation from peer (73.80.148.50:12345) extra:0 (einv
al)
2026-06-12 22:36:38 wireguard,debug wg1: [MikroTik3-WG] {pubkey}: Sending handshake response to peer (73.80.148.50:12345)
2026-06-12 22:36:38 wireguard,debug wg1: [MikroTik3-WG] {pubkey}: Receiving keepalive packet from peer (73.80.148.50:12345)
Log on "2" (not concurrent, but fully representative):
2026-06-12 22:37:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Sending handshake initiation to peer (83.40.90.106:12345)
2026-06-12 22:37:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Receiving handshake response from peer (83.40.90.106:12345)
2026-06-12 22:37:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Sending keepalive packet to peer (83.40.90.106:12345)2026-06-12 22:39:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Sending handshake initiation to peer (83.40.90.106:12345)
2026-06-12 22:39:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Receiving handshake response from peer (83.40.90.106:12345)
2026-06-12 22:39:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Sending keepalive packet to peer (83.40.90.106:12345)2026-06-12 22:41:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Sending handshake initiation to peer (83.40.90.106:12345)
2026-06-12 22:41:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Receiving handshake response from peer (83.40.90.106:12345)
2026-06-12 22:41:24 wireguard,debug wg1: [MikroTik4-WG] {public key}: Sending keepalive packet to peer (83.40.90.106:12345)
On both:
/system/logging/print where topics~"wireguard"
TOPICS ACTION
10 wireguard memory
debug
(The same is seen on the "3" <-> "4" WireGuard tunnel).
Why are keepalive packets only being sent once per handshake, right at the time of (immediately after) the handshake, instead of once every 30 seconds? And, why are keepalive packets only sent from "2" and "3", to "4" (the responder), and not also from "4" to "2" and to "3"?
thanks,