IP ์๋ธ๋ท ๊ณ์ฐ๊ธฐ๋?
์ด ๋๊ตฌ๋ IPv4 ์ฃผ์(๊ฐ 0~255 ์ฌ์ด์ ์ฅํ 4๊ฐ)์ CIDR ํ๋ฆฌํฝ์ค ๊ธธ์ด(/0 ~ /32)๋ฅผ ์ ๋ ฅ๋ฐ์ ์๋ธ๋ท์ ์ค๊ณํ๊ฑฐ๋ ๋ฌธ์ํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ณ์ฐํฉ๋๋ค. ๋คํธ์ํฌ ์ฃผ์, ๋ธ๋ก๋์บ์คํธ ์ฃผ์, ์๋ธ๋ท ๋ง์คํฌ, ์์ผ๋์นด๋ ๋ง์คํฌ, ์ฒซ ๋ฒ์งธ์ ๋ง์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅ ํธ์คํธ, ์ ์ฒด ์ฃผ์ ์์ ์ค์ ๋ก ์ธ ์ ์๋ ํธ์คํธ ์๊น์ง ํ ๋ฒ์ ์๋ ค์ค๋๋ค. ํ์ค 32๋นํธ IPv4 ์ด์ง ์ฐ์ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฏ๋ก ์ ์ธ๊ณ ์ด๋ค ๋คํธ์ํฌ ํ๊ฒฝ์์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
IP ์ฃผ์์ ์ฅํ
4๊ฐ๋ฅผ ์
๋ ฅํ๊ณ ์๋ธ๋ท ํ๋ฆฌํฝ์ค๋ฅผ ์ ํํ์ธ์. ์๋ฅผ ๋ค์ด 192.168.1.10/24๋ ์ฅํ
์ด ๊ฐ๊ฐ 192, 168, 1, 10์ด๊ณ ํ๋ฆฌํฝ์ค๊ฐ 24๋ผ๋ ๋ป์
๋๋ค. ๊ณ์ฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋์์ ๋คํธ์ํฌ ์์ธ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๊ณ์ฐ ์๋ฆฌ
์๋ธ๋ท ๋ง์คํฌ๋ ์ผ์ชฝ์์๋ถํฐ ํ๋ฆฌํฝ์ค ๊ธธ์ด๋งํผ์ ๋นํธ๋ฅผ 1๋ก, ๋๋จธ์ง๋ฅผ 0์ผ๋ก ์ฑ์์ ๋ง๋ญ๋๋ค. ๋คํธ์ํฌ ์ฃผ์๋ IP์ ๋ง์คํฌ๋ฅผ ๋นํธ AND ์ฐ์ฐํ ๊ฐ์ ๋๋ค. ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ ๋คํธ์ํฌ ์ฃผ์์ ๋ฐ์ ๋ ๋ง์คํฌ(์์ผ๋์นด๋)๋ฅผ ๋นํธ OR ์ฐ์ฐํด ๊ตฌํฉ๋๋ค. ์ ์ฒด ์ฃผ์ ์๋ \(2^{32 - \text{Prefix}}\)์ด๋ฉฐ, ์ฌ์ฉ ๊ฐ๋ฅํ ํธ์คํธ ์๋ ์ฌ๊ธฐ์ ๋คํธ์ํฌ ์ฃผ์์ ๋ธ๋ก๋์บ์คํธ ์ฃผ์ 2๊ฐ๋ฅผ ๋บ ๊ฐ์ ๋๋ค:
$$\text{H} = 2^{\,32 - \text{Prefix}} - 2$$๋นํธ ์ฐ์ฐ์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
$$\begin{aligned} \text{IP} &= (\text{O1} \ll 24)\,|\,(\text{O2} \ll 16)\,|\,(\text{O3} \ll 8)\,|\,\text{O4} \\ \text{Mask} &= \texttt{0xFFFFFFFF} \ll (32 - \text{Prefix}) \\ \text{Network} &= \text{IP} \,\&\, \text{Mask} \\ \text{Broadcast} &= \text{Network}\,|\,(\sim\text{Mask}) \end{aligned}$$
์์ ๋ก ์ดํด๋ณด๊ธฐ
192.168.1.10/24์ ๊ฒฝ์ฐ ๋ง์คํฌ๋ 255.255.255.0์ ๋๋ค. ๋คํธ์ํฌ ์ฃผ์๋ 192.168.1.0, ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ 192.168.1.255๊ฐ ๋ฉ๋๋ค. ์ ์ฒด ์ฃผ์ ์๋ \(2^8 = 256\)๊ฐ์ด๊ณ , ์ฌ์ฉ ๊ฐ๋ฅํ ํธ์คํธ๋ \(256 - 2 = 254\)๊ฐ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ์ฌ์ฉ ๊ฐ๋ฅ ํธ์คํธ๋ 192.168.1.1, ๋ง์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅ ํธ์คํธ๋ 192.168.1.254์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ ํธ์คํธ ์์์ 2๋ฅผ ๋นผ๋์? ์ฒซ ๋ฒ์งธ ์ฃผ์๋ ๋คํธ์ํฌ๋ฅผ ์๋ณํ๋ ๋คํธ์ํฌ ์ฃผ์๋ก, ๋ง์ง๋ง ์ฃผ์๋ ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ก ์์ฝ๋์ด ์์ด ๋ ์ฃผ์ ๋ชจ๋ ๊ธฐ๊ธฐ์ ํ ๋นํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
/31๊ณผ /32๋ ์ด๋ป๊ฒ ๋๋์? /32๋ ๋จ์ผ ํธ์คํธ ํ๋๋ฅผ ๋ํ๋ด๊ณ , /31์ ๋ ์ฃผ์๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ ์ ๋์ (point-to-point) ๋งํฌ์ ์ฐ์ ๋๋ค(RFC 3021 ์ฐธ๊ณ ).
IPv6๋ ์ง์ํ๋์? ์๋์. ์ด ๊ณ์ฐ๊ธฐ๋ IPv4 ์ ์ฉ์ ๋๋ค.