Мой провайдер предлагает только публичные IPv4-адреса CGNAT, поэтому функции SiteMagic и site-to-site VPN от Unifi не работают. К сожалению, у Unifi SiteMagic и site-to-site VPN также нет поддержки IPv6. Значит, мой IPv6-адрес здесь не пригодится.
Чтобы обойти эту проблему, я настроил WireGuard-сервер, размещенный вне локальной сети. Обе точки доступа (UDM pro) успешно подключаются к этому WireGuard-серверу. Я настроил маршрутизацию на основе политик на обеих точках доступа. Подключения с точки доступа к серверу работают, а с сервера к точке доступа – тоже. Но соединения между точками доступа, к сожалению, не работают.
При перехвате пакетов на сервере выяснилось, что трафик от одной точки доступа действительно поступает на интерфейс wg0, но не выходит на другую точку доступа обратно. Это заставляет меня думать, что WireGuard-сервер не перенаправляет трафик между клиентами.
Теперь я надеюсь, что кто-нибудь сталкивался с чем-то подобным или, возможно, сможет пролить свет на это поведение WireGuard. Я потратил много времени на поиск решения в интернете, но безрезультатно.
Вот моя конфигурация WireGuard:
[Interface]
# some.host.name
PrivateKey = <redacted>
Address = 10.255.255.249/32
ListenPort = 51820
MTU = 1420
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens6 -j MASQUERADE
PostUp = iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens6 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -o wg0 -j ACCEPT
[Peer]
# A
PublicKey = <redacted>
AllowedIPs = 10.255.255.250/32,172.16.0.0/24,172.16.1.0/24
PersistentKeepalive = 10
[Peer]
# B
PublicKey = <redacted>
AllowedIPs = 10.255.255.251/32,172.16.2.0/24
PersistentKeepalive = 10
Site A[Interface]
# A
PrivateKey = <redacted>
Address = 10.255.255.250/32
DNS = 172.16.0.2
MTU = 1384
[Peer]
# some.host.name
PublicKey = <redacted>
Endpoint = some.host.name:51820
AllowedIPs = 10.255.255.249/32,172.16.0.0/12,192.168.1.0/16,10.0.0.0/8
PersistentKeepalive = 10
Site B[Interface]
# B
PrivateKey = <redacted>
Address = 10.255.255.251/32
DNS = 172.16.0.2
MTU = 1384
[Peer]
# some.host.name
PublicKey = <redacted>
Endpoint = some.host.name:51820
AllowedIPs = 10.255.255.249/32,172.16.0.0/12,192.168.0.0/16,10.0.0.0/8
PersistentKeepalive = 10
Замечание: Не думаю, что это влияет на проблему. Но возможно ли, чтобы Unifi не выполнял NAT/MASQUERADE всего трафика, отправляемого в VPN?
Редактирование: Добавил MTU в конфигурацию, но это не изменило ситуацию. Я дал серверу и клиентам все "подсети" /32, чтобы сервер теперь не получал трафик, предназначенный для той же подсети. Все равно безрезультатно.
Чтобы обойти эту проблему, я настроил WireGuard-сервер, размещенный вне локальной сети. Обе точки доступа (UDM pro) успешно подключаются к этому WireGuard-серверу. Я настроил маршрутизацию на основе политик на обеих точках доступа. Подключения с точки доступа к серверу работают, а с сервера к точке доступа – тоже. Но соединения между точками доступа, к сожалению, не работают.
При перехвате пакетов на сервере выяснилось, что трафик от одной точки доступа действительно поступает на интерфейс wg0, но не выходит на другую точку доступа обратно. Это заставляет меня думать, что WireGuard-сервер не перенаправляет трафик между клиентами.
Теперь я надеюсь, что кто-нибудь сталкивался с чем-то подобным или, возможно, сможет пролить свет на это поведение WireGuard. Я потратил много времени на поиск решения в интернете, но безрезультатно.
Вот моя конфигурация WireGuard:
[Interface]
# some.host.name
PrivateKey = <redacted>
Address = 10.255.255.249/32
ListenPort = 51820
MTU = 1420
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens6 -j MASQUERADE
PostUp = iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens6 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -o wg0 -j ACCEPT
[Peer]
# A
PublicKey = <redacted>
AllowedIPs = 10.255.255.250/32,172.16.0.0/24,172.16.1.0/24
PersistentKeepalive = 10
[Peer]
# B
PublicKey = <redacted>
AllowedIPs = 10.255.255.251/32,172.16.2.0/24
PersistentKeepalive = 10
Site A[Interface]
# A
PrivateKey = <redacted>
Address = 10.255.255.250/32
DNS = 172.16.0.2
MTU = 1384
[Peer]
# some.host.name
PublicKey = <redacted>
Endpoint = some.host.name:51820
AllowedIPs = 10.255.255.249/32,172.16.0.0/12,192.168.1.0/16,10.0.0.0/8
PersistentKeepalive = 10
Site B[Interface]
# B
PrivateKey = <redacted>
Address = 10.255.255.251/32
DNS = 172.16.0.2
MTU = 1384
[Peer]
# some.host.name
PublicKey = <redacted>
Endpoint = some.host.name:51820
AllowedIPs = 10.255.255.249/32,172.16.0.0/12,192.168.0.0/16,10.0.0.0/8
PersistentKeepalive = 10
Замечание: Не думаю, что это влияет на проблему. Но возможно ли, чтобы Unifi не выполнял NAT/MASQUERADE всего трафика, отправляемого в VPN?
Редактирование: Добавил MTU в конфигурацию, но это не изменило ситуацию. Я дал серверу и клиентам все "подсети" /32, чтобы сервер теперь не получал трафик, предназначенный для той же подсети. Все равно безрезультатно.
