{{위키데이터 속성 추적}}
[[파일:Subnetting operation.svg|섬네일|호스트 식별자를 분리함으로써 부분망을 만드는 과정.]]
'''부분망'''({{lang|en|Subnetwork}}) 또는 '''부분망 마스크'''({{lang|en|IP Subnet Mask}}, '''IP 서브넷 마스크'''), '''IP 서브넷'''은 [[인터넷 프로토콜 스위트]]의 가시적인 부분이다.<ref name="rfc950">{{Cite IETF|rfc=950|publisher=[[IETF]]|author1=Jeffrey Mogul|author2=Jon Postel|authorlink2=Jon Postel|title=Internet Standard Subnetting Procedure|date=August 1985}} Updated by RFC 6918.</ref>{{rp|1,16}}

동일한 서브넷에 속하는 컴퓨터는 해당 IP 주소의 가장 중요한 비트로 구성된 동일한 그룹으로 주소가 지정된다. 이로 인해 IP 주소가 두 개의 필드, 즉 네트워크 번호 또는 라우팅 접두사와 나머지 필드 또는 호스트 식별자로 논리적으로 구분된다. 나머지 필드는 특정 호스트 또는 네트워크 인터페이스에 대한 식별자이다.

라우팅 접두사는 네트워크의 첫 번째 주소로 표현될 수 있으며 CIDR(Classless Inter-Domain Routing) 표기법으로 작성되고 그 뒤에 슬래시 문자(/)가 오고 접두사의 비트 길이로 끝난다. 예를 들어, 198.51.100.0/24는 지정된 주소에서 시작하는 인터넷 프로토콜 버전 4 네트워크의 접두사이며, 24비트는 네트워크 접두사에 할당되고 나머지 8비트는 호스트 주소 지정을 위해 예약되어 있다. 198.51.100.0 ~ 198.51.100.255 범위의 주소는 이 네트워크에 속하며 서브넷 브로드캐스트 주소는 198.51.100.255이다. IPv6 주소 사양 2001:db8::/32는 32비트 라우팅 접두사가 있는 296개의 주소를 포함하는 대규모 주소 블록이다.

IPv4의 경우 네트워크는 서브넷 마스크 또는 넷마스크로 특징지어질 수도 있다. 이는 네트워크의 모든 IP 주소에 비트 AND 연산을 적용할 때 라우팅 접두사를 생성하는 비트마스크이다. 서브넷 마스크도 IP 주소처럼 점-십진수 표기법으로 표현된다. 예를 들어 접두사 198.51.100.0/24의 서브넷 마스크는 255.255.255.0이다.

소스 주소와 대상 주소의 라우팅 접두사가 다른 경우 라우터를 통해 서브넷 간에 트래픽이 교환된다. 라우터는 서브넷 간의 논리적 또는 물리적 경계 역할을 한다.

기존 네트워크를 서브넷화하면 얻을 수 있는 이점은 각 배포 시나리오에 따라 다르다. CIDR을 사용하는 인터넷의 주소 할당 아키텍처와 대규모 조직에서는 주소 공간의 효율적인 할당이 필요하다. 서브넷은 또한 라우팅 효율성을 향상시키거나 대규모 조직의 여러 엔터티에 의해 서브넷이 관리상 제어되는 경우 네트워크 관리에 이점을 줄 수 있다. 서브넷은 계층적 아키텍처에서 논리적으로 배열되어 조직의 네트워크 주소 공간을 트리형 라우팅 구조나 메시와 같은 다른 구조로 분할할 수 있다.

== IPv4 부분망 구하기 ==
부분망을 구하는 과정은 한 주소의 네트워크 및 부분망 부분과 호스트 식별자를 구분하는 일을 포함한다. 이는 IP 주소 및 (부분)망 마스크 간 [[비트 연산|AND 비트 연산]]을 통해 수행한다. 이를 통해 네트워크 주소나 접두사(prefix)가 만들어지며 나머지는 호스트 식별자가 된다.
=== 네트워크 접두사 결정 ===
IPv4 네트워크 마스크는 32비트로 이루어져 있으며 일련의 숫자 1의 블록 뒤에  0으로 이루어진 블록이 뒤따른다. 뒷따르는 0들의 블록은 호스트 식별자의 일부임을 지시한다.

