상세 컨텐츠

본문 제목

NAT (Network Address Translation), PAT(Port Address Translation)

네트워크/NAT, SSH

by 초띠 2023. 6. 14. 02:23

본문

<NAT 란>

정의를 하면 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이고, 핵심적인 내용은 사설 IP 를 공인 IP 로 변환하는 것입니다.

 

 

<NAT 를 사용하는 이유>

NAT의 아래와 같은 장점 때문에 많이 사용합니다.

 

1. 보안성이 좋다.

NAT는 IP 주소를 숨길 수 있다는 특징이 있습니다.

만약 라우터 외부로 트래픽이 나갈 때 사설 ip 가 공인 ip 주소로 바뀌는데, 덕분에 공격하려는 사람은 라우터 안쪽의 사설 ip 를 알 수 없습니다.

따라서 최종 목적지로의 공격이 어려워지고, 내부 네트워크 및 호스트를 보호할 수 있습니다.

 

2. IP 주소를 절약할 수 있다.

NAT를 이용하면 하나의 공인 IP 주소로 여러 호스트가 인터넷에 접속할 수 있습니다.

집 안에 하나의 인터넷 공유기를 통해 여러 대의 pc나 기기를 연결해 사용할 수 있는 것이 인터넷 공유기에 NAT 기능이 있기 때문입니다.

따라서 한정된 공인 IP 주소를 절약할 수 있습니다.

 

 

<NAT의 동작원리>

먼저, 나가는 패킷의 헤더에 출발지 사설망 IP 주소와 목적지 IP 주소를 기록하고 NAT 테이블에 저장됩니다.

게이트웨이에서 패킷을 인식하면, 출발지 사설망 IP 주소를 공인 IP 주소로 변환하고 재기록하여 NAT 테이블에 저장합니다.

 

외부에서 응답 패킷을 보내면 NAT 테이블을 참조하여 공인 IP 주소를 사설 IP 주소로 변환합니다.

 

위와 같은 과정이 이루어지기 때문에 별도의 라우팅 없이도 내부와 외부의 통신이 가능합니다.

 

 

<Static NAT>

공인 IP 주소와 사설 IP 주소가 1 : 1 로 매칭됩니다.

하지만 이 경우에는 장점인 IP 절약 효과가 나타나지 않습니다.

그래서 주로 포트포워딩을 목적으로 사용합니다.

 

- 포트포워딩 : 특정 서비스에 임의의 포트를 지정하여 해당 포트를 통해 경로를 지정해주는 기능

NAT에서는 테이블에 공인 IP 로 요청이 왔을 때 특정 서버의 특정 포트로 리다이렉트 시키는 것입니다.

포트포워딩 덕분에 외부에서 내부로 통신이 가능합니다.

 

<Dynamic NAT>

여러 개의 공인 IP 주소보다 사설 IP 주소가 더 많을 때 N : N 으로 매칭됩니다.

내부 네트워크에 호스트 수가 많은 경우 사용합니다.

 

 

<PAT(Port Address Translation)>

공인 IP 주소 1개에 여러 개의 사설 IP 주소가 매칭됩니다.

사설망 내 각 호스트에 임의의 포트번호를 지정하여 " 사설 IP 와 해당 포트 - 공인 IP 와 해당 포트 " 로 매칭합니다.

포트번호를 지정하는 이유는 외부에서 들어오는 패킷을 내부의 목적지에 정확하게 전달하기 위해서입니다.

 

 

<NAT 설정 명령>

 

- Static NAT & Port Forwading

 

(config)# ip nat inside source static [내부 ip] [외부 ip]

(config)# int [외부 포트] ip nat outside

(config)# int [내부 포트] ip nat inside

 

show ip nat static 은 NAT 성립을 확인할 수 있다.

 

 

 

- Dynamic NAT

 

(config)# access list [acl num] permit [사설 ip] [wildcardmask]

(config)# ip nat pool [pool name] [시작 공인 ip] [끝 공인 ip] netmask [subnetmask]

(config)# ip nat inside source list [acl num] pool [pool name]

(config)# int [내부 포트]

(config-내부포트)# ip nat inside

(config)# int [외부 포트]

(config-외부포트)# ip nat outside  

 

확인 명령어 : show ip nat translations

debug ip nat 는 실시간 확인 명령어

 

- PAT

 

dynamic nat 세번째 명령에 overload를 붙이면 됩니다.

(config)# ip nat inside source list [acl num] int [설정할 interface] overload

'네트워크 > NAT, SSH' 카테고리의 다른 글

관련글 더보기