TeamLog🦝/network🔌

NAT

pigonhe 2024. 9. 17. 15:17

NAT (Network Address Translation)

밑에 있는 접힌 글을 보면 이해가 될 것이다.

 

: IP 주소 또는 IP 패킷의 TCP/UDP Port 숫자를 변환 및 재기록하여 네트워크 트래픽을 주고받는 기술을 의미한다.

 

NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러개의 호스트가 하나의 공인 IP주소를 사용하여 인터넷에 접속하기 위함이다.

 

먼저, 사설 ip와 공인 ip는 아래 접은 글에서 확인할 수 있다. + ip 주소 고갈 문제

더보기

현재 21세기에서 사용하는 ip주소의 version은 IPv4이다.

IPv4 체계의 ip주소의 크기는 2^32( 4,294,967,296 )개 이다.

하지만 시대의 발전에 따라 2^32개가 부족한 시대(80억인구가 하나이상의 ip사용...)가 왔기 때문에

이를 대처하는 방안이 2가지가 있다.

 

[1] NAT

 : 위에서나 밑에서 확인 가능.

[2] IPv6

: IPv4 고갈 문제를 해결하기 위해 개발된 차세대 인터넷 프로토콜 종류.

기존의 IPv4 체계를 128비 크기로 확장함.

조금씩 상용화가 이루어지고 있다.

 

----------------------------------------------------------------------------------------------------

 

Private IP (사설 IP, 내부 IP) : 일반 가정이나 회사 내부에서 사용하는 IP 주소

[사설IP 대역]

- class A : 10.0.0.0 ~ 10.255.255.255

- class B : 172.16.0.0 ~ 192.168.0.0

- class C : 192.168.0.0 ~ 192.168.255.255

 

Public IP (공인 IP, 외부 IP) : 인터넷 사용자의 로컬 네트워크를 식별하기 위해 사용하는 IP주소로 국가 기관 단위에서 제공하는 IP주소

(Public IP주소는 사용할 수 없다.)

 

>> IP를 굳이 두 종류로 나눈 이유는 IPv4 주소의 낭비를 막고 공인 인터넷을 굳이 사용하지 않아도 되는 단말들에게 어느 망이든 중복 사용이 가능한 IP를 주기 위함이다. (공인망에서는 공인 IP만이 유통)

 

---------------------------------------------------------------------------------------------------

 

사설ip를 할당받은 컴퓨터가 인터넷을 사용해야한다면 컴퓨터의 ip는 어떻게 변화하는 것일까?

 

인터넷은 공인ip로만 연결되어 통신이 가능하다. 

 

공인인터넷망과 컴퓨터 사이에는 내 컴퓨터에 ip를 할당해주는 공유기가 있다. 

공유기는 공인 ip를 보유하며 인터넷과 맞닿있다.

 

사설 ip뿐만인 컴퓨터가 외부 서비스를 사용하고자 공유기로 나아가면, 공유기는 사설 ip뿐 컴퓨터의 ip를 공유기 자신의 공인 ip로 변환 (translation)하게 된다. 즉 공유기를 지나 외부 인터넷으로 나아갈 때는 공유기의 공인 ip를 가지고 원하는 destination address로 향하는 것이다.

 

>> 이것이 NAT이라는 기술이다. (이외에도 다양한 용도가 존재함)


NAT Table

 

: Public ip와 Private ip를 변환 할 때 기록하는 Table이다.

Table에 기록된 Public ip와 Private ip를 바탕으로 NAT을 수행한다.

Router(config)# do show ip nat translations // nat table 명령어

 


Static NAT

: 하나의 사설 IP 주소와 하나의 공인 IP 주소를 1 : 1로 매핑 시키는 방식

 

공인 IP 주소와 실제로 사용하는 장비의 개수가 1:1 이기 때문에, 공인 IP주소를 아낄 수는 없다.

 

[동작 방식]

하나의 내부 IP 주소와 하나의 외부 IP 주소를 1:1로 미리 정한 후 외부 주소로 들어온 요청을 미리 지정된 내부 주소로 반환하여 내부로 전달

 

Router(config)# ip nat inside source static [Private IP]  [Public IP] // 1:1 매핑

Router(config)# int [Private Network Interface]
Router(config-if)# ip nat inside // 내부 네트워크(사설 IP) 인터페이스 지정

Router(config)# int [Public Network Interface]
Router(config-if)# ip nat outside // 외부 네트워크(공인 IP) 인터페이스 지정

 

