Google Cloud Compute establece la máscara de subred /20 en la interfaz interna

Google Cloud Compute establece la máscara de subred /20 en la interfaz interna

La nube de Google utiliza DHCP para asignar IP a una instancia. Por alguna razón, asignan la dirección con una máscara de red /32 aunque estés en tu propia red /20. Descubrí que si configuro la IP pública de las instancias en estática, puedo ingresar a /etc/syconfig/network-scripts/ifcfg-eth0, cambiar BOOTPROTO de DHCP a STATIC y luego configurar manualmente la configuración de IP y usar /20 o / 24 subred y sobrevivirá a los reinicios. Sin embargo, después de hacer esto, pierdo la capacidad de comunicarme con ese host en la red interna. Si la instancia utiliza parámetros DHCP, puedo comunicarme entre hosts en la LAN sin problemas.

Después de leer en línea, encontré este artículo.https://cloud.google.com/compute/docs/networkingtiene una sección que habla sobre cómo realizar cambios en DNS y resolv.conf y cómo usar la configuración dhcp.lease para hacerlo. Cuando miro este archivo, veo que tiene la 'opción máscara de subred 255.255.255.255;' configuración. Si cambio la máscara de red y reinicio la red, los cambios se revierten.

Solo para referencia:

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

También comparé la tabla de rutas entre una instancia con una dirección DHCP predeterminada y una instancia con mi configuración de IP estática.

instancia-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

instancia-4 (estática personalizada):

[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

Luego agregué manualmente las diferentes rutas a la instancia-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

Pero eso tampoco resolvió el problema.

script de red de instancia 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

script de red de instancia 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"

¿Cómo puedo hacer que la interfaz utilice correctamente una máscara de red distinta de /32 y aún así poder comunicarme con otras instancias en la LAN?

El sistema operativo es CentOS 7

Necesito una máscara de red distinta de /32 para poder instalar FreeIPA. No se instalará si la máscara de red es /32.

Respuesta1

No encontré una manera de solucionar el problema de la máscara de red en la nube de Google, pero descubrí que el proyecto IPA solucionó este problema y lanzó una actualización solo para hacerlo compatible con GCloud. La versión 4.4.2 y posteriores de ipa no tendrán este problema. sin embargo, a partir de este momento, esa versión no está respaldada por centos.

aquí está la información del parche para resolver manualmente.

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

Aquí está el informe de error real en el sitio web del proyecto ipa.

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

Aquí está el error que presenté a Google con respecto al aspecto de la conectividad de red.

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

Simplemente publico todo esto para que cualquiera que tenga este problema pueda encontrar algunas respuestas.

Respuesta2

Para cualquiera que haya llegado hasta aquí mediante una búsqueda en Google, esto es lo que encontré en la documentación de GCE. Cita textual:

Para configurar interfaces con una máscara de red distinta de /32, debe crear una imagen usando la bandera --guest-os-features MULTI_IP_SUBNET y usarla para crear su instancia. Por ejemplo, si está utilizando una imagen basada en Debian-9, puede crear una imagen usando el siguiente comando:

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

información relacionada