다음은 192.168.5.130이라는 주소와 이와 연계된 /24 네트워크 마스크 (255.255.255.0)으로부터 네트워크 접두사와 호스트 식별자를 구분하는 예이다. 이 연산은 이진 주소 형식을 사용하여 아래의 표로 나타나 있다.
{| class="wikitable" style="margin:left;"
!
! 이진 형태
! 닷 데시멀 노테이션
|-
| IP 주소
| <code>11000000.10101000.00000101.10000010</code>
| <code>192.168.5.130</code>
|-
| 서브넷 마스크
| <code>11111111.11111111.11111111.00000000</code>
| <code>255.255.255.0</code>
|-
| 네트워크 접두사
| <code>11000000.10101000.00000101.00000000</code>
| <code>  192.168.5.0</code>
|-
| 호스트 부분
| <code>00000000.00000000.00000000.10000010</code>
| <code>    0.0.0.130</code>
|}

=== 부분망 구하기 ===
부분망을 구하는 일은 호스트 부분으로부터 일부 상위 비트를 지정하고 서브넷 마스크 형성을 위해 네트워크 마스크 안에 이들을 묶는 과정이다. 이를 통해 하나의 네트워크를 더 조그마한 서브넷들로 나눈다. 다음의 표는 호스트 부분에서 2비트를 서브넷 마스크로 이동하여 이전 크기의 1/4만큼 되는 네 개의 더 작은 서브넷들을 형성한 예이다.
{| class="wikitable" style="margin:left;"
!
! 이진 형태
! 닷 데시멀 노테이션
|-
| IP 주소
| <code>11000000.10101000.00000101.10000010</code>
| <code>  192.168.5.130</code>
|-
| 서브넷 마스크
| <code>11111111.11111111.11111111.'''11'''000000</code>
| <code>255.255.255.192</code>
|-
| 네트워크 접두사
| <code>11000000.10101000.00000101.10000000</code>
| <code>  192.168.5.128</code>
|-
| 호스트 부분
| <code>00000000.00000000.00000000.00000010</code>
| <code>        0.0.0.2</code>
|}

=== 부분망과 호스트 수 ===
사용 가능한 부분망의 수, 네트워크에서 구현 가능한 호스트의 수는 쉽게 계산할 수 있다. 위의 예에서 하부망을 만들기 위해 두 개의 비트를 빌려옴으로써 4(2<sup>2</sup>)개의 구현 가능한 하부망을 만들 수 있다.
{| class="wikitable"
! 네트워크
! 네트워크 (이진)
! 브로드캐스트 주소
|-
| <code>192.168.5.0/26</code>
| <code>11000000.10101000.00000101.'''00'''000000</code>
| <code>192.168.5.63</code>
|-
| <code>192.168.5.64/26</code>
| <code>11000000.10101000.00000101.'''01'''000000</code>
| <code>192.168.5.127</code>
|-
| <code>192.168.5.128/26</code>
| <code>11000000.10101000.00000101.'''10'''000000</code>
| <code>192.168.5.191</code>
|-
| <code>192.168.5.192/26</code>
| <code>11000000.10101000.00000101.'''11'''000000</code>
| <code>192.168.5.255</code>
|}