server : 123.123.123.1/24 , gateway : 123.123.123.254 ❘ pc0 : 192.168.1.1 , gateway : 192.168.1.254
static nat 설정

 

Router(config)# do sh ip nat translation // nat 변환 테이블 확인
Router(config)# do sh ip nat statistics // nat 동작상태를 통계적으로 확인 할 수 있다 (얼마나 많은 변환이 이루어졌는지, 현재 동적으로 사용중인 ip주소가 있는지....)


Dynamic NAT

: 여러개의 사설 IP 주소와 여러개의 공인 IP 주소를 동적으로 매핑 시키는 방식 (n : n)

 

pc가 사용중이면 해당 pc의 사설 IP 와 공인 IP가 맵핑되어 있지만, pc가 사용중이지 않다면 맵핑되어 있는 공인 IP가 반환되고,

맵핑이 필요한 다른 pc가 해당 공인IP를 사용할 수 있게 된다.

 

위와 같은 방법으로 동적 할당을 해줌으로써 더 적은 공인 IP로 여러 pc가 인터넷에 연결할 수 있게 되어 공인 IP 주소를 아낄 수 있다

 

[동작 방식]

호스트가 외부로 보내는 트래픽을 라우터로 보내면 라우터에서 설정된 공인 IP 주소 풀에서 쉬고있는 IP 중 하나로 변환하여 외부로 내보냄(1:1 로 사용하며, 사용중인 외부 IP는 nat table에 기록해 놓고 중복으로 사용하지 않는다.)

외부에서 응답 신호가 라우터로 돌아오면 라우터는 nat table에 있는 정보를 확인하고 사설 IP로 변화해 내부망으로 전달

 

Router(config)# (acl 설정) (permit) (사설 ip)
Router(config)# ip nat pool [pool name] [변환할 Public IP 첫] [변환할 PUublic IP 막]netmask [변환할 Public IP의 subnetmask]
// 사용할 공인 ip 주소 풀 정의
Router(config-if)# ip nat inside source list [acl number] pool [pool name]
// acl [number]에서 지정된 사설 ip 주소 대역을 정의된 공인 ip 풀로 변환

Router(config)# int [Private Network Interface]
Router(config-if)# ip nat inside // 내부 네트워크(사설 IP) 인터페이스 지정

Router(config)# int [Public Network Interface]
Router(config-if)# ip nat outside // 외부 네트워크(공인 IP) 인터페이스 지정

 

server : 123.123.123.1/24 , gateway : 123.123.123.254 ❘ pc0 : 192.168.1.1 , gateway : 192.168.1.254
dynamic nat 설정
dynamic nat은 미리 매핑하지 않고 통신을 할때 동적으로 매핑되므로 통신을 한 후에 확인 할 수 있다.
동작상태를 통계적으로 확인 할 수 있다.


PAT (Port Address Translation)

: 공인 IP 1개와 사설 IP 여러개를 맵핑(1 : n)하여 사용할 수 있게 해주는데, 앞에서 진행한 NAT에서 포트 번호까지 이용하여 NAT를 진행한다.

 

공인 IP의 포트 번호 별로 사설 IP의 특정 포트에 맵핑해주는 방식이다.

 

공유기에서 흔히 말하는 포트 포워딩이 이러한 방식이다.

 

[Dynamic NAT의 한계]

내부망에 pc가 50대이고 NAT라우터의 전역 주소 풀의 공인 IP는 5개가 있다면 아무리 pc가 많아도 한번에 5대의 pc만이 외부와 통신할 수 있다. 그래서 나온 것이 PAT이다.

Router(config)# (acl 설정)
Router(config)# ip nat inside source list [acl number] interface [사설망이 외부망으로 나가는 부분]
// nat 변환 설정 

Router(config)# int [Private Network Interface]
Router(config-if)# ip nat inside // 내부 네트워크(사설 IP) 인터페이스 지정

Router(config)# int [Public Network Interface]
Router(config-if)# ip nat outside // 외부 네트워크(공인 IP) 인터페이스 지정

server : 123.123.123.1/24 , gateway : 123.123.123.254 ❘ pc0 : 192.168.1.1 , gateway : 192.168.1.254

 

PAT 설정
dynamic nat 와 마찬가지로 통신이 이루어진후에 기록된다.
동작 상태를 통계적으로 알 수 있다.

'TeamLog🦝 > network🔌' 카테고리의 다른 글

VPN, Tunneling  (0) 2024.09.17
Frame Relay  (0) 2024.09.17
ACL  (0) 2024.09.15
Server, PPP  (0) 2024.09.04
Port Security  (0) 2024.09.03