![Google Cloud Compute는 /20 서브넷 마스크를 내부 인터페이스로 설정했습니다.](https://rvso.com/image/697022/Google%20Cloud%20Compute%EB%8A%94%20%2F20%20%EC%84%9C%EB%B8%8C%EB%84%B7%20%EB%A7%88%EC%8A%A4%ED%81%AC%EB%A5%BC%20%EB%82%B4%EB%B6%80%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A1%9C%20%EC%84%A4%EC%A0%95%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
Google 클라우드는 인스턴스에 IP를 할당하기 위해 DHCP를 사용합니다. 어떤 이유에서인지 사용자가 자신의 /20 네트워크에 있음에도 불구하고 그들은 /32 넷마스크를 사용하여 주소를 할당합니다. 인스턴스 공용 IP를 정적으로 설정하면 /etc/syconfig/network-scripts/ifcfg-eth0으로 이동하여 BOOTPROTO를 DHCP에서 STATIC으로 변경한 다음 수동으로 IP 설정을 설정하고 /20 또는 /를 사용할 수 있음을 발견했습니다. 24개의 서브넷으로 구성되며 재부팅 후에도 유지됩니다. 그러나 이렇게 하면 내부 네트워크에서 해당 호스트와 통신할 수 없게 됩니다. 인스턴스가 DHCP 매개변수를 사용하는 경우 LAN의 호스트 간에 문제 없이 통신할 수 있습니다.
인터넷에서 검색하다가 이런 글을 발견했습니다https://cloud.google.com/compute/docs/networkingDNS 및 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
인스턴스-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
그런 다음 인스턴스-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
그러나 그것도 문제를 해결하지 못했습니다.
인스턴스-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
인스턴스-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 이외의 넷마스크를 사용하고 LAN의 다른 인스턴스와 계속 통신할 수 있는 인터페이스를 올바르게 얻으려면 어떻게 해야 합니까?
OS는 CentOS 7입니다.
FreeIPA를 설치하려면 /32 이외의 넷마스크가 필요합니다. 넷마스크가 /32이면 설치되지 않습니다.
답변1
Google Cloud에서 넷마스크 문제를 해결할 방법을 찾지 못했지만 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에 제출한 버그입니다.
이 문제를 겪고 있는 다른 사람이 답을 찾을 수 있도록 이 모든 것을 거기에 넣으면 됩니다.
답변2
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