Экземпляр ec2 из RHEL ami (я не проверял ни одного другого) имеет только частный адрес, назначенный ему.
т.е. ip addr
дает:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 02:6d:c3:86:ce:e0 brd ff:ff:ff:ff:ff:ff
inet 172.39.16.198/20 brd 172.39.31.255 scope global eth0
inet6 fe80::6d:c2ff:fe86:cee0/64 scope link
valid_lft forever preferred_lft forever
общедоступный IP-адрес работает, и через него можно получить доступ к машине. Он может получить доступ в Интернет через шлюз VPC.
Но как мне убедиться, что в интерфейсе есть общественный IP, значит, исходящие пакеты действительно содержат правильный IP? Это необходимо для правильной работы ipsec.
Ну, вы не можете явно назначить общедоступные IP-адреса экземпляру AWS на уровне ОС. У Amazon есть свой центр обработки данных за брандмауэром (-ами), и все инстансы имеют частные IP-адреса, которые преобразуются с помощью NAT в общедоступный IP-адрес.
Так что снаружи они выглядят как public IP
но внутри у них есть свои private IPs
. Если вы пытаетесь добраться до своего экземпляра извне, используя public IP
должно быть достаточно, чтобы добраться до него, поскольку он сопоставляется непосредственно с private IP
вашего экземпляра.
Теперь, если у вас настроен туннель IPsec непосредственно к вашему экземпляру, я считаю, что исходящие пакеты будут иметь tunnel IP
адрес, прикрепленный к вашему экземпляру.