A/24 네트워크는 서브넷 마스크를 1비트씩 연속하여 증가시킴으로써 다음의 부분망으로 나눌 수 있다. 이는 /24 네트워크로 주소 할당이 가능한 호스트의 전체 수에 영향을 미친다. (마지막 줄)
{| class="wikitable"
! 접두사 크기
! 네트워크 마스크
! 이용 가능한 부분망
! 부분망 당<br />이용 가능한 호스트 수
! 사용 가능한<br />모든 호스트 수
|-
| /24
| <code>255.255.255.0</code>
| 1
| 254
| 254
|-
| /25
| <code>255.255.255.128</code>
| 2
| 126
| 252
|-
| /26
| <code>255.255.255.192</code>
| 4
| 62
| 248
|-
| /27
| <code>255.255.255.224</code>
| 8
| 30
| 240
|-
| /28
| <code>255.255.255.240</code>
| 16
| 14
| 224
|-
| /29
| <code>255.255.255.248</code>
| 32
| 6
| 192
|-
| /30
| <code>255.255.255.252</code>
| 64
| 2
| 128
|-
| /31
| <code>255.255.255.254</code>
| 128
| 2 <sup>*</sup>
| 256
|}
''*점대점(P2P) 연결에서만 적용 가능

== IPv6 부분망 구하기 ==
[[IPv6]] 주소 공간의 설계는 [[IPv4]]와는 상당히 다르다. IPv4에서의 서브네팅의 주 이유는 특히 기업과 같은 곳에서 상대적으로 작은 주소 공간을 효율적으로 이용할 수 있게 하기 위함이다. IPv6는 커다란 주소 공간을 이용할 수 있으므로 최종 사용자들에게까지도 이러한 제약이 존재하지 않는다.

