Предоставленный AMI 18.04 поставляется с одним интерфейсом, и я добавляю второй с его собственным IP (для каскадерского сервера). Однако экземпляр отвечает только на один эластичный IP-адрес или другой, но не на оба (для SSH и каскадера), в то время как оба частных адреса работают. Установка с Amazon Linux также прошла безупречно, так что это должна быть просто часть сетевой конфигурации.
Есть два сетевых интерфейса, каждый с эластичным IP-адресом и с разными подсетями на одном VPC в одной зоне доступности (172.31.16.0/20
и 172.31.48.0/20
) и той же группы безопасности.
Ubuntu не обнаружил вторую автоматически, но /etc/netplan/50-cloud-init.yaml
похоже с места начать с 18.04?
Это отличается от того, к чему я привык, и я не мог найти инструкции, поэтому догадываюсь, что это проблема. Я только что добавил eth1
DHCP к нему. И я предполагаю, что они сломаются, если я сделаю AMI или изменю интерфейс (получу новый MAC-адрес)?
network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: 06:05:14:4a:26:ce
set-name: eth0
eth1:
dhcp4: true
match:
macaddress: 06:86:ef:73:d4:1a
set-name: eth1
Это проявляется в ifconfig
, и я могу использовать SSH для обоих частных адресов, но только для второго (eth1
) отвечает на любую программу через EIP, хотя показывает несколько пакетов на eth0
.
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 172.31.24.184 netmask 255.255.240.0 broadcast 172.31.31.255
inet6 fe80::405:14ff:fe4a:26ce prefixlen 64 scopeid 0x20<link>
ether 06:05:14:4a:26:ce txqueuelen 1000 (Ethernet)
RX packets 413 bytes 48193 (48.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 545 bytes 62679 (62.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 172.31.52.86 netmask 255.255.240.0 broadcast 172.31.63.255
inet6 fe80::486:efff:fe73:d41a prefixlen 64 scopeid 0x20<link>
ether 06:86:ef:73:d4:1a txqueuelen 1000 (Ethernet)
RX packets 899 bytes 403206 (403.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1218 bytes 232644 (232.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 275 bytes 21497 (21.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 275 bytes 21497 (21.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Я нашел, как решить эту проблему в центре знаний AWS.
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-ubuntu-secondary-network-interface/
Возможно, это может вам помочь
Вероятно, это проблема маршрутизации и требует дополнительных записей конфигурации в таблицах маршрутизации.
В следующем примере приведены инструкции по настройке двух независимых таблиц маршрутизации:
https://serverfault.com/a/823061/476056
Если ваше приложение привязывается к 0.0.0.0
необходимо добавить следующие правила. В противном случае исходящий трафик будет использовать интерфейс по умолчанию, заканчиваясь первым интерфейсом.
ip rule add from 0.0.0.0/32 to 192.168.122.0/24 dev eth0 table admin
ip rule add from 0.0.0.0/32 to 192.168.123.0/24 dev eth1 table users
Это не относится к Ubuntu, то же самое происходит в CentOS и других дистрибутивах.