Я пытаюсь заставить работать очень простую настройку,
У меня 2 экземпляра AWS ec2 (синие),
экземпляр B имеет IPsec VPN в нашем центре обработки данных и может пинговать внутренние IP-адреса этого центра обработки данных, то есть сервера C (192.168.40.21)
Мне нужен экземпляр ec2 A, чтобы иметь возможность пинговать и подключаться к серверу C, используя B в качестве перехода. И A, и B находятся в одной подсети. Я попытался добавить IP-адрес B в качестве шлюза на A,
root@A> ip route add 192.168.40.0/24 via 172.25.25.200
а также настроить правила брандмауэра на B для пересылки трафика (sysctl ip4 forwarding = 1),
root@B>
iptables -A FORWARD -s 0/0 -d 172.25.25.0/24 -j ACCEPT
iptables -A FORWARD -s 172.25.25.0/24 -d 0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -d 0/0 -s 172.25.25.0/24 -j MASQUERADE
Но я не могу пинговать C от A. Что мне не хватает?
Все хосты - Centos 7.
Спасибо.
Экземпляры EC2 по умолчанию имеют включенную проверку источника / назначения на своих сетевых интерфейсах, что означает, что они не будут работать как маршрутизаторы, пока вы не отключите ее. Видеть https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck
В итоге я использовал туннель GRE для маршрутизации всего трафика через сервер B
туннель находится между A и B, на A я также добавляю маршрут для маршрутизации всего трафика для C через туннель GRE
так что это работает так: A> gre tun> B> ipsec vpn tun> C
** примечание, см. комментарий выше о проверке источника / назначения для экземпляров EC2.
Разрешено ли вашим экземплярам обмениваться данными через намеченные порты внутри подсети, явно используя группы безопасности?
Поскольку я сам сделал это предположение, я должен подозревать, что экземпляры ec2 в одной подсети / SecurityGroup не могут обмениваться данными из коробки без добавления необходимых правил, как указано здесь: https://forums.aws.amazon.com/thread.jspa?threadID=77771
Если вы уже тщательно добавили соответствующие правила, возможно, вы можете попробовать посмотреть поток пакетов, используя tcpdump
и фильтрация по соответствующему интерфейсу?
Обычно iptables
есть стандартное правило для блокировки пересылки трафика. Вы должны удалить его, чтобы разрешить трафик.
Вам следует удалить правило:
-A FORWARD -j REJECT --reject-with icmp-host-prohibited