네트워크

IP 주소 개념 뿌시기

25G 2024. 3. 9. 11:57

IP 주소 체계

IPv4

  • 32비트
  • 4개의 옥탯 (8 bit 단위로 나누고 옥텟은 .으로 구분)
  • 10진수 표기시 0~255
  • 255.255.255.255 (네개의 옥탯)

2계층 주소인 MAC 주소가 제조업체 코드인 OUI와 제조 업체별 일련 번호인 UAA의 두 부분으로 나뉘는 것과 목적이 다르지만 3계층 주소인IP 주소도 네트워크 주소와 호스트 주소 두 부분으로 나뉜다.

  • 네트워크 주소
    • 호스트들을 모은 네트워크를 지칭하는 주소. 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 한다.
  • 호스트 주소
    • 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소

클래스

MAC주소는 24비트씩 절반으로 나뉘지만 IP 주소의 네트워크 주소와 호스트 주소에대한 경계점이 고정되어있지 않다.(그래서 처음에 많이 복잡다)
IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크 크기를 다르게 할당할 수 있는 클래스 개념을 도입했습니다.

  • A 클래스
    • 250개의 주소
    • 첫번째 옥탯까지 네트워크 주소
  • B 클래스
    • 두번째 옥탯까지 네트워크 주소
  • C 클래스
    • 세번째 옥탯까지 네트워크 주소
  • D 클래스
    • 멀티캐스트
  • E 클래스
    • 예약
      클래스는 네트워크 주소와 호스트 주소를 구분하는 구분자가 명확히 고정돼 있기 때문에 클래스 별로 받을 수 있는 주소의 갯수가 고정돼 있다. 하지만 이것은 추후 치명적인 단점으로 오게된다. 왜냐하면 ip주소 체계의 특성상 46억개의 경우에 수를 가지고 이는 주소가 43억개 밖에 할당할 수 없게된다. 엄청 많다고 생각하는가? 이 43억개의 주소는 전세계가 나눠가져야한다.

주소체계 한계를 극복하고자 하는 노력들

  1. 새로운 주소체계를 설립하자
  • ipv6
  1.  그냥 클래스 체계말고 다른 체계로 하자!
  • 클래스리스 네트워크 등장

클래스리스 네트워크 등장

클래스 개념을 도입한 것이 확장성이 있고 주소 낭비가 적은 최적의 조건을 만들 수 있었던 좋은 선택이었지만. 클래스리스 주소체계는 네트워크 주소와 호스트 주소를 구분짓는 구분자(서브넷 마스크)가 필요없다. 맨 앞자리 숫자만 보면 자연스럽게 이 주소가 어느 클래스에 속해 있는지 구분할 수 있고 주소 구분자를 적용할 수 있다.
IPv4의 가장 큰 문제는 주소도 부족한데 상위 클래스를 할당받은 조직에서 이 주소들을 확정적으로 가지고 있는거다보니 다른곳으로 쓸수도 없고 심지어 이 조직에서 주소들을 다 사용하지않으면 사용되지 않는 주소들은 버려지는 주소가 된다. 이 문제를 해결하는 것이 클래스 개념 자체를 버려 클래스 리스라는 체계가 생겼다.

클레스리스 네트워크에서는 별도로 네트워크와 호스트 주소를 나누는 구분자를 사용해야하는데 이 구분자를 서브넷 마스크라고 한다. 서브넷 마스크는 IP주소와 네트워크 주소를 구분할 때 사용하는데 2진수 숫자 1은 네트워크 주소, 0은 호스트 주소로 표시합니다. 10진수를 사용해서 255.0.0.0 , 255.255.255.0 과같이 표현한다. 만약 103.9.32.146 주소에 255.255.255.0 서브넷 마스크를 사용하는 IP는 네트워크 주소가 103.9.32.0이고 호스트 주소는 0.0.0.146이 된다.

서브네팅

