Wireguard не работает с VRRP

Wireguard не работает с VRRP

Я пытаюсь использовать Wireguard на брандмауэре с VRRP (на основе Keepalived). Брандмауэр блокирует все соединения, кроме VRRP-адреса на порту 51820 и действительных установленных соединений.

Wireguard работает хорошо, если я не использую VRRP.

Когда я пытаюсь использовать VRRP, пакет от клиента идет на адрес VRRP как обслуживаемый. Но Wireguard пытается ответить с физического IP-адреса (а не VRRP), который блокируется на ВЫХОДЕ брандмауэром, поскольку IP меняется.

Знаете ли вы, как следует настроить Wireguard, чтобы он отвечал по адресу VRRP, а не по физическому?

Я бы не разрешил отвечать по физическому IP-адресу, так как клиентский брандмауэр может заблокировать соединение, если он также отслеживает соединение.

Я пытаюсь посмотреть, может ли помочь SNAT, чтобы переписать физический IP на VRRP, но его нельзя указывать в правилах OUTPUT или PREROUTING nat.

Некоторые логи: на клиенте (IP 10.3.3.2):

11:41:09.011209 IP 10.3.3.2.47755 > 10.3.3.254.51820: UDP, length 148
11:41:14.131337 IP 10.3.3.2.47755 > 10.3.3.254.51820: UDP, length 148

на брандмауэре (10.3.3.252 физический, 10.3.3.254 VRRP):

Jan 12 11:41:09 FW-DEV1 kernel: [ 3950.406083] OUTPUT: IN= OUT=enp0s9 SRC=10.3.3.252 DST=10.3.3.2 LEN=120 TOS=0x08 PREC=0x80 TTL=64 ID=7125 PROTO=UDP SPT=51820 DPT=47755 LEN=100
Jan 12 11:41:14 FW-DEV1 kernel: [ 3955.526617] OUTPUT: IN= OUT=enp0s9 SRC=10.3.3.252 DST=10.3.3.2 LEN=120 TOS=0x08 PREC=0x80 TTL=64 ID=7878 PROTO=UDP SPT=51820 DPT=47755 LEN=100

Изменить: Добавить NAT

Я включил NAT на интерфейсе VRRP, и это почти решило проблему.

iptables -t nat -A PREROUTING -d WGIP/32 -p udp -m udp --dport 51820 -j DNAT --to-destination PHYSICALIP

Но мне нужно открыть правило фильтра с PhysicalIP адресом. Это значит, что VRRP и PHYSICALIP открыты извне. Я не могу поставить правило DROP перед правилом nat, чтобы запретить соединение, кроме как с VRRPIP

Добавлена ​​информация

правило ip:

0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

Нет доступных nft

Связанный контент