HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📖
공부한 책
/
1%의 네트워크 원리
1%의 네트워크 원리
/3장 케이블의 앞은 LAN 기기였다/
라우터의 부가 기능 [NAT, 패킷 필터링]

라우터의 부가 기능 [NAT, 패킷 필터링]

주소 변환 기능(NAT)이 등장한 배경private address 규칙주소 변환포트 번호를 바꿔쓰는 이유인터넷에서 회사로 액세스한다라우터의 패킷 필터링

주소 변환 기능(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 헤더에 기재된 IP 주소와 포트 번호를 바꿔 쓰는 것임
  1. 송신처의 IP 주소와 포트 번호를 바꿔쓴 후 패킷을 인터넷에 송출함
  1. 패킷이 서버에 도착하여 회신 패킷 돌아옴. 회신 패킷의 수신처는 글로벌 주소와 포트 번호임
  1. 글로벌 주소는 주소 변환 장치에 할당되어 있으므로 회신 패킷이 주소 변환 장치(여기서는 라우터)로 돌아옴
  1. 주소 변환 장치는 주소의 대응표에서 글로벌 주소와 포트 번호를 찾아서 수신처를 대응하는 프라이빗 주소와 포트 번호를 바꿔 쓰고 사내 네트워크에 패킷을 보냄
  1. 데이터 송.수신을 끝내고 연결 끊기 동작의 패킷이 흐르다가 인터넷에 대한 접속 동작이 끝나면 대응표에 등록한 것을 삭제함
  • 인터넷 측에서 보면 주소 변환 장치(여기서는 라우터)가 통신 상대로 되어 있는 것으로 보임!

포트 번호를 바꿔쓰는 이유

  • 현재 사용하고 있는 주소 변환의 원리는 주소와 포트 번호 두 가지를 바꿔쓰지만, 초기의 주소 변환은 포트 번호 바꿔쓰기를 실행하지 않고 주소만 바꿔썼음
    • 이렇게 하면 프라이빗 주소와 글로벌 주소가 1대 1로 대응해서 인터넷에 동시에 접속하는 대수만큼 글로벌 주소가 필요함
    • 접속 동작이 끝나고 대응표에서 삭제하면 같은 글로벌 주소를 다른 기기에서 사용할 수 는 있으니, 동시 접속 대수만큼만 있으면 되지만 이 또한 동시 접속자 수가 많으면 문제
⇒ 그래서 포트 번호도 바꿔 쓰자 ( 클라이언트 측의 포트 번호는 원래 비어 있는 것이어서 무작위로 선택하여 사용할 수 있음)

인터넷에서 회사로 액세스한다

  • 사내에서 인터넷으로 액세스하는 패킷을 중계할 때는 대응표에 송신의 프라이빗 주소와 포트 번호가 등록되어 있지 않아도 패킷을 중계할 수 있음
    • 바꿔 쓰는 글로벌 주소는 주소 변환 장치(라우터)에 할당되어 있고 포트 번호는 적당히 비어있는 것 사용하면 되기 때문
  • 그러나 인터넷에서 사내로 패킷을 중계할 때는 대응표에 등록되어 있지 않으면 중계할 수 없음!
    • ↔ 인터넷에서 액세스 하지 않는 기기에는 인터넷 측에서 패킷을 송신할 수 없다
    • ↔ 사내에서 의도적으로 인터넷에 액세스하지 않는 한, 인터넷 측에서 사내에 패킷을 보낼 수 없음! ( 부정 침입을 방지하는 효과)
  • 인터넷에서 사내에 액세스하고 싶다면 ? ⇒ 대응표에 수동으로 등록해두면 됨!

라우터의 패킷 필터링

  • 패킷을 중계할 때 MAC 헤더, IP 헤더, TCP 헤더에 기록되어 있는 내용을 조사하여 그것이 사전에 설정한 조건에 합치되면 패킷을 중계하거나 폐기하는 동작을 실행함
  • 대부분의 방화벽이라는 기기나 소프트웨어는 이 원리를 이용하여 부정 침입을 방지함
    • 다른 원리로 부정 침입 방지하는 방화벽도 존재함