[네트워크]IP4v Addresses의 개요

공부기록·2023년 11월 21일
0
post-thumbnail

📑 IP4v 주소

32비트 Long타입으로 주소는 유일해야한다.


앞자리만 보고 어느 클래스인지 알기!

Netid가 학교라면 Hostid가 고유번호라 생각하면 된다.
한 네트워크당 전체 주소의 갯수는 2의 32-n(netid가 속한 bit)승이다.

  • 한 네트워크의 첫 주소는 hostid가 모두 0일 때고, 마지막 주소는 hostid가 모두 1일때이다.

    • A class : 17.0.0.0 ~ 17.225.225.225
    • B class : 181.16.0.0 ~ 181.16.225.225
  • 첫주소(Network Address)와 마지막 주소(special)는 일반적인 기기에게 부여되는 주소가 아니다.

classblocks의 개수block당 주소의 개수
A16,38465,536
B2,097,152256
C1268,435,456

CLASS당 주소의 수 = 2(32n)2^(32-n)

router, switch, 기계들이 한 네트워크 안에 있는 단위가 LAN인 듯 하다.


🖥️ Network Mask

만약 라우팅 테이블에 IP 주소를 넣는다면 A class 기준 1,600만개의 행이 필요하다. 그러므로 routing table을 적은 데이터로 구분하기 위하여 Routing Table엔 network address와 interface가 매핑되어있는데 가야할 주소의 네트워크 주소만 추출한다면 table을 통하여 알맞은 네트워크로 보내줄 수 있다.


그러면 어떻게 네트워크 주소만 추출할 것인가? network mask를 이용하면 된다.

  • 각 클래스에 따라서 netid만 1로 설정한 후 목적지 주소와 and(&)연산하여 네트워크 주소를 추출할 수 있다.
    • A Class : 11111111.00000000.00000000.00000000
    • B Class : 11111111.11111111.00000000.00000000



🖥️ 서브넷

네트워크의 시작주소를 이용하여 어느 네트워크에 해당 packet이 존재하는지 알 수 있다. 그 속의 네트워크도 많으므로 네트워크 속에서 또 그룹화를 하는 것 서브넷이라한다.

  • Destination 주소를 서브넷의 비트까지 포함하여 subnet mask를 이용하면 그 주소가 있는 서브넷의 주소를 알 수 있다.

    만약 4개의 주소가 필요하다? 4<=224 <= 2^2 따라서 2개의 비트가 필요하다.
    만약 10개의 주소가 필요하다? 10<=2410<=2^4이므로 4개의 bit가 필요하다.

  • 141.14.0.0/16인 네트워크가 4개의 서브넷으로 구성된다면 구분을 위해서는 2개의 비트가 더 필요하고 총 구분을 위한 비트는 18비트가 필요하게 된다.
    • 만약 destination 주소가 141.14.90.27일 때 해당 서브넷의 주소는 141.14.01011010.27 & 256.256.11000000.0(18bit짜리 subnet mask) 연산을 진행한다. 이 연산을 통하여 해당 서브넷의 주소는 141.14.64.0/18임을 알 수 있다.

🖥️ Classless Addressing

그냥 subnet만 이용하는 것은 주소고갈문제의 궁금적인 해결방식이 되지 못한다. 단기적으로 봤을 때의 해결방안이 classless addressing이다.

  • Variable-Length Blocks
  • Two-level Addressing
  • Block Allocation
  • Subnetting

byte \cdot byte \cdotbyte \cdotbyte / n

  • n : Prefix length

✏️exam 5.25

230.8.24.56이 속한 네트워크의 block

  • 230.8.00011000.00111000
  • Prefix length : 16
    • 230.8.0.0 - 230.8.255.255
  • Prefix length : 20
    • 230.8.0001 1000.0 - 230.8.0001 1111.1111 1111
  • 첫주소 : Prefix제외 주소 모두 0
  • 마지막주소 Prefix제외 주소 모두 1

✏️ exam 5.27

167.199.170.82/27가 속해있는 네트워크의 주소의 수와 첫번째주소, 마지막 주소를 구하여라

  • 167.199.170.01010010
  • 255.255.255.11100000
    • 네트워크 속 주소의 수 : 2(3227)=25=322^(32-27) = 2^5 = 32
    • &연산 : 167.199.170.01000000(64)
    • 마지막 주소 : 167.199.170.01011111(95)

✏️ exam 5.32

130.34.12.64/26이 4개의 서브넷을 구성하고 있다.

  • 4개의 서브넷 \rarr 2개의 비트 - 총 비트 28 비트
  • 130.34.12.0100 0000 / 28 - 130.34.12.0100 1111 / 28
  • 130.32.12.0101 0000 / 28 - 130.34.12.0101 1111 / 28
  • 130.32.12.0110 0000 / 28 - 130.34.12.0110 1111 / 28
  • 130.32.12.0111 0000 / 28 - 130.34.12.0111 1111 / 28

