![Google Cloud Compute legt die /20-Subnetzmaske für die interne Schnittstelle fest](https://rvso.com/image/697022/Google%20Cloud%20Compute%20legt%20die%20%2F20-Subnetzmaske%20f%C3%BCr%20die%20interne%20Schnittstelle%20fest.png)
Google Cloud verwendet DHCP, um einer Instanz IPs zuzuweisen. Aus irgendeinem Grund weisen sie die Adresse mit einer /32-Netzmaske zu, obwohl Sie sich in Ihrem eigenen /20-Netzwerk befinden. Ich habe festgestellt, dass ich, wenn ich die öffentliche IP der Instanz auf statisch setze, in /etc/syconfig/network-scripts/ifcfg-eth0 gehen, BOOTPROTO von DHCP auf STATIC ändern und dann die IP-Einstellungen manuell festlegen und ein /20- oder /24-Subnetz verwenden kann, und es wird Neustarts überstehen. Danach verliere ich jedoch die Möglichkeit, mit diesem Host im internen Netzwerk zu kommunizieren. Wenn die Instanz DHCP-Parameter verwendet, kann ich problemlos zwischen Hosts im LAN kommunizieren.
Nachdem ich online herumgelesen hatte, fand ich diesen Artikelhttps://cloud.google.com/compute/docs/networkingenthält einen Abschnitt, in dem es um Änderungen an DNS und resolv.conf und die Verwendung der dhcp.lease-Konfiguration dazu geht. Wenn ich in diese Datei schaue, sehe ich, dass sie die Einstellung „Option Subnetzmaske 255.255.255.255;“ hat. Wenn ich die Netzmaske ändere und das Netzwerk neu starte, werden die Änderungen rückgängig gemacht.
Nur als Referenz:
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
Ich habe auch die Routentabelle zwischen einer Instanz mit einer Standard-DHCP-Adresse und einer Instanz mit meinen statischen IP-Einstellungen verglichen.
Instanz-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
Instanz 4 (benutzerdefiniertes statisches Verhalten):
[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
Anschließend habe ich die verschiedenen Routen manuell zu Instanz 4 hinzugefügt:
[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
Aber das hat das Problem auch nicht gelöst.
Netzwerkskript Instanz 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
Instanz-2-Netzwerkskript
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"
Wie kann ich die Schnittstelle dazu bringen, eine andere Netzmaske als /32 zu verwenden und trotzdem mit anderen Instanzen im LAN kommunizieren zu können?
Das Betriebssystem ist CentOS 7
Ich benötige eine andere Netzmaske als /32, damit ich FreeIPA installieren kann. Die Installation funktioniert nicht, wenn die Netzmaske /32 ist.
Antwort1
Ich habe keine Möglichkeit gefunden, das Netzmaskenproblem in der Google Cloud zu umgehen, habe aber herausgefunden, dass das IPA-Projekt sich dieses Problems angenommen und ein Update veröffentlicht hat, um die Kompatibilität mit GCloud herzustellen. Bei IPA-Version 4.4.2 und höher tritt dieses Problem nicht auf. Derzeit ist diese Version jedoch noch nicht auf CentOS zurückportiert.
Hier sind die Patchinformationen zur manuellen Behebung.
https://git.fedorahosted.org/cgit/freeipa.git/commit/?id=dee950d88ec969b36c1271a3ef9fe4e4f5b48b01
Hier ist der eigentliche Fehlerbericht auf der IPA-Projektwebsite.
https://fedorahosted.org/freeipa/ticket/5814
Hier ist der Fehler, den ich bezüglich der Netzwerkkonnektivität bei Google gemeldet habe.
Ich möchte das alles nur an die Öffentlichkeit bringen, damit jeder, der dieses Problem hat, Antworten finden kann.
Antwort2
Für alle, die über eine Google-Suche hierher gelangen, hier ist, was ich in der GCE-Dokumentation gefunden habe. Wörtliches Zitat:
Um Schnittstellen mit einer anderen Netzmaske als /32 zu konfigurieren, sollten Sie ein Image mit dem Flag --guest-os-features MULTI_IP_SUBNET erstellen und es zum Erstellen Ihrer Instanz verwenden. Wenn Sie beispielsweise ein auf Debian 9 basierendes Image verwenden, können Sie ein Image mit dem folgenden Befehl erstellen:
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