5. 퍼블릭 서브넷 VPC 구성
목표 구성도
VPC 생성
퍼블릭 서브넷 생성
인터넷 게이트웨이 생성 및 VPC 연결
퍼블릭 라우팅 테이블 생성 및 서브넷 연결
퍼블릭 라우팅 테이블 경로 추가
EC2 인스턴스 생성 후 접근 및 통신 확인
IP 정보 확인 (프라이빗 IP , 퍼블릭 IP)
# 네트워크 인터페이스 정보 확인
[root@ip-10-0-0-206 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 02:f2:e8:0e:72:3e brd ff:ff:ff:ff:ff:ff
inet 10.0.0.206/24 brd 10.0.0.255 scope global dynamic eth0
valid_lft 2820sec preferred_lft 2820sec
inet6 fe80::f2:e8ff:fe0e:723e/64 scope link
valid_lft forever preferred_lft forever
[root@ip-10-0-0-206 ~]# ip -br -c addr show
UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 10.0.0.206/24 fe80::f2:e8ff:fe0e:723e/64
[root@ip-10-0-0-206 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 10.0.0.206 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::f2:e8ff:fe0e:723e prefixlen 64 scopeid 0x20<link>
ether 02:f2:e8:0e:72:3e txqueuelen 1000 (Ethernet)
RX packets 44108 bytes 60539108 (57.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4673 bytes 446811 (436.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 32 bytes 2592 (2.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 2592 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 라우팅 정보 확인
[root@ip-10-0-0-206 ~]# ip route list
default via 10.0.0.1 dev eth0
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.206
169.254.169.254 dev eth0
[root@ip-10-0-0-206 ~]# ip route show
default via 10.0.0.1 dev eth0
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.206
169.254.169.254 dev eth0
[root@ip-10-0-0-206 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
[root@ip-10-0-0-206 ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
# ARP 정보 확인
[root@ip-10-0-0-206 ~]# ip neigh show
10.0.0.2 dev eth0 lladdr 02:ed:85:ca:4d:f4 REACHABLE
10.0.0.1 dev eth0 lladdr 02:ed:85:ca:4d:f4 REACHABLE
[root@ip-10-0-0-206 ~]# arp -e
Address HWtype HWaddress Flags Mask Iface
10.0.0.2 ether 02:ed:85:ca:4d:f4 C eth0
gateway ether 02:ed:85:ca:4d:f4 C eth0
# DNS 서버 정보 확인
[root@ip-10-0-0-206 ~]# cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search ap-northeast-2.compute.internal
options timeout:2 attempts:5
nameserver 10.0.0.2
# 외부 접속 시 공인 IP 정보 확인
# 카카오맵/네이버맵/구글맵에서 위도경도로 대략 위치 확인 가능
[root@ip-10-0-0-206 ~]# curl ipinfo.io
{
"ip": "3.36.61.191",
"hostname": "ec2-3-36-61-191.ap-northeast-2.compute.amazonaws.com",
"city": "Seoul",
"region": "Seoul",
"country": "KR",
"loc": "37.5660,126.9784",
"org": "AS16509 Amazon.com, Inc.",
"postal": "03186",
"timezone": "Asia/Seoul",
"readme": "https://ipinfo.io/missingauth"
}[root@ip-10-0-0-206 ~]# curl ipinfo.io/3.36.61.191
{
"ip": "3.36.61.191",
"hostname": "ec2-3-36-61-191.ap-northeast-2.compute.amazonaws.com",
"city": "Seoul",
"region": "Seoul",
"country": "KR",
"loc": "37.5660,126.9784",
"org": "AS16509 Amazon.com, Inc.",
"postal": "03186",
"timezone": "Asia/Seoul",
"readme": "https://ipinfo.io/missingauth"
}[root@ip-10-0-0-206 ~]# curl ipinfo.io/loc
37.5660,126.9784
# IP에 대한 정보 확인
[root@ip-10-0-0-206 ~]# curl https://json.geoiplookup.io/3.36.61.191
{
"ip": "3.36.61.191",
"isp": "Amazon.com, Inc.",
"org": "Amazon Technologies Inc",
"hostname": "ec2-3-36-61-191.ap-northeast-2.compute.amazonaws.com",
"latitude": 37.5665,
"longitude": 126.978,
"postal_code": "",
"city": "Seoul",
"country_code": "KR",
"country_name": "South Korea",
"continent_code": "AS",
"continent_name": "Asia",
"region": "Seoul",
"district": "",
"timezone_name": "Asia\/Seoul",
"connection_type": "Corporate",
"asn_number": 16509,
"asn_org": "Amazon.com, Inc.",
"asn": "AS16509 - Amazon.com, Inc.",
"currency_code": "KRW",
"currency_name": "South Korean Won",
"success": true,
"premium": false
}[root@ip-10-0-0-206 ~]# curl -s https://json.geoiplookup.io/13.125.27.235 | jq '.city'
"Seoul"
# 외부와 통신 경로 정보 확인
traceroute www.google.com
traceroute www.google.com -n
traceroute www.google.com -n -q 10
퍼블릭 서브넷 통신 흐름
① 퍼블릭 서브넷의 퍼블릭 EC2 인스턴스가 외부 인터넷 구간과 통신하기 위해 데이터를 가상 라우터로 전달(퍼블릭 IP 사용)
② 가상 라우터는 퍼블릭 라우팅 테이블을 참고하여 인터넷 게이트웨이로 향하는 라우팅 경로 확인
③ 가상 라우터는 인터넷 게이트웨이로 데이터를 전달하고 인터넷 구간으로 넘어감
④ 인터넷 구간을 통해 사용자에게 전달
인터넷 게이트웨이를 통한 외부 접속 과정 설명
① 내부 인스턴스(10.0.0.10)에서 외부 웹서버(60.1.1.1)로 HTTP 접속을 시도. 이때 출발지 IP를 10.0.0.10으로 하여 요청 트래픽을 생성하여 보냄
② 인터넷 게이트웨이는 출발지 IP를 확인하고 자신이 가지고 있는 NAT 정보에 의해서 출발지 IP를 50.1.1.1로 변경하는 NAT 동작을 수행
③ 외부 웹서버(60.1.1.1)에서 요청을 처리하고 응답 트래픽을 보냄. 되돌아오는 트래픽이므로 출발지 IP와 목적지 IP는 바뀜.
④ 인터넷 게이트웨이는 다시 한번 NAT 정보에 의해서 목적지 IP를 50.1.1.1에서 10.0.0.10으로 변경하고, VPC 내부로 전달하여 최종적으로 내부 인스턴스(10.0.0.10)로 도달.
'Infra > cloud' 카테고리의 다른 글
[AFOS] 4주차 스토리지 서비스 (0) | 2021.07.12 |
---|---|
[AFOS] 3주차 네트워킹 서비스 - 실습 : VPC 구성(프라이빗 서브넷) (0) | 2021.07.09 |
[AFOS] 3주차 네트워킹 서비스 (0) | 2021.07.09 |
[AFOS] 2주차 컴퓨팅 서비스 - 실습 : EC2 웹 서버 설치 (0) | 2021.07.09 |
[AFOS] 2주차 컴퓨팅 서비스 (0) | 2021.07.09 |