Назад | Перейти на главную страницу

Набор Google Cloud Compute / 20 маски подсети для внутреннего интерфейса

Облако Google использует DHCP для назначения IP-адресов экземпляру. По какой-то причине они назначают адрес с сетевой маской / 32, даже если вы находитесь в своей собственной сети / 20. Я обнаружил, что если я установил для экземпляров общедоступный IP-адрес статическим, я могу перейти в / etc / syconfig / network-scripts / ifcfg-eth0, изменить BOOTPROTO с DHCP на STATIC, затем вручную установить настройки IP и использовать / 20 или / 24 подсети, и она переживет перезагрузки. Однако после этого я теряю возможность связываться с этим хостом во внутренней сети. Если экземпляр использует параметры DHCP, я могу без проблем связываться между узлами в локальной сети.

Прочитав в Интернете, я нашел эту статью https://cloud.google.com/compute/docs/networking есть раздел, в котором рассказывается о внесении изменений в DNS и resolv.conf и об использовании для этого конфигурации dhcp.lease. Когда я смотрю в этот файл, я вижу, что в нем есть опция «маска подсети 255.255.255.255;» настройка. Если я изменю маску сети и перезапущу сеть, изменения будут отменены.

Просто для справки:

instance-2 is using default DHCP and has the IP 10.128.0.5
instance-4 is using my custom static config and has the IP 10.128.0.6

Я также сравнил таблицу маршрутов между экземпляром с DHCP-адресом по умолчанию и экземпляром с моими статическими IP-настройками.

экземпляр-2 (DHCP):

[root@instance-2 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.1      0.0.0.0         255.255.255.255 UH    100    0        0 eth0
10.128.0.5      0.0.0.0         255.255.255.255 UH    100    0        0 eth0
169.254.169.254 10.128.0.1      255.255.255.255 UGH   100    0        0 eth0

instance-4 (Custom Static):

[root@instance-4 NetworkManager]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.0      0.0.0.0         255.255.240.0   U     100    0        0 eth0

Затем я вручную добавил различные маршруты в instance-4:

[root@instance-4 NetworkManager]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.0      0.0.0.0         255.255.240.0   U     100    0        0 eth0
10.128.0.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
10.128.0.6      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
169.254.169.254 10.128.0.1      255.255.255.255 UGH   0      0        0 eth0

Но и это не решило проблему.

сетевой сценарий instance-4:

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=cde7258f-6857-4015-86de-6bb520fcd550
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
MTU=1460
PERSISTENT_DHCLIENT="y"
NETMASK=255.255.240.0
IPADDR=10.128.0.6
DNS1=169.254.169.254
GATEWAY=10.128.0.1

сетевой сценарий instance-2

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=cde7258f-6857-4015-86de-6bb520fcd550
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
MTU=1460
PERSISTENT_DHCLIENT="y"

Как я могу правильно заставить интерфейс использовать сетевую маску, отличную от / 32, и по-прежнему иметь возможность общаться с другими экземплярами в локальной сети?

ОС - CentOS 7.

Мне нужна сетевая маска, отличная от / 32, чтобы я мог установить FreeIPA. Он не будет установлен, если сетевая маска / 32.

Я не нашел способа обойти проблему с сетевой маской в ​​облаке Google, но обнаружил, что проект IPA решил эту проблему и выпустил обновление, чтобы сделать его совместимым с GCloud. ipa версии 4.4.2 и выше не будет иметь этой проблемы. однако на данный момент эта версия не перенесена на centos.

вот информация о патче, которую нужно решить вручную.

https://git.fedorahosted.org/cgit/freeipa.git/commit/?id=dee950d88ec969b36c1271a3ef9fe4e4f5b48b01

Вот актуальный отчет об ошибке на веб-сайте проекта ipa.

https://fedorahosted.org/freeipa/ticket/5814

Вот ошибка, которую я зарегистрировал в Google в отношении аспекта подключения к сети.

https://code.google.com/p/google-compute-engine/issues/detail?id=522&sort=stars&colspec=ID%20Type%20Component%20Resource%20Service%20Status%20Stars%20Summary%20Log

Просто выложите все это так, чтобы любой, у кого возникла эта проблема, мог найти ответы.

Для тех, кто попадает сюда из поиска Google, вот что я нашел в документации GCE. Дословная цитата:

Чтобы настроить интерфейсы с сетевой маской, отличной от / 32, вы должны создать образ с помощью флага --guest-os-features MULTI_IP_SUBNET и использовать его для создания своего экземпляра. Например, если вы используете образ на основе debian-9, вы можете создать образ, используя следующую команду:

gcloud compute images create debian-9-multi-ip-subnet \
     --source-disk debian-9-disk \
     --source-disk-zone us-west1-a \
     --guest-os-features MULTI_IP_SUBNET