NAT(Network Address Translation)
1개의 실제 공인 IP 주소에, 다량의 가상 사설 IP 주소를 할당 및 매핑하는 주소 변환 방식
IP패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UCP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받게 하는 기술
Private Network(사설망)
인터넷 어드레싱 아키텍처에서 사설 IP 주소 공간을 이용하는 네트워크
가정, 사무실, 기업 랜에서 쓰인다.
IPv4 중 특정 대역을 공인 인터넷이 아닌 한정된 공간에서 사용하는 네트워크를 의미
10.0.0.0 ~ 10.255.255.255
172.16.0.0. ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
이러한 IP 대역은 사설 IP 대역으로, 사설망에서만 사용이 가능
즉, 내부에서만 사용이 가능하고 공인망인 외부망(인터넷)에서는 사용이 불가능
사설망에서 공인 인터넷으로 나가기 위해 사설 IP를 그대로 사용할 수 없다.
그렇기에 사설 IP를 공인 IP로 변환해야 한다.
이 외에도 IP를 변환해야 할 필요가 많다.
이를 위한 방법이 Network Address Translation(NAT)이다.
NAT와 DHCP 비교
NAT
사설 IP 주소공간을 별도로 정하고는, IP 주소변환에 중점을 둔다.
기본적으로 인터넷 상에 동일 IP 주소를 재사용할 수 있게 한다.
DHCP
기확보된 공인 IP 주소 Pool을 집단 공유하며, 사용 후 반납한다.
기본적으로 제한된 IP 주소를 공유하여 절약한다.
PAT(Port Address Translation)
여러 대의 PC가 한 개의 공인 주소를 이용하여 인터넷을 사용하고자 할 경우에는 IP 정보만을 변경한다면 사설 주소 여러 개가 동일한 공인 주소를 사용하게 될 것이다. 따라서 리턴되는 트래픽을 통해 어떤 사설 주소로 보내야할지 모르게 된다. 이때 각각의 트래픽을 구분하기 위해 IP 주소와 port의 번호까지 변경하는 것
종류
NAT
- 정적 NAT
- 동적 NAT
PAT = NAT overload
- 정적 PAT
- 동적 PAT
정적 NAT
지정된 사설 주소를 지정된 공인 주소와 항상 동일하게 매핑
특정 서버는 항상 동일한 공인 주소를 사용하므로 외부에서 클라이언트들이 서버에 접속하기가 수월하다.
IP 정보만 변경하고 Port는 변경되지 않는다.
동적 NAT
공인 주소와 사설 주소를 각각 pool, ACL로 묶고 사설 주소가 인터넷을 사용하고자 하는 경우에는 공인 주소 pool에서 사용할 수 있는 공인 주소를 매핑
pool에 어떤 주소가 있느냐에 따라 사설 주소가 변경되는 공인 주소가 달라지므로 고정된 공인 주소를 사용할 수는 없다.
ex1. 정적 NAT
내부에 동작 중인 서버 192.168.2.200은 항상 공인 주소 211.183.3.200과 매핑
f0/0 - 외부
f0/1 - 내부
ex2. 동적 PAT
본사 일반 사용자들(192.168.1.0/24)은 모두 다 211.183.3.201 하나를 이용하여 인터넷을 사용할 수 있다. 지사 일반 사용자들(192.168.3.0/24)은 211.183.3.202 하나를 이용하여 인터넷을 사용할 수 있다.
SEOUL(config)# ! NAT POOL => PUBLIC IP ADDRESSES
SEOUL(config)# ip nat pool SEOUL 211.183.3.201 211.183.3.201 prefix 24
SEOUL(config)# ip nat pool JEJU 211.183.3.202 211.183.3.202 prefix 24
SEOUL(config)#
SEOUL(config)# ! Standard ACL => PRIVATE IP ADDRESSES
SEOUL(config)# access-list 1 permit 192.168.1.0 0.0.0.255
SEOUL(config)# access-list 2 permit 192.168.3.0 0.0.0.255
SEOUL(config)#
SEOUL(config)# ! NAT POOL = overload = Standard ACL
SEOUL(config)# ip nat inside source list 1 pool SEOUL overload
SEOUL(config)# ip nat inside source list 2 pool JEJU overload
SEOUL(config)#
SEOUL(config)# ! Define the private network interface
SEOUL(config)# int fa0/1.10
SEOUL(config-subif)# ip nat inside
SEOUL(config-subif)#
SEOUL(config-subif)# int fa1/0
SEOUL(config-if)# ip nat inside
<참고>
http://www.ktword.co.kr/test/view/view.php?no=1676
'Study > Network' 카테고리의 다른 글
[Network]HAProxy (0) | 2023.06.11 |
---|---|
[Network]Load Balancing(로드밸런싱) (0) | 2023.06.10 |
[Network]ACL(Access Control List) (0) | 2023.05.25 |
[Network]Static Route (0) | 2023.05.22 |
[Network]OSI 7 계층과 네트워크 패킷 (1) | 2020.07.05 |