좋은 질문입니다. 결론부터 말하면 IP 주소를 국가별로 나누는 것은 서브넷으로 하는 것이 아닙니다.
서브넷은 한 조직 내부에서 네트워크를 나누는 기술이고, 국가별 할당은 인터넷 주소 관리 기관(RIR)에서 관리합니다.
예를 들어 보겠습니다.
1단계. IANA가 전 세계 IP를 관리
가장 위에는 IANA(Internet Assigned Numbers Authority)가 있습니다.
IANA
│
├── APNIC (아시아·태평양)
├── ARIN (북미)
├── RIPE NCC (유럽)
├── LACNIC (남미)
└── AFRINIC (아프리카)
2단계. 국가별 기관에 할당
예를 들어
IANA
│
APNIC
│
├── 한국(KRNIC)
├── 일본(JPNIC)
├── 중국
└── 호주
처럼 APNIC가 한국의 인터넷 기관(KRNIC)에 일정한 IP 대역을 배정합니다.
3단계. ISP에게 다시 배정
한국에서는
KRNIC
│
├── KT
├── SK브로드밴드
├── LG U+
└── AWS 서울 리전
이렇게 다시 나누어 줍니다.
예를 들어
KT가
211.100.0.0/16
이라는 대역을 받았다면
KT 내부에서는 다시
211.100.0.0/20
211.100.16.0/20
211.100.32.0/20
...
처럼 서브넷으로 나누어 고객들에게 배정합니다.
국가를 어떻게 구분하는가?
예를 들어
211.100.15.10
이라는 IP가 있으면
라우터가
211.100.0.0/16 → KT
라는 경로를 알고 있고,
WHOIS 데이터에는
Country : KR
이라고 등록되어 있습니다.
따라서 이 IP는 한국의 KT가 사용하는 주소라는 것을 알 수 있습니다.
"몇 번부터 몇 번까지는 한국"처럼 정해져 있나?
일부는 맞고 일부는 아닙니다.
예를 들어
39.x.x.x
58.x.x.x
59.x.x.x
61.x.x.x
110.x.x.x
112.x.x.x
121.x.x.x
175.x.x.x
210.x.x.x
211.x.x.x
이런 대역은 한국에서 많이 사용하지만,
39번은 전부 한국,
58번은 전부 한국처럼 딱 잘라 말할 수는 없습니다.
예를 들어
39.7.x.x → 한국
39.64.x.x → 다른 나라
39.96.x.x → 중국
처럼 같은 첫 번째 숫자라도 여러 국가가 사용할 수 있습니다.
즉, 인터넷에서는 첫 번째 숫자만 보고 국가를 판단하지 않습니다. 대신 다음과 같은 CIDR(prefix) 단위로 관리합니다.
1.0.0.0/8
├── 1.0.1.0/24 → 호주
├── 1.0.2.0/23 → 중국
├── 1.0.8.0/21 → 일본
└── 1.0.32.0/19 → 한국
이처럼 큰 대역을 여러 나라에 잘게 나누어 할당하기 때문에, 국가 구분은 "몇 번부터 몇 번"이 아니라 A.B.C.D/길이(CIDR) 형태의 IP 대역으로 이루어집니다.
이 때문에 실제로는 라우터도 국가가 아니라 **211.100.0.0/16은 KT, 39.7.0.0/16은 SK브로드밴드**처럼 IP 프리픽스(CIDR)를 기준으로 경로를 선택합니다.