반응형
Google Cloud Compute Engine 내에서 외부 IP를 알려면 어떻게 해야 할까?
다음과 같이 한다고 알 수 있는 것은 VM 내부 IP 뿐이다.
[jerryj@jerrydev tmp]$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:17ff:febe:3c2f prefixlen 64 scopeid 0x20<link>
ether 02:42:17:be:3c:2f txqueuelen 0 (Ethernet)
RX packets 2051 bytes 113494 (110.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2033 bytes 15436457 (14.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.183.0.2 netmask 255.255.255.255 broadcast 10.183.0.2
inet6 fe80::4001:aff:feb7:2 prefixlen 64 scopeid 0x20<link>
ether 42:01:0a:b7:00:02 txqueuelen 1000 (Ethernet)
RX packets 7848752 bytes 46045286889 (42.8 GiB)
RX errors 0 dropped 0 overruns 0 frame 69
TX packets 8503481 bytes 2354506702 (2.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
다음의 문서를 참고해서 VM의 Metadata를 조회하면 된다. 조회 가능한 항목들 역시 아래 문서에 나와 있다
VM 인스턴스 이름을 구하는 Metadata 조회 방법 (아래 헤더가 반드시 포함되어야 함)
[jerryjg@jerrydefault-4cpu-template-1 ~]$ curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/name
jerrydefault-4cpu-template-1
External IP를 구하는 Metadata 항목 확인 (recursive=true 옵션 사용)
[jerryj@jerrydev tmp]$ curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/?recursive=true | python -m json.tool
[
{
"accessConfigs": [
{
"externalIp": "104.199.xxx.xxx",
"type": "ONE_TO_ONE_NAT"
}
],
"dnsServers": [
"169.254.169.254"
],
"forwardedIps": [],
"gateway": "10.183.0.1",
"ip": "10.183.0.2",
"ipAliases": [],
"mac": "42:01:0a:b7:00:02",
"mtu": 1460,
"network": "projects/249965614499/networks/jerry-default",
"subnetmask": "255.255.240.0",
"targetInstanceIps": []
},
{
"accessConfigs": [
{
"externalIp": "",
"type": "ONE_TO_ONE_NAT"
}
],
"dnsServers": [
"169.254.169.254"
],
"forwardedIps": [],
"gateway": "10.10.10.1",
"ip": "10.10.10.2",
"ipAliases": [],
"mac": "42:01:0a:0a:0a:02",
"mtu": 1460,
"network": "projects/249965614499/networks/nat-test-jerryjg",
"subnetmask": "255.255.255.0",
"targetInstanceIps": []
}
]
[jerryj@jerrydev tmp]$ curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
104.199.xxx.xxx
'기술' 카테고리의 다른 글
Squid HTTP Proxy를 이용한 Google Cloud API 호출 방법 (Outbound 방화벽 문제) (0) | 2019.08.07 |
---|---|
Google Custom Search API 사용 방법 (0) | 2019.08.07 |
dnsmasq를 이용한 Google Cloud API 호출 방법 (Outbound 방화벽 문제) (0) | 2019.08.07 |
Drools BRMS Rule/CEP 예제 및 문법 (IoT 센서 데이터 수집 및 감지) (0) | 2019.06.04 |
최근 진행했던 SDN/NFV 관련 세미나 두 건의 발표 자료 (0) | 2014.12.07 |