RFC 4291 호환 서브넷은 항상 호스트 부분에 64 비트의 IPv6 주소를 사용한다.<ref>RFC 4291, {{웹 인용|url=http://tools.ietf.org/html/rfc4291#section-2.5.1|title=IP Version 6 Addressing Architecture - section 2.5.1. Interface Identifiers|publisher=[[IETF]]|accessdate=2011-02-13|quote=이진 값 000으로 시작하는 주소를 제외한 모든 유니 캐스트 주소의 경우 인터페이스 ID는 64 비트 길이이어야 하며 수정 된 EUI-64 형식으로 구성되어야 한다.}}</ref> 따라서 / 64 라우팅 프리픽스 (128-64 = 64 개의 최상위 비트)가 있다. 기술적으로 작은 서브넷을 사용하는 것이 가능하지만,<ref>RFC 4862, {{웹 인용|url=http://tools.ietf.org/html/rfc4862#section-5.5.3|title=IPv6 Stateless Address Autoconfiguration - section 5.5.3.(d) Router Advertisement Processing|publisher=[[IETF]]|accessdate=2011-02-13|quote=라우터 애드버타이즈먼트에 포함된 접두사의 길이가 해당 링크 유형의 인터페이스 식별자 길이와 일치하는지 확인하는 것은 시스템 관리자의 책임이다. [...] 구현은 특정 상수를 가정해서는 안된다. 오히려 모든 길이의 인터페이스 식별자가 허용되어야 한다.}}</ref> 무상태(stateless) 주소 자동 구성에 64 비트가 필요하기 때문에 이더넷 기술을 기반으로하는 근거리 통신망에서는 비효율적이다.<ref>RFC 2464, {{웹 인용|url=http://tools.ietf.org/html/rfc2464#section-4|title=Transmission of IPv6 Packets over Ethernet Networks - section 4 Stateless Autoconfiguration|publisher=[[IETF]]|quote=이더넷 인터페이스의 인터페이스 식별자 [AARCH]는 인터페이스의 내장 된 48 비트 IEEE 802 주소에서 파생 된 EUI-64 식별자 [EUI64]를 기반으로 한다. [...] 이더넷 인터페이스의 상태 비 저장 자동 구성 [ACONF]에 사용되는 IPv6 주소 접두어의 길이는 64 비트이여야 한다.}}</ref> [[국제 인터넷 표준화 기구]](IETF)는 두 개의 호스트로만 구성된 점대 점 링크에 대해 / 127 개의 서브넷을 사용할 것을 권장한다.<ref>RFC 6164, {{웹 인용|url=http://tools.ietf.org/html/rfc6164|title=Using 127-Bit IPv6 Prefixes on Inter-Router Links|publisher=[[IETF]]|quote=라우터 간 지점 간 링크에서 보안 및 기타 이유로 127 비트 IPv6 접두사를 사용하는 것이 유용하다.}}</ref><ref>RFC 6547, {{웹 인용|url=http://tools.ietf.org/html/rfc6547|title=RFC 3627 to Historic Status|publisher=[[IETF]]|quote=이 문서는 "라우터 간 링크에서의 127 접두사 길이 사용"(RFC 3627)을 "라우터 간 링크에 127 비트 IPv6 접두어 사용"(RFC 6164)에 포함된 업데이트된 지침을 반영하여 기록 상태로 이동한다.}}</ref>

IPv6은 브로드 캐스트 트래픽이나 네트워크 번호에 대한 특수 주소 형식을 구현하지 않으므로<ref>RFC 4291, {{웹 인용|url=http://tools.ietf.org/html/rfc4291#section-2|title=IP Version 6 Addressing Architecture - section 2 IPv6 Addressing|publisher=[[IETF]]|quote=여기에 IPv6에 브로드 캐스트 주소가 없으며 그 기능은 멀티 캐스트 주소로 대체된다. [...] IPv6에서 모든 0과 모든 1은 특별히 제외되지 않는 한 모든 필드에 대해 유효한 값이다.}}</ref> 서브넷의 모든 주소는 유효한 호스트 주소이다. 모두 0 인 주소는 서브넷 라우터 애니캐스트(anycast) 주소로 예약된다.<ref>RFC 4291, {{웹 인용|url=http://tools.ietf.org/html/rfc4291#section-2.6.1|title=IP Version 6 Addressing Architecture - section 2.6.1 Required Anycast Address|publisher=[[IETF]]|quote=이 애니 캐스트 주소는 인터페이스 식별자가 0으로 설정된 링크의 인터페이스에 대한 유니 캐스트 주소와 구문론적으로 동일하다.}}</ref>

IPv6 가입자 사이트에 대한 권장 할당은 48 비트 (/ 48) 프리픽스가 있는 주소 공간이다.<ref>{{웹 인용
    | title      = IPv6 Addressing Plans
    | publisher  = ARIN IPv6 Wiki
    | url        = http://www.getipv6.info/index.php?title=IPv6_Addressing_Plans&oldid=2998
    | quote      = 모든 가입자는 65k 서브넷 이상을 필요로 하지 않는 한 1 / 48을 얻는다. [...] 많은 소비자 고객이있는 경우 / 56을 개인 주택에 할당할 수 있다.
    | accessdate = 2010-04-25
}}</ref> 그러나 이 권장 사항은 예를 들어 56 비트 접두사를 사용하는 등 더 작은 블록을 장려하기 위해 개정되었다.<ref name="RFC 6177">{{웹 인용
    | title      = IPv6 Address Assignment to End Sites
    | publisher  = [[IETF]]
    | url        = http://tools.ietf.org/html/rfc6177
    | accessdate = 11 November 2013
    | quote      = APNIC, ARIN 및 RIPE는 보다 작은 (즉, / 56) 블록을 최종 사이트에 할당하도록 최종 사이트 할당 정책을 개정했다.
}}</ref> 또 다른 일반적인 할당은 주거용 고객 네트워크에 대한 / 64 프리픽스이다.

IPv6의 서브넷은 가변 길이 서브넷 마스킹 (VLSM) 및 클래스 없는 도메인 간 라우팅 방법론을 기반한다. 서브넷과 인터넷 사이의 전역 할당 공간과 고객 네트워크 내에서 트래픽을 라우팅하는 데 사용된다.

== 같이 보기 ==
* [[IP 주소]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{dmoz|Computers/Internet/Protocols/IP/Addressing/|Subnetworking}}

{{전거 통제}}

[[분류:인터넷 프로토콜]]
[[분류:IP 주소]]
[[분류:라우팅]]