원래 부여된 클래스의 기준을 무시하고 새로운 네트워크-호스트 구분 기준을 사용자가 정해 클래스풀 단위의 네트워크보다 더 쪼개 사용하는 것을 서브네팅이라고 한다. 부여된 주소를 다시 쪼개서 사용하는것이 서브네팅인데 현대 클래스리스 네트워크의 가장 큰 특징이다. 옷텟단위로 구분되는 서브네팅은 구분하기 쉬운데 옥텟 단위보다 더 잘게 네트워크를 쪼개어 2진수의 1비트 단위로 네트워크를 분할하므로 서브네팅이 이해하기 어려워진다.

서브네팅을 고민해야 하는경우

  • 네트워크 사용자 입장
    • 네트워크에서 사용할 수 있는 IP범위 파악
    • 기본 게이트웨이와 서브넷 마스크 설정이 제대로 되어 있는지 확인
  • 네트워크 설계자 입장
    • 네트워크 설계 시 네트워크 내에 필요한 단말을 고려한 네트워크 범위 설계

네트워크 사용자 입장

사용자는 이미 설계되어 있는 네트워크에서 사용할 수 있는 IP주소 범위를 파악해야 한다. 그렇지않으면 단말기와 통신 문제가 생기거나 외부네트워크 전체에 통신하지 못하는 상황이 발생한다. 비트단위로 분할 됐다면 어떤 IP가 내가 속한 네트워크이고 IP 범위가 원격지 네트워크인지 판단하기 어렵다. 알아내는 방법은 다음과 같다

  1. 내 IP를 2진수로 표현
  2. 서브넥 마스크를 2진수로 표현
  3. 두개를 AND연산으로 서브네팅된 네트워크 주소를 알아낸다.
  4. 호스트 주소 부분을 2진수 1로 모두 변경해 브로드캐스트 주소를 알아낸다.
  5. 유효IP 범위를 파악한다. 서브네팅된 네트워크 주소+1은 유효 IP중 가장 작은 IP다
  6. 브로드캐스트 주소-1은 유효IP 중 가장 큰 IP이다.
  7. 2진수로 연산되어 있는 결괏값을 10진수로 변환한다.

서브네팅에서는 기준이 되는 서브넷 마스크가 핵심이다. 서브넷 마스크는 네트워크와 호스트 주소를 나누는 구분자이므로 항상 이 구분자를 중심으로 계산이 이루어져야 한다. 이를 계산하여 위 방법보다 쉬운 방법이 있다.

  1. 서브넷 마스크를 2진수로 변환
  2. 현재의 서브넷이 가질수 있는 최대 IP개수 크기를 파악 2^6=64
  3. 64의 배수로 나열하여 기준이 되는 네트워크 주소를 파악한다. 첫 블록은 0부터 시작. 각 네트워크의 마지막 주소가 브로드캐스트 주소가 된다. 이 주소는 다음 블록 네트워크 주소의 -1 수이다.
  • 053/54127/128191/192255
  1. 호스트 주소가 속한 네트워크 범위를 찾는다
  2. 필요한 주소를 정리한다.

공인 IP 와 사설 IP

IP는 전 세계에서 유일해야 하는 식별자 입니다. 이런 IP주소를 공인 IP라고 합니다. 하지만 인터넷에 연결하지 않고 개인적으로 네트워크를 구성한다면 공인 IP주소를 할당받지 않고도 네트워크를 구축할 수 있습니다. 이때 사용하는 IP주소를 사설 IP 주소라고 합니다. 사설 IP로 인터넷에 접속하려면 통신 사업자로부터 IP 주소를 할당받거나 IP할당기관에서 인터넷 독립기관 주소를 할당받은 후 독립 IP를 할당 받아야 하므로 절차가 복잡하다. 인터넷에 접속하지 않거나 NAT기술을 사용할 경우에는 사설IP주소를 사용할 수 있다.
회사 내부에서 사설 네트워크를 구축할 때 NAT를 사용하여 인터넷에 연결하더라도 다른 사용자에게 할당된 IP를 사설 네트워크 주소로 사용하면 안된다. 다른 인터넷 연결에는 문제가 없지만 내부 네트워크에 할당된 IP를 공식으로 사용하는 네트워크로 접속할 수 없으므로 인터넷 어느 구간에서도 사용되지 않는 RFC에 명시된 사설 IP 대역을 사용할 것을 추천합니다.