주소 변환 기능(NAT)이 등장한 배경
- 주소는 각 기기를 식별하는 것이므로 다른 것과 중복되지 않는 고유한 주소를 할당하는 것이 기본
- 인터넷에 접속하는 기기는 원래 고유의 주소를 가져야만 하고, 이전에는 그렇게 되어있었음
- 사내 LAN을 인터넷에 접속할 경우에는 주소를 일원화하여 관리하는 기관에 신청서를 내서 IP 주소를 취득하고, 그것을 사내의 모든 기기에 설정(즉 모두가 공개용)
- 1990년대 들어 인터넷이 일반에게 공개되자 급속하게 접속 대수 늘어나기 시작하며 다른 것과 중복되지 않는 고유한 주소를 할당하는게 불가능해지기 시작
- 이 문제를 해결하는 방법의 요체는 무엇을 가지고 고유하다고 간주할 것인가 하는 것
- A사와 B사가 완전히 별개로 독립된 사내 네트워크를 구축한다면 A, B 사이에는 패킷이 서로 왕래할 리가 없음 → A사의 서버에 할당한 주소와 같은 주소를 B사의 클라이언트에 할당해도 이 때문에 패킷을 건네줄 대상을 모르게 되는 일은 없음
- 두 회사가 같은 주소를 사용했어도 네트워크가 독립되어 있으면 문제가 일어나지 않음
이러한 규칙에 기초한 사내용 주소 : private address 고유한 주소 : global address
private address 규칙
- 사내에서 사용하는 것은 아래 범위로 한정한다
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
- 이 범위는 프라이빗 주소의 규칙을 만드는 시점에서 어디에도 할당하지 않았던, 이를 테면 미사용의 글로벌 주소 중에서 선택한 것임
- 특별한 구조를 갖고있는 것이 아닌 원래 글로벌 주소에 포함되어 있던 주소 중 범위를 정하고, 사내에서 사용한다고 약속한 것에 불과함
이렇게 해서 주소를 절약할 수 있게 되었지만, 이것만으로는 문제가 해결되지 않음. 사내 네트워크가 완전히 독립되어 있는 것이 아닌 인터넷을 통해 많은 회사에 연결되므로 패킷이 사내와 인터넷을 왕래하면 같은 주소가 있게 되어 패킷을 정확하게 운반할 수 없게 됨
주소 변환

- 주소 변환 기능은 라우터와 방화벽 둘다에서 가능함
- 주소 변환의 구조는 패킷을 중계할 때 IP 헤더에 기재된 IP 주소와 포트 번호를 바꿔 쓰는 것임
- 송신처의 IP 주소와 포트 번호를 바꿔쓴 후 패킷을 인터넷에 송출함
- 패킷이 서버에 도착하여 회신 패킷 돌아옴. 회신 패킷의 수신처는 글로벌 주소와 포트 번호임
- 글로벌 주소는 주소 변환 장치에 할당되어 있으므로 회신 패킷이 주소 변환 장치(여기서는 라우터)로 돌아옴
- 주소 변환 장치는 주소의 대응표에서 글로벌 주소와 포트 번호를 찾아서 수신처를 대응하는 프라이빗 주소와 포트 번호를 바꿔 쓰고 사내 네트워크에 패킷을 보냄
- 데이터 송.수신을 끝내고 연결 끊기 동작의 패킷이 흐르다가 인터넷에 대한 접속 동작이 끝나면 대응표에 등록한 것을 삭제함
- 인터넷 측에서 보면 주소 변환 장치(여기서는 라우터)가 통신 상대로 되어 있는 것으로 보임!
포트 번호를 바꿔쓰는 이유
- 현재 사용하고 있는 주소 변환의 원리는 주소와 포트 번호 두 가지를 바꿔쓰지만, 초기의 주소 변환은 포트 번호 바꿔쓰기를 실행하지 않고 주소만 바꿔썼음
- 이렇게 하면 프라이빗 주소와 글로벌 주소가 1대 1로 대응해서 인터넷에 동시에 접속하는 대수만큼 글로벌 주소가 필요함
- 접속 동작이 끝나고 대응표에서 삭제하면 같은 글로벌 주소를 다른 기기에서 사용할 수 는 있으니, 동시 접속 대수만큼만 있으면 되지만 이 또한 동시 접속자 수가 많으면 문제
⇒ 그래서 포트 번호도 바꿔 쓰자 ( 클라이언트 측의 포트 번호는 원래 비어 있는 것이어서 무작위로 선택하여 사용할 수 있음)
인터넷에서 회사로 액세스한다
- 사내에서 인터넷으로 액세스하는 패킷을 중계할 때는 대응표에 송신의 프라이빗 주소와 포트 번호가 등록되어 있지 않아도 패킷을 중계할 수 있음
- 바꿔 쓰는 글로벌 주소는 주소 변환 장치(라우터)에 할당되어 있고 포트 번호는 적당히 비어있는 것 사용하면 되기 때문
- 그러나 인터넷에서 사내로 패킷을 중계할 때는 대응표에 등록되어 있지 않으면 중계할 수 없음!
- ↔ 인터넷에서 액세스 하지 않는 기기에는 인터넷 측에서 패킷을 송신할 수 없다
- ↔ 사내에서 의도적으로 인터넷에 액세스하지 않는 한, 인터넷 측에서 사내에 패킷을 보낼 수 없음! ( 부정 침입을 방지하는 효과)
- 인터넷에서 사내에 액세스하고 싶다면 ? ⇒ 대응표에 수동으로 등록해두면 됨!
라우터의 패킷 필터링
- 패킷을 중계할 때 MAC 헤더, IP 헤더, TCP 헤더에 기록되어 있는 내용을 조사하여 그것이 사전에 설정한 조건에 합치되면 패킷을 중계하거나 폐기하는 동작을 실행함
- 대부분의 방화벽이라는 기기나 소프트웨어는 이 원리를 이용하여 부정 침입을 방지함
- 다른 원리로 부정 침입 방지하는 방화벽도 존재함