[CJ Olivenetworks - Cloud Wave] Day 2 - NAT / AWS 기초
NAT (Network Address Translation) 이란?
NAT (Network Address Translation)
- 출발지 IP 주소를 공인 IP 주소로 변경하는 기술.
- 사설망 : inside
- 공용망 : outside
NAT (Network Address Translation)은 네트워크에서 사용되는 주소 변환 기술.
- 사설 네트워크와 공인 네트워크 간의 IP 주소 변환을 수행하여 인터넷 연결 관리에 사용된다.
일반적으로 사설 네트워크(예: 가정 내부 네트워크)에는 사설 IP 주소가 할당됨.
하지만 인터넷에서는 공인 IP 주소가 사용되어야 함.
이때 NAT은 사설 IP 주소를 공인 IP 주소로 변환하여 인터넷 연결을 가능하게 한다. - (예) 가정용 공유기
- 가정 내의 공유기로 들어오는 공인 IP 주소는 하나.
- 해당 공인 IP를 사설 IP로 변환, WIFI 내 가족 구성원은 해당 사설망을 이용.
- 가족 구성원이 해당 사설망에서 외부와 통신 시 다시 기존의 공인 IP로 변환.
- 해당 공인 IP를 통해 외부로 데이터가 나감. -> NAT 기술
- NAT은 네트워크의 경계에 위치한 라우터나 방화벽에서 수행됨.
- 네트워크 패킷이 경계에 위치한 라우터를 통과할 때, 출발지 IP 주소와 포트 번호를 변경하여 목적지로 전달.
- 사설 IP 주소를 가진 여러 호스트가 공인 IP 주소 하나로 인터넷에 접근 가능.
NAT은 주로 다음과 같은 목적으로 사용.
- IP 주소 절약:
- 사설 IP 주소를 사용함으로써 인터넷에서 필요한 공인 IP 주소의 수를 줄일 수 있다.
- 보안 강화:
- 내부 네트워크의 IP 주소를 외부에 숨기는 역할.
- 외부에서 내부 네트워크의 구성 및 IP 주소를 직접 확인할 수 없으므로 보안 측면에서 이점을 제공.
- 네트워크 통합:
- 사설 네트워크 간에 중복되는 IP 주소를 사용 가능.
- 각 네트워크 간에 겹치지 않는 IP 주소를 할당 가능.
- 로드 밸런싱:
- 동일한 공인 IP 주소를 가진 여러 호스트 간에 요청을 분배하여 로드 밸런싱 수행 가능.
[Cisco Packet Tracer] NAT 설정 및 동작 과정 확인
**[Cisco Packet Tracer] NAT 설정하기**
Router> en -> 관리자 모드 진입
Router# conf t -> 설정 모드진입
1. Router(config-router)# access-list 1 permit 192.168.200.0 0.0.0.255
2. Router(config)# ip nat inside source list 1 int
3. Router(config)# ip nat inside source list 1 int g0/0
4. Router(config)# int g0/0
5. Router(config-if)# ip nat outside
NAT 적용 모습
- 사설/외부망을 잇는 Router 0에 NAT을 적용한 모습.
- 사설망에서 Router 0에 들어오는 패킷의 정보
- 출발지 : 192.168.200.10
- 목적지 : 100.0.0.100
- Router 0에서 외부망으로 나가는 패킷의 정보
- 출발지 : 20.0.0.1
- 목적지 : 100.0.0.100
- 위와 같이 Router 0에서 사설망의 IP가 공인 IP로 변환되는 것을 볼 수 있다.
- 사설망에서 Router 0에 들어오는 패킷의 정보
NAT(Network Address Translation)을 사설 / 공중망을 잇는 라우터에 적용하게 되면 비로소 사설망과 공중망 간의 통신이 이루어지게 된다.
사설망과 공중망을 잇는 라우터에서 출발지인 사설망 IP주소를 외부와 통신이 가능한 공중망 IP 주소로 변경해주는 것이 NAT 기술.
공중망을 통해 사설망 내부 디바이스로의 접근도 가능하나, 보안상의 이유로 사용하지 않음.
AWS 기초
public 주소 : 공인 IP라고 생각
- 외부와 통신 가능
private 주소 : 사설 IP라고 생각
- 내부끼리 통신할 때에만 사용
- 외부와 통신하기 위해서 NAT Gateway를 사용해야함
예)
VPC-1 (public)
- Subnet-2
- EC2(Bastion host)
VPC-2 (Private)
- Subnet-3
- EC2
-> Private 인 VPC-2에 접속하기 위해서는 Public인 VPC-1을 통해서만 갈 수 있다.
-> VPC-2 의 EC2는 외부와 통신하기 위해서 NAT Gateway를 사용한다.
VPC 간에는 서로 통신할 수 없다.
- Peering 연결 (1대 1 연결) 을 통해 VPC를 연결할 수 있다.
- Private VPC 의 instace (EC2…)의 보안 탭 -> 보안 그룹 (방화벽 - Firewall)
- 인바운드 규칙 편집 (SSH만 접근 가능하도록 설정 되어 있는 상태)
- 새로운 규칙 추가 -> 다른 VPC를 연결할 수 있도록 해준다.
- 인바운드 규칙 편집 (SSH만 접근 가능하도록 설정 되어 있는 상태)
Private VPC 접속하기
- terminal 에서 key-pair 가 있는 폴더로 이동.
- ssh -i 키페어이름.pem ec2-user@ec2인스턴스의퍼블릭IPv4주소(ex - x.x.x.x)
- MacOs의 경우 아래와 같은 오류 발생 시
MacOs 오류
- $ chmod 600 (key file 이름).pem 을 통해 pem 키 파일의 권한을 변경해주어야 한다.
- MacOs의 경우 아래와 같은 오류 발생 시
- 보안 규칙을 추가하여 VPC 간의 peering 실행.
- 아래와 같은 연결 대상 VPC의 라우팅 테이블로 이동하여 VPC1 / VPC2 의 대상 주소 정보를 양 쪽 테이블에 추가하여 알려준다.
`` - Peering 된 추가 대상 (VPC 2)의 Private IP DNS 이름으로 Ping을 보낸다.
- VPC 1을 통해 VPC 2로 접근이 되고 있는지 확인.
참고
- 탄력적 IP는 고정 IP 이기 때문에 사용하지 않더라도 다른 회사에서 사용하지 못하기 때문에 비용이 발생.
- 따라서 사용하지 않는 탄력 IP는 해제 시켜주어야 함.
TTL : 대게 64 , 128 중 TTL 값과 근접한 값을 기준으로 모자란 수 만큼의 라우터를 거쳐 통신되고 있는 것.
- EC2 접속하는 방법 (ssh 사용법 잘 숙지할 것)
- scp 통해서 키 복사하는 방법 잘 숙지할 것
허용 가능한 만큼의 학습 내용을 복습 겸 이곳에 포스팅 해보려고 합니다.
혹시 이해가 안가거나 추가적인 설명이 필요한 부분, 오류 등의 피드백은 언제든지 환영합니다!
긴 글 읽어주셔서 감사합니다. 포스팅을 마칩니다.
Task Lists
- [x]
- [x]
- [x]
- [x]
- [x]
- [x]
- [x]
- [x]
- [x]
Comments