AWS/Strongswan-Ubuntu Сайт в Сайт Туннель не может пинговать удалённый сервер

Вопрос или проблема

Ubuntu (Linode) Strongswan 5.6.2 Подключение к AWS (сайт-сайт).

  1. Я могу пинговать с конечной точки AWS на VPN Ubuntu.
  2. Я не могу пинговать с конечной точки AWS на конечную точку Ubuntu.
  3. Я не могу пинговать с VPN Ubuntu на любые ресурсы AWS.

Ubuntu (VPN) публичный: 1.2.3.4 | Ubuntu (VPN) приватный: 192.168.234.113/24

AWS (VPN) публичный: 4.5.6.7 | AWS (VPN) приватный: 169.254.177.44/30

AWS (конечная точка) приватная: 10.11.1.197

Ubuntu (конечная точка) приватная: 192.168.136.15

Я могу пинговать адаптер туннеля 169.254.177.46 с ubuntu (локально), но не удаленный 169.254.177.45, который, как я предполагаю, является шлюзом клиента (узел назначения недоступен)

root@ubuntu:~# ping 10.11.1.197
PING 10.11.1.197 (10.11.1.197) 56(84) байт данных.
От 169.254.177.46 icmp_seq=1 Узел назначения недоступен
От 169.254.177.46 icmp_seq=2 Узел назначения недоступен

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether f2:3c:93:db:4d:c0 brd ff:ff:ff:ff:ff:ff
    inet 1.2.3.4/24 brd 194.195.211.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.234.113/17 brd 192.168.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2600:3c02::f03c:93ff:fedb:4dc0/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 60sec preferred_lft 20sec
    inet6 fe80::f03c:93ff:fedb:4dc0/64 scope link
       valid_lft forever preferred_lft forever
3: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
6: Tunnel1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1419 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ipip 1.2.3.4 peer 4.5.6.7
    inet 169.254.177.46 peer 169.254.177.45/30 scope global Tunnel1
       valid_lft forever preferred_lft forever
    inet6 fe80::200:5efe:c2c3:d3cb/64 scope link
       valid_lft forever preferred_lft forever

маршруты

10.11.1.0              0.0.0.0         255.255.255.0   U     100    0        0 Tunnel1
169.254.177.44  0.0.0.0         255.255.255.252 U     0      0        0 Tunnel1
192.168.128.0    0.0.0.0         255.255.128.0   U     0      0        0 eth0
194.195.211.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

xfrm политика

src 192.168.128.0/17 dst 0.0.0.0/0
        dir out priority 391295
        mark 0x64/0xffffffff
        tmpl src 1.2.3.4 dst 4.5.6.7
                proto esp spi 0xcdecfff9 reqid 1 mode tunnel
src 0.0.0.0/0 dst 192.168.128.0/17
        dir fwd priority 391295
        mark 0x64/0xffffffff
        tmpl src 4.5.6.7 dst 1.2.3.4
                proto esp reqid 1 mode tunnel
src 0.0.0.0/0 dst 192.168.128.0/17
        dir in priority 391295
        mark 0x64/0xffffffff
        tmpl src 4.5.6.7 dst 1.2.3.4
                proto esp reqid 1 mode tunnel
src 0.0.0.0/0 dst 0.0.0.0/0
        socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
        socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
        socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
        socket out priority 0
src ::/0 dst ::/0
        socket in priority 0
src ::/0 dst ::/0
        socket out priority 0
src ::/0 dst ::/0
        socket in priority 0
src ::/0 dst ::/0
        socket out priority 0

Когда я настраивал VPN-соединение «сайт-сайт», у меня были подобные странные проблемы. Вот несколько моментов, которые стоит проверить:

  1. Проверьте, включена ли пропаганда маршрутов на подсетях и конечных точках в AWS.
  2. Проверьте группы безопасности и NACL.
  3. Если вы пытаетесь пинговать экземпляр EC2, проверьте группы безопасности, которые разрешают пинг.
  4. Если сомневаетесь – нарисуйте схему подключения от локального хоста до VPN и AWS, и проверьте каждый шаг и направление.

Я думаю, что я также использовал эту страницу и вот эту страницу – если вы пытаетесь сделать это максимально безопасным, вероятно, лучше начать с менее безопасного, пока не устраните все недостатки!

BritanyTaylor, вам удалось это исправить?

Ответ или решение

Для решения проблемы с туннелем VPN Site-to-Site между Ubuntu с использованием Strongswan и AWS, где есть возможность пинга с AWS-узла на Ubuntu, но нет возможности осуществить обратный пинг, необходимо проверить несколько ключевых аспектов.

1. Проверка маршрутизации

Первое, что нужно проверить, это правильность маршрутов на обоих концах соединения. Убедитесь, что маршруты для подсетей установлены корректно.

Ubuntu (Linode)

Убедитесь, что маршруты для доступных подсетей правильно прописаны. Судя по вашему выводу routes, у Ubuntu корректно настроен маршрут для сети 10.11.1.0/24, что соответствует частному IP-адресу вашего AWS-узла. Однако стоит проверить, что маршруты для других необходимых подсетей, таких как 192.168.136.0/24 (для вашей Ubuntu-локальной сети), также присутствуют.

AWS

На стороне AWS проверьте таблицу маршрутов для вашего VPC. Убедитесь, что маршрут для сети 192.168.234.0/24 (ваша сеть Ubuntu) корректно настроен. Этот маршрут должен указывать на виртуальный частный шлюз (VGW), связанный с вашим VPN.

2. Проверка правил безопасности и настроек NACL

Безопасные группы (Security Groups)

На стороне AWS проверьте настройки правил безопасности. Вам нужно убедиться, что правила безопасности разрешают ICMP (ping) трафик для входящих соединений, а также разрешают выходящий трафик на ваш Ubuntu-узел.

Сетевые ACL (NACL)

Если у вас настроены сетевые ACL, проверьте их также. Убедитесь, что они разрешают соответствующий ICMP-трафик как на вход, так и на выход.

3. Проверка конфигурации Strongswan

Убедитесь, что конфигурация Strongswan соответствует необходимым требованиям. Возможно, стоит убедиться в наличии соответствующих правил XFRM (как показано в вашем выводе). Правила должны соответствовать вашей сети и правильно указывать на src и dst.

4. Тестирование соединения

Для диагностики соединения можно использовать tcpdump или wireshark для отслеживания пакетов между узлами. Это позволит выявить, проходит ли трафик по туннелю и не блокируется ли он на каком-либо этапе.

Вы можете использовать следующие команды:

tcpdump -i Tunnel1 icmp

5. Диаграмма соединения

Наконец, наглядная диаграмма может очень помочь в визуализации всей инфраструктуры. Используйте её для проверки:

  • Как пакеты проходят от локального узла к AWS через VPN?
  • Есть ли у вас прямые маршруты для всех необходимых подсетей?

Заключение

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

Следуя этому плану действий, вы сможете разобраться с возникшей проблемой и наладить стабильное соединение между вашим Ubuntu и AWS через VPN.

Оцените материал
Добавить комментарий

Капча загружается...