нет связи - экземпляры ec2 с двумя интерфейсами в разных подсетях - PullRequest
0 голосов
/ 02 сентября 2018

Я застрял с, казалось бы, простой конфигурацией на AWS - раскрутить виртуальные машины с 2 интерфейсами каждая, но каждый интерфейс находится в отдельной подсети, и я не могу общаться через вторичные интерфейсы. Важный момент: внутри виртуальной машины я могу общаться со всеми интерфейсами, между виртуальными машинами в публичных / частных зонах - только через eth0.

Обзор:

  • VPC 10.20.0.0/16
  • общественная зона:
    • интерфейс управления в подсети 10.20.0.0/20
    • производственный интерфейс в подсети 10.20.48.0/20
  • частная зона:
    • интерфейс управления в подсети 10.20.16.0/20
    • производственный интерфейс в подсети 10.20.64.0/20

Сетевые ACL открыты / по умолчанию, все интерфейсы имеют группу безопасности, которая позволяет пинговать с 0.0.0.0/0

Когда я раскручиваю виртуальные машины с помощью RHEL7.5, у меня появляется скрипт ec2-user-data для вызова вторичного интерфейса:

cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=dhcp
DEVICE=eth1
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
EOF

ifup eth1e

Пинг по eth0 работает без проблем, пинг по eth1 зависает.

Вот маршрутизация на ВМ в приватной зоне:

[ec2-user@ip-10-20-8-62 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.8.62  netmask 255.255.240.0  broadcast 10.20.15.255

[ec2-user@ip-10-20-8-62 ~]$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.53.116  netmask 255.255.240.0  broadcast 10.20.63.255

[ec2-user@ip-10-20-8-62 ~]$ ip route
default via 10.20.0.1 dev eth0 proto dhcp metric 100
default via 10.20.48.1 dev eth1 proto dhcp metric 101
10.20.0.0/20 dev eth0 proto kernel scope link src 10.20.8.62 metric 100
10.20.48.0/20 dev eth1 proto kernel scope link src 10.20.53.116 metric 101

[ec2-user@ip-10-20-8-62 ~]$ ip rule
0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

И то же самое для ВМ в частной зоне:

[ec2-user@ip-10-20-19-55 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.19.55  netmask 255.255.240.0  broadcast 10.20.31.255

[ec2-user@ip-10-20-19-55 ~]$ ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
    inet 10.20.68.48  netmask 255.255.240.0  broadcast 10.20.79.255

[ec2-user@ip-10-20-19-55 ~]$ ip route
default via 10.20.16.1 dev eth0 proto dhcp metric 100
default via 10.20.64.1 dev eth1 proto dhcp metric 101
10.20.16.0/20 dev eth0 proto kernel scope link src 10.20.19.55 metric 100
10.20.64.0/20 dev eth1 proto kernel scope link src 10.20.68.48 metric 101

[ec2-user@ip-10-20-19-55 ~]$ ip rule
0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

Пожалуйста, дайте мне знать, если я смогу предоставить дополнительную информацию, я потратил слишком много времени, пытаясь заставить ее работать Причиной такой настройки являются наши внутренние политики в компании. И позже мне нужно будет заставить его работать с 3 интерфейсами, поэтому я пытаюсь понять, что я здесь делаю неправильно.

1 Ответ

0 голосов
/ 05 июня 2019

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

И первичный, и вторичный сетевые интерфейсы находятся в разных подсетях, и по умолчанию существует только одна таблица маршрутизации. Только один из сетевых интерфейсов используется для управления нелокальным трафиком подсети. Любой нелокальный трафик подсети, поступающий в сетевой интерфейс, который не настроен со шлюзом по умолчанию, пытается покинуть экземпляр, используя интерфейс, который имеет шлюз по умолчанию. Это недопустимо, поскольку дополнительный IP-адрес не принадлежит адресу управления доступом к среде (MAC) основного сетевого интерфейса.

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

Я протестировал его в CentOS 7, и он работает.

...