✏️ exam 5.33

  • 이 문제가 다른점. 그동안은 몇개의 subnet으로 이루어졌는가가 기준이었지만 이번에는 한 블럭당 몇개의 주소로 이루어져야하는가로 이루어짐 \rarr 오른쪽에서부터 부여

    14.24.74.0/24를 2개의 subnet으로 나누는데 120, 60개의 주소로 나누어야한다.

    • 120개의 주소 - 7bit가 필요하다.
      • Prefix Length = 32 - 7 = 25
      • 14.24.74.00000000 / 25 - 14.24.74.01111111 / 25
    • 60개의 주소 - 6bit가 필요하다.
      • 14.24.74.10000000 / 26 - 14.24.74.10111111 / 25

✏️ exam 5.35

190.100.0.0/16으로 시작하는 네트워크가 있다. 이때 다음과같이 세개의 그룹으로 나누려한다.

  • 첫번째 그룹 : 64명의 고객이 각각 256개의 주소를 원한다.
  • 두번째 그룹 : 128명의 고객이 각각 128개의 주소를 원한다.
  • 세번째 그룹 : 128명의 고객이 각각 64개의 주소를 원한다.
  • 오른쪽에서부터 bit를 설정해야한다.

  1. 첫번째 그룹 : 64명의 고객 + 256개의 주소 = 262^6 + 282^8 \rarr 총 14개의 비트를 할당해 주어야한다. (그룹화)
    190.100.0000 0000. 0000 0000 / 16에서 14비트를 할당하면
    190.100.0000 0000. 0000 0000 / 18이고 subnet이 64개 필요하므로 해당 비트에서 왼쪽으로부터 6비트가 할당되어야한다.
  2. 190.100.0000 0000.00000000/24가 서브넷의 첫 주소가 된다. (subnet 분할)
    190.100.0000 0000.0000 0000/24 - 190.100.0000 0000.1111 1111/24
    190.100.0000 0001.0000 0000/24 - 190.100.0000 0001.1111 1111/24
    ...
    190.100.0011 1111.0000 0000/24 - 190.100.0011 1111.1111 1111/24이 된다.

이런 식으로 진행하면 된다...



Special address


all-zero address

  • 클라이언트는 네트워크 부팅과정에서 DHCP 서버를 이용하여 IP주소를 할당받을 수 있다.
  • 할당받기 전에는 주소가 없기에 이때 해당 기기의 IP주소 즉, Source는 0.0.0.0으로 할당한다.

limited-broadcast address

  • Destination 주소를 모두 1로 설정하여 수신자가 다수이거나 수신자를 모를때 모두에게 packet을 전송하여 맞는 주소는 이 packet을 송신하게된다.

loopback address

  • Destination의 주소가 127.x.y.z와 같이 127로 시작하는 주소로 모두 잘 실행되고 있는지 테스트하기 위하여 이용된다.

사설망 주소

  • 10.0.0.0/8 , 192.168.0.0/16

directed broadcast address

  • Suffix의 비트를 모두 1로 설정하여 브로드캐스트용이다.
    • 221.45.71.255/24 \rarr 221.45.71.0/24의 모든 기기들에게 packet이 전송된다.



🖥️ NAT (Network Address Translation)

  • Problem : 사설망에서 서버로 packet을 보낼때, 사설망의 주소는 해당 네트워크의 내부에서만 구분이 가능한데 외부 네트워크에서는 사설망의 주소만으로는 어느 네트워크에서 왔는지 다른 네트워크에서는 알 수 없다.
  • 이때 이용하는 것이 NAT이다. NAT는 NAT translation table을 가지고 있는데 이는 WAN 쪽의 주소와 LAN 쪽의 주소를 매핑하여 저장하고있어 packet의 전송이 원할하게 이루어질 수 있다.
  1. 사설망 PC 10.0.0.1이 128.119.40.18, 80에게 packet을 보낸다.
  • S : 10.0.0.1, 3345
  • D : 128.119.40.186, 80
  1. NAT translation table에서 사설망에게 WAN쪽 주소를 부여한다.
WANLAN
138.76.29.7, 500110.0.0.1, 3345

NAT를 통과하면 datagram의 source address가 변환된다.

  • S : 138.76.29.7, 5001
  • D : 128.119.40.186, 80
  1. destination으로부터의 응답이 전달된다.
  • S : 128.119.40.186, 80
  • D : 138.76.29.7, 5001
  1. NAT을 통과하며 다시 WAN쪽 주소는 사설망 주소로 변환된다.
  • S : 128.119.40.186, 80
  • D : 10.0.0.1, 3345

0개의 댓글

관련 채용 정보