✔️ Create VM instances
두 개의 VM 인스턴스를 만듭니다.
- managementsubnet-us의 managementnet-us-vm
- privatesubnet-us의 privatenet-us-vm
✔️ Create the managementnet-us-vm instance
Cloud Console을 사용하여 managementnet-us-vm 인스턴스를 만듭니다.
1. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
mynet-eu-vm 및 mynet-us-vm은 네트워크 다이어그램의 일부로 생성되었습니다.
2. 인스턴스 만들기를 클릭합니다.
3. 다음 값을 설정하고 다른 모든 값은 기본값으로 둡니다.
Property | Value (type value or select option as specified) |
Name | managementnet-us-vm |
Region | us-central1 |
Zone | us-central1-f |
Series | N1 |
Machine type | 1 vCPU (f1-micro) |
4. 네트워킹, 디스크, 보안, 관리, 단독 임대를 클릭합니다.
5. 네트워킹을 클릭합니다.
6. 네트워크 인터페이스의 경우 드롭다운을 클릭하여 편집합니다.
7. 다음 값을 설정하고 다른 모든 값은 기본값으로 둡니다.
Property | Value (type value or select option as specified) |
Network | managementnet |
Subnetwork | managementsubnet-us |
8. 완료를 클릭합니다.
9. EQUIVALENT COMMAND LINE을 클릭합니다.
이는 Cloud Shell 명령줄을 사용하여 VM 인스턴스를 만들 수도 있음을 보여줍니다. 유사한 매개변수와 함께 이러한 명령을 사용하여 privatenet-us-vm 인스턴스를 생성합니다.
10. 닫기를 클릭합니다.
11. 만들기를 클릭합니다.
✔️ Create the privatenet-us-vm instance
Cloud Shell 명령줄을 사용하여 privatenet-us-vm 인스턴스를 만듭니다.
1. Cloud Shell에서 다음 명령어를 실행하여 privatenet-us-vm 인스턴스를 만듭니다.
gcloud compute instances create privatenet-us-vm --zone=us-central1-f --machine-type=n1-standard-1 --subnet=privatesubnet-us
다음 명령을 실행하여 모든 VM 인스턴스를 나열합니다(영역별로 정렬됨).
gcloud compute instances list --sort-by=ZONE
3. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
4. VM 인스턴스가 Cloud Console에 나열되는 것을 볼 수 있습니다.
5. Column display options을 클릭한 다음 네트워크를 선택합니다. 확인을 클릭합니다.
us-central1-f에 3개의 인스턴스가 있고 europe-west4-c에 1개의 인스턴스가 있습니다. 그러나 이러한 인스턴스는 3개의 VPC 네트워크(managementnet, mynetwork 및 privatenet)에 분산되어 있으며 동일한 영역 및 네트워크에 다른 인스턴스가 없습니다. 다음 섹션에서는 이것이 내부 연결에 미치는 영향을 살펴봅니다.
✔️ Explore the connectivity between VM instances
VM 인스턴스 간의 연결을 탐색합니다. 특히 동일한 영역에 VM 인스턴스가 있는 경우와 동일한 VPC 네트워크에 있는 경우의 효과를 확인합니다.
✔️ Ping the external IP addresses
VM 인스턴스의 외부 IP 주소를 Ping하여 공용 인터넷에서 인스턴스에 연결할 수 있는지 확인합니다.
1. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
2. mynet-eu-vm, managementnet-us-vm 및 privatenet-us-vm의 외부 IP 주소를 기록해 둡니다.
3. mynet-us-vm의 경우 SSH를 클릭하여 터미널을 실행하고 연결합니다.
4. mynet-eu-vm의 외부 IP에 대한 연결을 테스트하려면 다음 명령을 실행하여 mynet-eu-vm의 외부 IP를 바꿉니다.
ping -c 3 <Enter mynet-eu-vm's external IP here>
이것은 작동해야합니다!
5. managementnet-us-vm의 외부 IP에 대한 연결을 테스트하려면 다음 명령을 실행하여 managementnet-us-vm의 외부 IP를 바꿉니다.
ping -c 3 <Enter managementnet-us-vm's external IP here>
이것은 작동해야합니다!
6. privatenet-us-vm의 외부 IP에 대한 연결을 테스트하려면 privatenet-us-vm의 외부 IP를 대체하여 다음 명령을 실행합니다.
ping -c 3 <Enter privatenet-us-vm's external IP here>
이것은 작동해야합니다!
다른 영역이나 VPC 네트워크에 있는 경우에도 모든 VM 인스턴스의 외부 IP 주소를 핑할 수 있습니다.
이는 해당 인스턴스에 대한 공개 액세스가 이전에 설정한 ICMP 방화벽 규칙에 의해서만 제어됨을 확인합니다.
✔️ Ping the internal IP addresses
VM 인스턴스의 내부 IP 주소를 ping하여 VPC 네트워크 내에서 인스턴스에 연결할 수 있는지 확인합니다.
1. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
2. mynet-eu-vm, managementnet-us-vm 및 privatenet-us-vm의 내부 IP 주소를 기록해 둡니다.
3. mynet-us-vm용 SSH 터미널로 돌아갑니다.
4. mynet-eu-vm의 내부 IP에 대한 연결을 테스트하려면 mynet-eu-vm의 내부 IP를 대체하여 다음 명령을 실행합니다.
ping -c 3 <Enter mynet-eu-vm's internal IP here>
두 VM 인스턴스가 별도의 영역, 지역 및 대륙에 있더라도 mynet-eu-vm의 내부 IP 주소는 ping 소스(mynet-us-vm)와 동일한 VPC 네트워크에 있기 때문에 ping할 수 있습니다 !
5. managementnet-us-vm의 내부 IP에 대한 연결을 테스트하려면 다음 명령을 실행하여 managementnet-us-vm의 내부 IP를 바꿉니다.
ping -c 3 <Enter managementnet-us-vm's internal IP here>
이것은 100% 패킷 손실로 표시된 대로 작동하지 않아야 합니다!
6. privatenet-us-vm의 내부 IP에 대한 연결을 테스트하려면 privatenet-us-vm의 내부 IP를 대체하여 다음 명령을 실행합니다.
ping -c 3 <Enter privatenet-us-vm's internal IP here>
이것은, 100%의 패킷 손실로 나타나듯이 동작하지 않습니다. managementnet-us-vm 및 privatenet-us-vm의 내부 IP 주소는 모두 같은 존 us-central1 에 있어도 ping 의 소스(mynet-us-vm)와는 다른 VPC 네트워크에 있기 때문에 ping 할 수 없습니다.
VPC 네트워크는 기본적으로 격리된 사설 네트워킹 도메인입니다. 그러나 VPC 피어링 또는 VPN과 같은 메커니즘을 설정하지 않는 한 네트워크 간에 내부 IP 주소 통신이 허용되지 않습니다.
✔️ Create a VM instance with multiple network interfaces
VPC 네트워크의 모든 인스턴스에는 기본 네트워크 인터페이스가 있습니다. VM에 연결된 추가 네트워크 인터페이스를 만들 수 있습니다. 여러 네트워크 인터페이스를 사용하면 인스턴스가 여러 VPC 네트워크에 직접 연결되는 구성을 생성할 수 있습니다(인스턴스 유형에 따라 최대 8개의 인터페이스).
✔️ Create the VM instance with multiple network interfaces
privatesubnet-us, managementsubnet-us 및 mynetwork에서 네트워크 인터페이스를 사용하여 vm-appliance 인스턴스를 만듭니다. 이러한 서브넷의 CIDR 범위는 겹치지 않으므로 여러 NIC(네트워크 인터페이스 컨트롤러)가 있는 VM을 만들기 위한 요구 사항입니다.
1. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
2. 인스턴스 만들기를 클릭합니다.
3. 다음 값을 설정하고 다른 모든 값은 기본값으로 둡니다.
Property | Value (type value or select option as specified) |
Name | vm-appliance |
Region | us-central1 |
Zone | us-central1-f |
Series | N1 |
Machine type | 4 vCPUs (n1-standard-4) |
인스턴스에서 허용되는 인터페이스 수는 인스턴스의 머신 유형과 vCPU 수에 따라 다릅니다.
n1-standard-4는 최대 4개의 네트워크 인터페이스를 허용합니다. 자세한 내용은 여기를 참조하십시오.
4. NETWORKING, DISKS, SECURITY, MANAGEMENT, SOLE-TENANCY를 클릭합니다.
5. 네트워킹을 클릭합니다.
6. 네트워크 인터페이스의 경우 드롭다운을 클릭하여 편집합니다.
7. 다음 값을 설정하고 다른 모든 값은 기본값으로 둡니다.
Property | Value (type value or select option as specified) |
Network | privatenet |
Subnetwork | privatesubnet-us |
8. 완료를 클릭합니다.
9. 네트워크 인터페이스 추가를 클릭합니다.
10. 다음 값을 설정하고 다른 모든 값은 기본값으로 둡니다.
Property | Value (type value or select option as specified) |
Network | managementnet |
Subnetwork | managementsubnet-us |
11. 완료를 클릭합니다.
12. 네트워크 인터페이스 추가를 클릭합니다.
13. 다음 값을 설정하고 다른 모든 값은 기본값으로 둡니다.
Property | Value (type value or select option as specified) |
Network | mynetwork |
Subnetwork | mynetwork |
14. 완료 클릭
15. Create 클릭
✔️ Explore the network interface details
Cloud Console 및 VM 터미널 내에서 vm-appliance의 네트워크 인터페이스 세부정보를 탐색합니다.
1. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
2. vm-appliance의 내부 IP 주소 내에서 nic0을 클릭하여 네트워크 인터페이스 세부 정보 페이지를 엽니다.
3. nic0이 privatesubnet-us에 연결되어 있고 해당 서브넷(172.16.0.0/24) 내의 내부 IP 주소가 할당되어 있으며 적용 가능한 방화벽 규칙이 있는지 확인합니다.
4. nic0을 클릭하고 nic1을 선택합니다.
5. nic1이 managementsubnet-us에 연결되어 있고 해당 서브넷(10.130.0.0/20) 내의 내부 IP 주소가 할당되어 있으며 적용 가능한 방화벽 규칙이 있는지 확인합니다.
6. nic1을 클릭하고 nic2를 선택합니다.
7. nic2가 mynetwork에 연결되어 있고 해당 서브넷(10.128.0.0/20) 내의 내부 IP 주소가 할당되어 있으며 적용 가능한 방화벽 규칙이 있는지 확인합니다.
각 네트워크 인터페이스에는 VM 인스턴스가 해당 네트워크와 통신할 수 있도록 자체 내부 IP 주소가 있습니다.
8. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
9. vm-appliance의 경우 SSH를 클릭하여 터미널을 실행하고 연결합니다.
10. 다음을 실행하여 VM 인스턴스 내의 네트워크 인터페이스를 나열합니다.
sudo ifconfig
sudo ifconfig 명령은 각 인터페이스의 내부 IP 주소와 함께 Linux VM의 네트워크 인터페이스를 나열합니다.
✔️ Explore the network interface connectivity
해당 서브넷에서 VM 인스턴스를 ping하여 vm-appliance 인스턴스가 privatesubnet-us, managementsubnet-us 및 mynetwork에 연결되었음을 보여줍니다.
1. Cloud Console에서 탐색 메뉴 > Compute Engine > VM 인스턴스로 이동합니다.
2. privatenet-us-vm, managementnet-us-vm, mynet-us-vm 및 mynet-eu-vm의 내부 IP 주소를 기록해 둡니다.
3. vm-appliance에 대한 SSH 터미널로 돌아갑니다.
4. privatenet-us-vm의 내부 IP에 대한 연결을 테스트하려면 privatenet-us-vm의 내부 IP를 대체하여 다음 명령을 실행합니다.
ping -c 3 <Enter privatenet-us-vm's internal IP here>
이것은 실행된다 !
5. 다음을 실행하여 동일한 테스트를 반복합니다.
ping -c 3 privatenet-us-vm
VPC 네트워크에는 내부 IP 주소가 아닌 DNS 이름으로 인스턴스의 주소를 지정할 수 있는 내부 DNS 서비스가 있기 때문에 이름으로 privatenet-us-vm을 ping할 수 있습니다. 인스턴스 호스트 이름으로 내부 DNS 쿼리가 생성되면 인스턴스의 기본 인터페이스(nic0)로 확인됩니다. 따라서 이 경우 privatenet-us-vm에서만 작동합니다.
6. managementnet-us-vm의 내부 IP에 대한 연결을 테스트하려면 다음 명령을 실행하여 managementnet-us-vm의 내부 IP를 바꿉니다.
ping -c 3 <Enter managementnet-us-vm's internal IP here>
이것은 작동합니다!
7. mynet-us-vm의 내부 IP에 대한 연결을 테스트하려면 mynet-us-vm의 내부 IP를 대체하여 다음 명령을 실행합니다.
ping -c 3 <Enter mynet-us-vm's internal IP here>
8. mynet-eu-vm의 내부 IP에 대한 연결을 테스트하려면 mynet-eu-vm의 내부 IP를 대체하여 다음 명령을 실행합니다.
ping -c 3 <Enter mynet-eu-vm's internal IP here>
이것은 작동하지 않습니다! 다중 인터페이스 인스턴스에서 모든 인터페이스는 자신이 속한 서브넷에 대한 경로를 얻습니다. 또한 인스턴스는 기본 인터페이스 eth0과 연결된 단일 기본 경로를 얻습니다. 수동으로 다르게 구성하지 않는 한, 직접 연결된 서브넷이 아닌 다른 대상으로 인스턴스를 떠나는 트래픽은 eth0의 기본 경로를 통해 인스턴스를 떠납니다.
9. vm-appliance 인스턴스의 경로를 나열하려면 다음 명령을 실행하십시오.
ip route
기본 인터페이스 eth0은 기본 경로(기본값은 172.16.0.1 dev eth0을 통해)를 가져오고 세 가지 인터페이스 eth0, eth1 및 eth2는 모두 각각의 서브넷에 대한 경로를 가져옵니다. mynet-eu-vm(10.132.0.0/20)의 서브넷은 이 라우팅 테이블에 포함되어 있지 않으므로 해당 인스턴스에 대한 ping은 vm-appliance를 eth0(다른 VPC 네트워크에 있음)에 남깁니다. 여기에 설명된 대로 정책 라우팅을 구성하여 이 동작을 변경할 수 있습니다.
이 실습에서는 Cloud Console 및 Cloud Shell 명령줄을 사용하여 여러 커스텀 모드 VPC 네트워크, 방화벽 규칙, VM 인스턴스를 만들었습니다. 그런 다음 외부 IP 주소를 ping할 때는 작동하지만 내부 IP 주소를 ping할 때는 작동하지 않는 VPC 네트워크 간의 연결을 테스트했습니다. 따라서 3개의 네트워크 인터페이스가 있는 VM 인스턴스를 만들고 다중 인터페이스 VM에 연결된 서브넷에 있는 VM 인스턴스에 대한 내부 연결을 확인했습니다.
또한 서브넷, 경로 및 방화벽 규칙과 함께 기본 네트워크를 살펴보았습니다. 기본 네트워크를 삭제하고 VPC 네트워크 없이는 VM 인스턴스를 생성할 수 없다고 결정했습니다. 따라서 서브넷, 경로, 방화벽 규칙 및 2개의 VM 인스턴스가 있는 새 자동 모드 VPC 네트워크를 만들었습니다. 그런 다음 VM 인스턴스에 대한 연결을 테스트하고 연결에 대한 방화벽 규칙의 영향을 살펴보았습니다.
'Study > Study Jam' 카테고리의 다른 글
[Study Jam] Multiple VPC Networks - 1 (0) | 2022.03.29 |
---|---|
[Study Jam] Interact with Terraform Modules (0) | 2022.03.27 |
[Study Jam] Infrastructure as Code with Terraform (0) | 2022.03.27 |
[Study Jam] Terraform Fundamentals (0) | 2022.03.27 |
[Study Jam] Continuous Delivery with Jenkins in Kubernetes Engine - 2 (0) | 2022.03.25 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!