NAT(National Address Translation)
IP packet 에 있는 출발지 및 목적지의 IP 주소와 TCP/UDP port 숫자 등을 바꿔 재기록하면서 network trafic 을 주고 받게하는 기술
가장 중요한 질문이다. NAT 를 사용하는 데에는 크게 두가지 이유가 존재한다.
NAT 동작의 특성상 IP 주소를 숨길 수 있는 기능이 있다. Router 외부로 트레픽이 나갈 때는 사설 IP가 공인 IP 로 바뀌게 되는데,
이 때문에 공격자가 router 안쪽 사설 IP 를 알 수 없게 되어 공격으로부터 보호 할 수 있다.
주소 할당 방식에 따라서는 3가지로 나뉘어진다.
공인 IP 와 사설 IP 주소가 1:1 로 매칭되는 방식이다.
공인 IP 주소 대비 사설 IP 주소 갯수가 더 많을 경우에 사용하는 방식이다.
1개의 공인 IP 주소에 여러개의 사설 IP 주소가 매칭되는 방식이다.
또한, private network 내 각 호스트에 임의의 port 를 지정하여 사설 IP/port 를 공인 IP/port 로 치환하는 방식을 사용한다.
패킷 방향에 따라서는
내부에서 외부로 나가는 패킷의 출발지 IP 주소를 변경하는 것이다. ( IP 마스커레이드 )
( 인터넷 공유기 )
외부에서 내부로 들어오는 패킷에 있는 목적지 IP 주소를 변경하여 최종적으로 내부에 있는 호스트에 패킷이 도달 할 수 있다.
( load balancer, 방화벽 )