Chapter 4. IP Addressing & subnetting
1. IP Address
- IP주소
‧ 인터넷에 연결된 모든 통신망과 그 통신망에 연결된 컴퓨터에 부여되는 고유의 식별 주소
‧ IP주소는 32bit 즉, 2진수 32자리로 이루어져 있고 따라서 표현할 수 있는 주소의 수는 2²³개정도이며 그 중에 일정한 규칙 때문에 못 쓰는 주소도 있다.
‧ 2진수 표현에서 8자리마다 점(.)을 찍기 때문에 2진수 8개를 묶어 옥텟(Octet)이라고 한다.
‧ 각 옥텟의 최댓값은 255가 된다.
‧ IP 주소는 네트워크 주소(Network Address), 호스트 주소(Host Address)로 구성되며 각 주소는 네트워크 주소를 배정하고 그 후에 호스트 주소를 배정하며 점(.)을 찍은 10진수 표현 방식을 이용한다.
- IP Address Class
‧ IP 주소는 그 활용도에 따라서 A, B, C, D, E Class로 구분된다.
‧ 어떤 네트워크에 주소를 할당할 때 필요한 주소의 수를 생각해 Class를 결정하며 할당하고 남을 주소의 개수가 최소가 되도록 Class를 결정해야한다.
‧ Class A
◦ 가장 왼쪽 옥텟의 맨 앞 숫자가 0으로 시작되는 IP주소들을 말하며 Network ID부분은 첫 번째 옥텟까지 해당한다.
◦ 가장 작은 수 0.0.0.0부터 127.255.255.255까지가 되며 0.x.x.x와 127.x.x.x는 제외된다.
(0은 2진수일 때 0000 0000로 32bit구성에 위배되고 127은 0111 1111로 loop back address(TCP/IP 자기진단 테스트용)로 제외되며 이 주소들을 예약 주소라고 한다.)
◦ Class A의 개수(Network 개수)는 2⁷-2로 126개가 된다.
(7제곱인 이유 : 첫 번째 옥텟의 2진수 첫째짜리 제외한 7개)
◦ Host ID의 개수는 2²⁴-2로 16,777,214개가 된다.
※ 2개를 제외하는 이유 : x.0.0.0의 주소는 Network address가 되며 x.255.255.255는 Broadcast address가 된다.
‧ Class B
◦ 가장 왼쪽 옥텟의 맨 앞 숫자가 10으로 시작되는 IP주소들을 말하며 Network ID부분은 두 번째 옥텟까지 해당한다.
◦ 가장 작은 수 128.0.0.0부터 191.255.255.255까지의 범위의 IP주소들이다.
◦ Class B의 개수(네트워크 개수)는 2¹⁴로 16,384개가 된다.
(14제곱인 이유 : 첫 번째 옥텟의 2자리를 제외한 6자리와 두 번째 옥텟의 8자리를 더해 14개)
◦ Host ID의 개수는 2¹⁴로 65,534개가 된다.
‧ Class C
◦ 가장 왼쪽 옥텟의 맨 앞 숫자가 110으로 시작되는 IP주소들을 말하며 Network ID부분은 세 번째 옥텟까지 해당한다.
◦ 가장 작은 수 192.0.0.0부터 223.255.255.255까지의 범위의 IP주소들이다.
◦ Class C의 개수(네트워크 개수)는 2²¹로 2,097,152개가 된다.
(21제곱인 이유 : 첫 번째 옥텟의 3자리를 제외한 5자리와 두 번째, 세 번째 옥텟의 16자리를 더해 21개)
◦ Host ID의 개수는 2⁸로 256개가 된다.
‧ Class D
◦ 가장 왼쪽 옥텟의 맨 앞 숫자가 1110으로 시작되는 IP주소들을 말한다.
◦ Multicast 주소를 말한다.
※ Multicast 주소 : 하나의 송신자가 다수의 수신자에게 패킷을 전송하는 주소
‧ Class E
◦ 가장 왼쪽 옥텟의 맨 앞 숫자가 1111로 시작되는 IP주소들을 말한다.
◦ 주로 연구용으로 사용된다.
‧ 예약 주소
◦ 어떠한 규칙으로 사용되지 않는 주소 대역이며 실제로 막아야할 주소 대역이다.
◦ RFC 1918 : 개인(또는 특정 기업이나 단체) 인터넷을 위한 주소 할당 기법(Address Allocation for Private Internets)
◦ RFC 3330 : 특수 용도의 IPv4 주소(Special-Use IPv4 Addresses)
‧ Classful & Classless
◦ Classful : Class A, B, C에서 정해진 규칙대로 주소를 만드는 것
◦ Classless : Class A, B, C 에서 정해진 규칙대로 주소를 만들지 않고 다른 방법으로 주소를 만드는 것
‧ Network Address(ID) & Host Address(ID)
◦ 네트워크 주소(Network Address)
▹ 장치가 연결되어 있는 네트워크를 지정하는 주소(ID)
▹ 네트워크상에서 같은 네트워크 주소를 가진 장치들은 서로 직접 통신할 수 있다.
▹ 네트워크 주소가 같지 않다면 네트워크 간 연결할 장비가 없을 경우 서로 통신할 수 없다.
◦ 호스트 주소(Host Address)
▹ 네트워크상의 특정한 장치를 지정하는 주소(ID)
▹ 모든 장비들은 호스트 주소를 0이 아닌 주소를 가지고 있으며 호스트 주소가 0이라면 이것은 네트워크의 주소를 뜻한다.
▹ 호스트 주소가 2진수로 모두 1이 되면(1111 1111 → 255) Broadcast 주소가 된다.
‧ Subnet Mask
◦ Subnet Mask는 주소가 아니며 IP 주소의 어느 부분이 네트워크 주소이고 호스트 주소인지를 결정한다.
◦ Class A의 Subnet Mask : 255.0.0.0
◦ Class B의 Subnet Mask : 255.255.0.0
◦ Class C의 Subnet Mask : 255.255.255.0
- 주소 표기법의 종류
‧ 이 주소 표기법들은 주소 하나만을 말하는 것이 아니고 주소의 대역(범위)을 표기한다.
‧ 주소 표기법의 예(10.0.0.0 ~ 10.255.255.255)
‧ Netmask
◦ 주소를 2진법으로 나타낸다.(2진수 숫자 16자리씩)
◦ 주소 범위 내에서 변하는 부분과 변하지 않는 부분으로 나눈다.
◦ 변하는 부분은 0로 변하지 않는 부분은 1로 나타낸 후 &연산을 한다.
◦ &연산을 한 부분은 Netmask 주소의 앞부분이 되고 변하는 부분과 변하지 않는 부분으로 추려낸 주소는 Netmask 주소의 뒷부분이 된다.
‧ Wildcard
◦ 주소를 2진법으로 나타낸다.(2진수 숫자 16자리씩)
◦ 주소 범위 내에서 변하는 부분과 변하지 않는 부분으로 나눈다.
◦ 변하는 부분은 0로 변하지 않는 부분은 1로 나타낸 후 &연산을 한다.
◦ &연산을 한 부분은 Wildcard 주소의 앞부분이 되고 변하는 부분과 변하지 않는 부분으로 추려낸 주소의 보수 값은 Wildcard 주소의 뒷부분이 된다.
‧ Postfix
◦ 주소를 2진법으로 나타낸다.(2진수 숫자 16자리씩)
◦ 주소 범위 내에서 변하는 부분과 변하지 않는 부분으로 나눈다.
◦ 변하는 부분은 1로 변하지 않는 부분은 2로 나타낸 후 &연산을 한다.
◦ &연산을 한 부분은 Prefix 주소의 앞부분이 되고 변하지 않는 숫자의 개수를 슬러시(/)이후에 써준다.
2. Subnetting
- Subnetting
‧ 네트워크를 관리할 때 관리를 편이하게 하기위해 네트워크를 나누는 작업
‧ Subnet
◦ 네트워크를 관리할 때 관리를 편이하게 하기위해 네트워크를 나눴을 때 그 네트워크의 작은 부분을 말한다.
◦ Subnet의 주소는 Class A, B, C 주소의 호스트 주소 부분으로부터 만들어 지기 때문에 네트워크 관리자에 의해 자체적으로 할당된다.
◦ Subnet의 주소는 그 영역 네에서 유일해야한다.
‧ Subnetting을 통해 네트워크의 개수를 나누면 네트워크의 이름도 나눠진 개수와 같고 Broadcast 주소도 나눠진 개수와 같아진다.
‧ Subnetting의 목적
◦ Broadcast의 트래픽 감소
◦ IP주소의 낭비를 감소
◦ 라우터에 필터링 기능을 추가해 보안을 강화
‧ Subnetting 주소 계산법
◦ Network 기준
▹ 나누고자 하는 Network의 개수를 기준으로 Network Bit와 Host Bit를 구분하는 방식
▹ S : Network ID의 개수
▹ N : 나누고자하는 Network의 개수
◦ Host 기준
▹ 나누고자 하는 Network의 Host의 개수를 기준으로 Network Bit와 Host Bit를 구분하는 방식
▹ h : Host ID의 개수
▹ H : 나눌 Network의 Host의 개수
‧ 예제1 - Network
◦ 192.168.10.0/24 네트워크를 3개로 나누고자 할때 Subnetmask는?
▹ 공식
▸ 2^S >= 3
▸ S = 2
▹ Subneting 기준
▸ 00000000 . 00000000 . 00000000 . 00 | 000000
▸ 00000000 . 00000000 . 00000000 . SS | HHHHHH
Subnet | 대표주소 & Broadcast 주소 | Subnet Number | Postfix |
Subnet_1 | 00|000000 (0) ~ 00|111111 (63) | 1 ~ 62 | 192.168.10.0/26 |
Subnet_2 | 01|000000 (64) ~ 01|111111 (127) | 65 ~ 126 | 192.168.10.64/26 |
Subnet_3 | 10|000000 (128) ~ 10|111111 (191) | 129 ~ 190 | 192.168.10.128/26 |
Subnet_4 | 11|000000(192) ~ 11|111111(255) | 193 ~ 254 | 192.168.10.192/26 |
◦ Subnetmask : 255.255.255.192
‧ 예제2 - Host
◦ 210.125.0.0/16 하나의 Subnet에 있는 Host의 개수 4090개일 때 네트워크의 개수는?
▹ 공식
▸ (2^h)-2 >= 4090
▸ h = 12
▹ Subneting 기준
▸ 00000000 . 00000000 . 0000 | 0000 . 00000000
▸ 00000000 . 00000000 . ssss | hhhh . hhhhhhhh
Subnet | 대표주소 & Broadcast 주소 | Subnet Number | Postfix |
Subnet_1 | 0000|0000.00000000(0.0) ~ 0000|1111.11111111(15.255) | (1~15) × 255 | 210.125.0.0/20 |
Subnet_2 | 0001|0000.00000000(16.0) ~ 0001|1111.11111111(31.255) | (16 ~ 31) × 255 | 210.125.16.0/20 |
Subnet_3 | 0010|0000.00000000(32.0) ~ 0010|1111.11111111(47.255) | (32 ~ 47) × 255 | 210.125.32.0/20 |
Subnet_4 | 0011|0000.00000000(48.0) ~ 0011|1111.11111111(63.255) | (48 ~ 63) × 255 | 210.125.48.0/20 |
Subnet_5 | 0100|0000.00000000(64.0) ~ 0011|1111.11111111(79.255) | (64 ~ 79) × 255 | 210.125.64.0/20 |
Subnet_6 | 0101|0000.00000000(80.0) ~ 0011|1111.11111111(95.255) | (80 ~ 95) × 255 | 210.125.80.0/20 |
Subnet_7 | 0110|0000.00000000(96.0) ~ 0011|1111.11111111(111.255) | (96 ~ 111) × 255 | 210.125.96.0/20 |
Subnet_8 | 0111|0000.00000000(112.0) ~ 0011|1111.11111111(127.255) | (112 ~ 127) × 255 | 210.125.112.0/20 |
Subnet_9 | 1000|0000.00000000(128.0) ~ 0011|1111.11111111(143.255) | (128 ~ 143) × 255 | 210.125.128.0/20 |
Subnet_10 | 1001|0000.00000000(144.0) ~ 0011|1111.11111111(159.255) | (144 ~ 159) × 255 | 210.125.144.0/20 |
Subnet_11 | 1010|0000.00000000(160.0) ~ 0011|1111.11111111(175.255) | (160 ~ 175) × 255 | 210.125.160.0/20 |
Subnet_12 | 1011|0000.00000000(176.0) ~ 0011|1111.11111111(191.255) | (176 ~ 191) × 255 | 210.125.176.0/20 |
Subnet_13 | 1100|0000.00000000(192.0) ~ 0011|1111.11111111(207.255) | (192 ~ 207) × 255 | 210.125.192.0/20 |
Subnet_14 | 1101|0000.00000000(208.0) ~ 0011|1111.11111111(223.255) | (208 ~ 223) × 255 | 210.125.208.0/20 |
Subnet_15 | 1110|0000.00000000(224.0) ~ 0011|1111.11111111(239.255) | (224 ~ 239) × 255 | 210.125.224.0/20 |
Subnet_16 | 1111|0000.00000000(240.0) ~ 1111|1111.11111111(255.255) | (240 ~ 255) × 255 | 210.125.240.0/20 |
◦ Network 개수 : 16개
3. CIDR & VLSM
- CIDR(Classless Inter-Domain Routing)
‧ 기존에 Class 기반으로 만들어진 주소에서 Class를 제외하고 32bit 전체 bit에 대해 Network와 Host를 재설정해 만든 주소 구조이다.
‧ 기존의 Class 기반을 여러 개의 Subnet으로 분리하는 Subnetting과 달리 여러 개의 Class 주소를 모아 그룹화 시키는 방법인 SuperNetting을 사용한다.
‧ Network ID 부분을 빌려 Host ID로 사용한다.
‧ CIDR의 장점
◦ 기존 Class 기반 주소에 비해 주소 손실을 줄일 수 있다.
◦ Routing의 메모리 요구량을 줄일 수 있다.
◦ Router에 구조화된(집단화된) 주소 할당으로 라우팅 테이블(Routing Table)을 줄여 패킷 딜레이(Packet Delay)를 줄여준다.
◦ 용어정리
▹ Routing : 어떤 네트워크 안에서 통신 데이터를 보낼 경로를 선택하는 과정
▹ Routing Table : 네트워크 간 프로토콜에 의해 목적하는 망에 도달하기 위한 다음의 게이트웨이에 대한 정보를 모아둔 표
▹ Packet Delay : 패킷을 전송하는 동안 발생하는 지연
- VLSM(Variable-Length Subnet Mask)
‧ Subnet Mask를 주소 Class에서 사용하는 고정된 길이가 아닌 bit 단위로 다양한 길이의 Subnet Mask를 만드는 기술이다
‧ Subnet Mask를 다르게 지정해두면 각 네트워크 구간마다 필요한 Host들에게 Subnet Mask를 할당 할 수 있으므로 Host의 낭비를 막을 수 있고 IP주소를 낭비하지 않게 된다.
‧ 이미 Subnetting된 주소를 다시 Subnetting할 수 있다.
- CIDR과 VLSM
‧ CIDR과 VLSM을 사용하면 주소 공간의 낭비를 방지할 뿐만 아니라 Route Summarization(Aggregation)을 활성화 한다
◦ Route Summarization(Aggregation)
▹ Subnetting 과 VLSM 환경을 효율적으로 관리하기 위해 주소 통합을 하는 것
▹ Routing Table을 감소시켜 준다.
‧ Route Summarization과 Supernetting은 Classless Routing Protocol을 실행할 때만 가능하다.
'Network > Theory' 카테고리의 다른 글
Chapter 6. Switch (0) | 2015.08.16 |
---|---|
Chapter 5. Protocol (0) | 2015.08.16 |
Chapter 3. Ethernet & Network Equipment (0) | 2015.08.16 |
Chapter 2. OSI 7 Layer & TCP-IP (0) | 2015.08.16 |
Chapter 1. Network (0) | 2015.08.13 |