NAT

Network Address Translation / 네트워크 주소 변환

1 개요

NAT(네트워크 주소 변환)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다. 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다. 그렇기 때문에 네트워크의 성능에 영향을 줄 수 밖에 없다.
NAT를 쓰는 이유는 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위한 경우가 대부분이다. 예를 들어 인터넷 회선을 하나 개통하고 인터넷 공유기를 달아서 여러 PC 를 연결하여 사용 하는데, 이 것이 가능한 이유가 인터넷 공유기에 NAT 기능이 탑재되어 있기 때문이다.
중요한 자료가 들어있는 서버를 외부에 공개하지 않게 하기 위해서 중간에 방화벽을 두어서 보호한다. 하지만, 방화벽 내부의 컴퓨터는 인터넷에 접속할 수 있도록 해줘야 하기에 방화벽에 NAT를 탑재하여, 외부로 통신 가능하도록 열어 준다.

2 NAT 소프트웨어

일반 PC나 서버에서 NAT를 가능하게 하는 소프트웨어들이다.

Internet Connection Sharing (ICS): Microsoft Windows에 기본으로 포함되어 있으며, NAT와 DHCP 기능을 한다.
IPFilter: Open Solaris, FreeBSD, NetBSD에 기본으로 포함되어 있으며 UNIX 계열 운영 체제에서 사용할 수 있다.
ipfirewall : FreeBSD에 포함
Netfilter + iptables/nftables : 보통 리눅스에서 사용한다.
NPF: NetBSD에 포함
PF: OpenBSD에 포함
Routing and Remote Access Service: Windows server에 포함
WinGate : Microsoft Windows용 서드파티 프로그램이다.