11장에서는 기본 보안 기능을 다뤘다. ACL로 트래픽을 제어하고, Port Security로 access port를 보호하고, DHCP Snooping과 DAI로 스위칭 영역의 공격을 줄이는 방법을 봤다.
이번 장에서는 NAT와 PAT를 다룬다.
NAT는 Network Address Translation의 약자다. 이름 그대로 IP 주소를 변환하는 기술이다.
우리가 회사나 집에서 쓰는 PC는 보통 사설 IP 주소를 가진다. 예를 들어 192.168.10.10 같은 주소다. 그런데 이 주소는 인터넷에서 직접 라우팅되지 않는다.
그래서 인터넷으로 나갈 때 경계 라우터나 방화벽이 사설 주소를 공인 주소로 바꿔준다.
이 과정이 NAT다.
- 사설 IP와 공인 IP
IPv4 주소는 크게 공인 IP와 사설 IP로 나눠 볼 수 있다.
공인 IP는 인터넷에서 라우팅될 수 있는 주소다.
사설 IP는 내부 네트워크에서만 사용하는 주소다.
대표적인 사설 IP 대역은 다음과 같다.
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
이 주소들은 인터넷에 그대로 나가면 라우팅되지 않는다. 그래서 내부 네트워크에서는 자유롭게 사용할 수 있지만, 인터넷으로 나갈 때는 공인 IP로 변환되어야 한다.
- NAT가 필요한 이유
NAT가 필요한 이유는 크게 두 가지다.
첫째, IPv4 주소를 절약할 수 있다.
내부 수십 대, 수백 대의 장비가 모두 공인 IP를 하나씩 쓰면 공인 주소가 많이 필요하다. NAT를 사용하면 내부에서는 사설 IP를 쓰고, 외부로 나갈 때만 공인 IP를 사용한다.
둘째, 내부 주소 구조를 외부에 직접 노출하지 않는다.
NAT가 보안 장비 자체는 아니지만, 내부 사설 주소가 인터넷에 그대로 보이지 않는 효과는 있다. 다만 이것을 방화벽처럼 과신하면 안 된다. 접근 제어는 ACL이나 방화벽 정책으로 따로 해야 한다.
- NAT 용어
Cisco NAT 문제에서 가장 헷갈리는 부분이 용어다.
inside local
inside global
outside local
outside global
먼저 inside는 내부 네트워크 쪽을 의미한다.
outside는 외부 네트워크 쪽을 의미한다.
local은 해당 주소가 그 영역에서 실제로 보이는 형태라고 보면 된다.
global은 반대편 네트워크에서 보이는 형태라고 보면 된다.
CCNA에서는 특히 inside local과 inside global을 확실히 잡으면 된다.
inside local은 내부 호스트의 실제 사설 주소다.
inside global은 외부에서 보이는 변환된 공인 주소다.
예를 들어 내부 PC가 192.168.10.10이고 NAT 라우터가 이 주소를 203.0.113.10으로 바꿔 인터넷에 내보낸다면 다음과 같다.
inside local: 192.168.10.10
inside global: 203.0.113.10
- NAT inside와 outside
Cisco 라우터에서 NAT를 설정할 때는 인터페이스 방향을 지정한다.
내부 LAN 방향 인터페이스에는 ip nat inside를 설정한다.
인터넷 또는 외부망 방향 인터페이스에는 ip nat outside를 설정한다.
예시는 다음과 같다.
```text interface g0/0 description LAN ip nat inside
interface g0/1 description INTERNET ip nat outside ```
이 방향을 반대로 설정하면 NAT가 제대로 동작하지 않는다.
NAT 문제를 풀 때는 “어느 인터페이스가 inside이고 어느 인터페이스가 outside인가”를 먼저 확인해야 한다.
- Static NAT
Static NAT는 사설 주소와 공인 주소를 1:1로 고정 매핑하는 방식이다.
예를 들어 내부 서버 192.168.10.10을 항상 203.0.113.10으로 변환할 수 있다.
대표 설정은 다음과 같다.
text ip nat inside source static 192.168.10.10 203.0.113.10
Static NAT는 외부에서 내부 서버로 들어와야 하는 경우에 자주 사용된다.
예를 들어 인터넷 사용자가 회사 웹 서버에 접속해야 한다면, 공인 IP와 내부 서버 IP를 고정 매핑할 수 있다.
- Dynamic NAT
Dynamic NAT는 사설 주소를 공인 주소 풀에서 동적으로 하나 골라 매핑하는 방식이다.
먼저 공인 IP 풀을 만든다.
그리고 어떤 내부 주소들이 NAT 대상인지 ACL로 지정한다.
예시는 다음과 같다.
text ip nat pool NAT\_POOL 203.0.113.10 203.0.113.20 netmask 255.255.255.0 access-list 10 permit 192.168.10.0 0.0.0.255 ip nat inside source list 10 pool NAT\_POOL
Dynamic NAT는 풀에 있는 공인 IP 수만큼만 동시에 변환할 수 있다.
예를 들어 공인 IP가 10개인데 내부 사용자가 100명이라면, 동시에 NAT 가능한 수는 제한된다.
이 한계를 해결하기 위해 많이 쓰는 것이 PAT다.
- PAT
PAT는 Port Address Translation의 약자다.
NAT Overload라고도 부른다.
PAT는 주소뿐 아니라 포트 번호까지 함께 변환한다.
그래서 여러 내부 호스트가 하나의 공인 IP를 공유할 수 있다.
예를 들어 내부 PC 세 대가 모두 인터넷 웹 서버에 접속한다고 하자.
192.168.10.10:51514
192.168.10.11:51515
192.168.10.12:51516
라우터는 이들을 하나의 공인 IP로 바꾸되, 서로 다른 포트 번호를 붙여 구분할 수 있다.
203.0.113.10:30001
203.0.113.10:30002
203.0.113.10:30003
이것이 우리가 가정과 회사에서 가장 흔히 사용하는 NAT 방식이다.
- PAT 설정 예시
가장 흔한 PAT 설정은 inside 인터페이스 쪽 사설 대역을 ACL로 지정하고, outside 인터페이스 주소로 overload하는 방식이다.
예시는 다음과 같다.
```text access-list 1 permit 192.168.10.0 0.0.0.255
interface g0/0 ip nat inside
interface g0/1 ip nat outside
ip nat inside source list 1 interface g0/1 overload ```
마지막 줄이 핵심이다.
interface g0/1 overload는 g0/1 인터페이스의 공인 IP 주소를 사용하고, 포트 번호를 함께 변환해서 여러 내부 호스트가 공유하게 만든다는 뜻이다.
- NAT와 ACL의 관계
Get David Lee’s stories in your inbox
Join Medium for free to get updates from this writer.
Subscribe
Subscribe
Remember me for faster sign in
NAT 설정에서 ACL은 트래픽을 차단하기 위한 ACL과 의미가 조금 다를 수 있다.
PAT 설정의 access-list 1 permit 192.168.10.0 0.0.0.255는 “이 트래픽을 허용한다”라기보다 “이 사설 대역을 NAT 대상으로 삼는다”는 의미다.
물론 일반 ACL은 permit/deny로 트래픽을 제어한다.
하지만 NAT에서 source list로 사용되는 ACL은 NAT 대상 트래픽을 선택하는 역할을 한다.
시험에서 이 차이를 놓치면 헷갈릴 수 있다.
- NAT Order of Operations
CCNA 수준에서는 NAT가 라우팅, ACL과 함께 동작한다는 정도를 이해하면 된다.
패킷이 라우터에 들어오면 라우터는 목적지까지 보낼 경로를 알아야 하고, NAT 대상인지도 판단해야 한다.
문제를 풀 때는 다음 순서로 생각하면 실수가 줄어든다.
첫째, inside/outside 인터페이스가 맞는지 확인한다.
둘째, NAT 대상 ACL이 내부 주소를 정확히 포함하는지 확인한다.
셋째, 라우팅 테이블에 외부로 나갈 경로가 있는지 확인한다.
넷째, ACL이나 방화벽이 트래픽을 막고 있지 않은지 확인한다.
NAT만 맞아도 기본 경로가 없으면 인터넷으로 나갈 수 없다.
- show ip nat translations
NAT 동작 확인에서 가장 중요한 명령은 다음이다.
text show ip nat translations
이 명령은 현재 NAT 변환 테이블을 보여준다.
출력에서 자주 보는 열은 다음과 같다.
Inside local
Inside global
Outside local
Outside global
여기서 inside local과 inside global을 먼저 보면 된다.
inside local은 내부 사설 주소다.
inside global은 외부로 보이는 변환 주소다.
- show ip nat statistics
NAT 통계를 확인할 때는 다음 명령을 사용한다.
text show ip nat statistics
이 명령은 활성 변환 수, 사용 중인 NAT pool, inside/outside 인터페이스 정보 등을 확인하는 데 도움이 된다.
NAT가 안 될 때는 translations만 보는 것보다 statistics도 같이 보는 것이 좋다.
- clear ip nat translation
NAT 변환을 지워야 할 때는 다음 명령을 사용할 수 있다.
text clear ip nat translation \*
운영 장비에서는 신중해야 한다.
활성 NAT 변환을 지우면 기존 세션이 끊길 수 있다.
실습이나 시험 맥락에서는 “NAT 테이블을 초기화할 수 있다” 정도로 이해하면 된다.
- NAT 트러블슈팅 루틴
NAT 문제는 다음 순서로 보면 된다.
첫째, inside와 outside 인터페이스가 맞는지 확인한다.
show running-config interface로 ip nat inside와 ip nat outside를 확인한다.
둘째, NAT 대상 ACL이 맞는지 확인한다.
내부 사설 대역이 ACL에 포함되어 있어야 한다.
셋째, outside 인터페이스에 공인 IP가 있는지 확인한다.
PAT overload에서 interface 주소를 사용한다면 outside 인터페이스 IP가 필요하다.
넷째, 기본 경로가 있는지 확인한다.
인터넷으로 나가려면 default route가 필요할 수 있다.
다섯째, 변환 테이블이 생기는지 확인한다.
show ip nat translations에서 inside local과 inside global이 생기는지 본다.
여섯째, ACL이나 방화벽이 막고 있지 않은지 확인한다.
NAT가 되어도 보안 정책에서 차단되면 통신은 실패한다.
- NAT와 보안
NAT는 내부 주소를 숨기는 효과가 있다.
하지만 NAT 자체를 보안 정책으로 착각하면 안 된다.
NAT는 주소 변환 기술이다.
트래픽을 허용하거나 차단하는 정책은 ACL이나 방화벽에서 처리해야 한다.
예를 들어 내부 사용자가 인터넷으로 나가는 PAT를 설정했다고 해서, 외부에서 내부로 들어오는 모든 공격이 자동으로 완벽히 막히는 것은 아니다.
보안은 NAT, ACL, 방화벽, 라우팅 정책을 함께 봐야 한다.
- 시험에서 자주 틀리는 부분
첫째, inside local과 inside global을 헷갈리는 것.
inside local은 내부 실제 사설 주소고, inside global은 외부에 보이는 변환 주소다.
둘째, Dynamic NAT와 PAT를 섞는 것.
Dynamic NAT는 공인 주소 풀에서 주소를 하나씩 매핑한다. PAT는 포트 번호까지 사용해 여러 내부 호스트가 하나의 공인 IP를 공유한다.
셋째, NAT ACL을 일반 필터링 ACL처럼만 이해하는 것.
NAT source list의 ACL은 NAT 대상을 고르는 역할을 한다.
넷째, ip nat inside와 ip nat outside를 반대로 설정하는 것.
방향이 틀리면 NAT가 동작하지 않는다.
다섯째, NAT만 설정하고 default route를 빼먹는 것.
인터넷으로 나갈 경로가 없으면 주소 변환이 되어도 통신할 수 없다.
- 12장 정리
NAT는 IP 주소를 변환하는 기술이다.
사설 IP는 인터넷에서 직접 라우팅되지 않는다.
inside local은 내부 실제 사설 주소다.
inside global은 외부에서 보이는 변환 주소다.
NAT 인터페이스에는 ip nat inside와 ip nat outside를 올바르게 지정해야 한다.
Static NAT는 1:1 고정 변환이다.
Dynamic NAT는 공인 주소 풀에서 동적으로 주소를 할당한다.
PAT는 주소와 포트 번호를 함께 변환해 여러 내부 호스트가 하나의 공인 IP를 공유하게 한다.
PAT 설정에서는 overload 키워드가 핵심이다.
show ip nat translations는 NAT 변환 테이블을 확인하는 핵심 명령이다.
show ip nat statistics는 NAT 상태와 통계를 확인한다.
NAT 문제는 inside/outside, ACL, outside IP, default route, translation table 순서로 확인한다.
- 다음 장 예고
13장에서는 WAN과 VPN 기본을 다룬다. 인터넷 회선, leased line, MPLS, IPsec VPN, GRE 같은 개념을 정리하고, 지사와 본사를 연결할 때 어떤 방식이 사용되는지 살펴본다.



댓글 0
댓글은 운영자만 작성할 수 있어요.