문서의 이전 판입니다!


네트워크 주소 변환(network address translation; NAT)

패킷을 전달하기만 하는 일반적인 라우팅과 달리, 공인 ip 를 비공인 ip 로 변환하는 것처럼 NAT는 IP주소를 변환(정확히는 패킷 재분류, 재포장)해야 함.

보통 nat라 하면 stateful napt를 말하는데, 라우팅 과정에서 nat를 수행하려면 단순히 패킷을 목적지로 전달하기만 하는 것뿐만 아니라 그 라우터를 지나는 경로에 어떤 커넥션이 맺어져 있는지 알고 있어야 하고, 패킷을 전달할 때 그 패킷이 어떤 커넥션에 속하는 패킷인지 분류해야 함. 따라서 커넥션 목록을 갖고 있어야 하고, 패킷을 분류하는 작업이 필요함.

더불어서 주소 해석 결과로 ip 헤더의 목적 또는 원본 ip 주소/포트가 바뀌게 되므로 이에 따라 ip 헤더의 체크섬도 재계산해야 함. 따라서 패킷을 까서 고쳐야 하고, 그만큼 CPU를 더 많이 필요로 함. 패킷 한 개 1500바이트 기준으로 NAT쓰루 아웃풋이 대략 1기가비트에 근접하면 실사용에 무리 없을 것이다.

내부통신은 무관함. nat와 라우팅 과정에서는 dhcp와 dns는 개입하지는 않는다.

중급 이상 공유기들은 이 과정들을 하드웨어에서 지원한다.