Правила NAT для маршрутизации VPN на общедоступный IP-адрес в локальной сети

Я пытаюсь настроить тестовую настройку VPN для маршрутизации эхо-запросов на общедоступный IP-адрес экземпляра. Корпоративный поставщик, к которому мы подключаемся, зарезервировал все личное пространство на своей стороне. Я не уверен, какие правила NAT мне нужны, чтобы получать трафик от экземпляра VPN-маршрутизатора на нашей стороне для пересылки трафика соответствующему экземпляру за ним на основе его публичного адреса, а не частного.

У меня есть топология вроде

A- Сервер <-> A-VPN <--internet-> B-VPN <-> B-Server.

VPN-туннель установлен, и я могу без проблем пинговать любую сторону через частный IP. Проверка общедоступного IP-адреса действительно попадает на виртуальную машину VPN на «другой» стороне, но останавливается на этом (я думаю, это видно по активности в «$ ip xfrm monitor»?).

Оба экземпляра VPN имеют публичный IP-адрес A-Server / 32 в разрешенные подсети слева и справа, где это возможно.

Следование правилам NAT в экземпляре A-VPN, похоже, не работает, и я не уверен, неправильно ли я их использую или как отлаживать дальше.

iptables -t nat -A POSTROUTING -s <A-Server PRIVATE IP>/32 -d <B-Server PRIVATE IP>/32 -j SNAT --to-source <A-Server PUBLIC IP>
iptables -t nat -A PREROUTING -s <B-Server PRIVATE IP>/32 -d <A-Server PUBLIC IP>/32 -j DNAT --to-destination <A-Server PRIVATE IP>

Текущий правила для A-VPN:

# iptables-save
# Generated by iptables-save v1.4.21 on Fri Feb 15 11:12:15 2019
*nat
:PREROUTING ACCEPT [2:168]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [21:1848]
:POSTROUTING ACCEPT [23:2016]
-A PREROUTING -s 172.31.24.75/32 -d <A-Server PUBLIC IP>/32 -j DNAT --to-destination 10.0.10.15
-A POSTROUTING -s 10.0.0.34/32 -d 172.31.24.75/32 -j SNAT --to-source <A-Server PUBLIC IP>
COMMIT
# Completed on Fri Feb 15 11:12:15 2019
# Generated by iptables-save v1.4.21 on Fri Feb 15 11:12:15 2019
*filter
:INPUT ACCEPT [104381:64450743]
:FORWARD ACCEPT [189:13956]
:OUTPUT ACCEPT [89586:3506732]
COMMIT
# Completed on Fri Feb 15 11:12:15 2019
0
задан 15 February 2019 в 13:16
1 ответ

После некоторого чтения и поддержки мне удалось решить проблему.

Предпринятые шаги:

«ЛЕВАЯ» сторона:

  • создал новый ElasticIP, не назначая его экземпляру.
  • добавил к левым подсетям файла A-VPN .conf.
  • добавил следующие правила iptables в A-VPN:
    • iptables -t nat -A PREROUTING -d <нераспределенный EIP> -j DNAT --to-destination <ЧАСТНЫЙ IP-адрес A-сервера>
    • iptables -t nat -A POSTROUTING -d <ЧАСТНЫЙ IP-адрес B-сервера> -j SNAT --to-source <нераспределенный EIP>

«ПРАВАЯ» сторона:

  • добавлена ​​ <нераспределенный EIP> в правые подсети файла B-VPN .conf.
  • добавлено правило таблицы маршрутов подсети VPC для направления трафика с пунктом назначения <нераспределенный EIP> для прохождения через B-VPN.

обе машины VPN:

  • Перезапуск ipsec.

В этот момент tcpdump на всех машинах показывает правильную маршрутизацию и перезапись IP на всех машинах при эхо-запросе с B-сервера на A-сервер через общедоступный IP-адрес <нераспределенный EIP>

0
ответ дан 5 December 2019 в 04:07

Теги

Похожие вопросы