IP ์ฃผ์ CIDR ๋ฒ์ ๊ณ์ฐ๊ธฐ๋?
์ด ๋๊ตฌ๋ ์ ์ผ๋ก ๊ตฌ๋ถ๋ ์ญ์ง์ ํ์์ IPv4 ์ฃผ์์ CIDR ๋คํธ์ํฌ ํ๋ฆฌํฝ์ค ๊ธธ์ด๋ฅผ ์ ๋ ฅ๋ฐ์ ์๋ธ๋ท ์ ์ฒด๋ฅผ ํ ๋ฒ์ ๊ณ์ฐํฉ๋๋ค. ๋คํธ์ํฌ ์ฃผ์, ๋ธ๋ก๋์บ์คํธ ์ฃผ์, ํ ๋น ๊ฐ๋ฅํ ํธ์คํธ ์ฃผ์ ๋ฒ์, ์๋ธ๋ท ๋ง์คํฌ, ์์ผ๋์นด๋ ๋ง์คํฌ, ๊ทธ๋ฆฌ๊ณ ์ฃผ์ ๊ฐ์๊น์ง ๋ชจ๋ ์๋ ค์ค๋๋ค. ํด๋์ค๋ฆฌ์ค ๋๋ฉ์ธ ๊ฐ ๋ผ์ฐํ (CIDR, RFC 4632) ํ์ค์ ๋ฐ๋ฅด๋ฉฐ, IP ์ฃผ์ ์ฒด๊ณ๋ ์ง์ญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง์ง ์๋ ์ ์ธ๊ณ ๊ณตํต ํ์ค์ด๋ฏ๋ก ์ด๋์๋ ๋์ผํ๊ฒ ๋์ํฉ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
IPv4 ์ฃผ์์ ๋ค ์ฅํ (๊ฐ 0~255)์ ์ ๋ ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด 128, 1, 10, 164๋ฅผ ๋ฃ๊ณ , ์ฌ๋์ ๋ค์ ์ค๋ ํ๋ฆฌํฝ์ค ๊ธธ์ด(0~32), ์๋ฅผ ๋ค์ด 24๋ฅผ ์ ๋ ฅํ๋ฉด 128.1.10.164/24๊ฐ ๋ฉ๋๋ค. ๊ณ์ฐ๊ธฐ๋ ํต์ฌ ๊ฒฐ๊ณผ์ธ ํ ๋น ๊ฐ๋ฅํ ํธ์คํธ ๋ฒ์๋ฅผ ๊ฐ์กฐํด ๋ณด์ฌ์ฃผ๊ณ , ๊ทธ ์๋์ ๋์ถ๋ ๋ชจ๋ ๊ฐ์ ํจ๊ป ์ ๋ฆฌํด ์ค๋๋ค.
๊ณ์ฐ ๊ณต์ ํ์ด
๋จผ์ ์ฃผ์๋ฅผ ํ๋์ 32๋นํธ ๋ถํธ ์๋ ์ ์๋ก ๋ฌถ์ต๋๋ค:
$$\text{IP} = \left(\text{Oct}_1 \ll 24\right) \mid \left(\text{Oct}_2 \ll 16\right) \mid \left(\text{Oct}_3 \ll 8\right) \mid \text{Oct}_4$$์๋ธ๋ท ๋ง์คํฌ๋ ์์ p๋นํธ๋ฅผ 1๋ก ์ค์ ํ ๊ฐ์ด๋ฉฐ, ์ฌ๊ธฐ์ p๋ ํ๋ฆฌํฝ์ค์ ๋๋ค.
$$M = \left(2^{\text{Prefix}}-1\right) \ll \left(32 - \text{Prefix}\right)$$๋คํธ์ํฌ ์ฃผ์๋ ip AND ๋ง์คํฌ์ด๊ณ , ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ ๋คํธ์ํฌ OR ์์ผ๋์นด๋(๋ง์คํฌ์ ๋นํธ ๋ฐ์ ๊ฐ)์ ๋๋ค.
$$\text{Network} = \text{IP} \mathbin{\&} M, \qquad \text{Broadcast} = \text{Network} \mid \lnot M$$์ฒซ ๋ฒ์งธ ์ฌ์ฉ ๊ฐ๋ฅ ํธ์คํธ๋ ๋คํธ์ํฌ + 1, ๋ง์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅ ํธ์คํธ๋ ๋ธ๋ก๋์บ์คํธ - 1์ ๋๋ค. ์ ์ฒด ์ฃผ์ ์๋ \(2^{32-p}\)์ด๋ฉฐ, ์ฌ์ฉ ๊ฐ๋ฅํ ํธ์คํธ ์๋ ๊ฑฐ๊ธฐ์ 2๋ฅผ ๋บ ๊ฐ(์ต์ 0)์ ๋๋ค.
$$\text{Total} = 2^{\,32 - \text{Prefix}}, \quad \text{Usable} = \text{Total} - 2$$
์์ ๋ก ์ดํด๋ณด๊ธฐ
128.1.10.164/24์ ๊ฒฝ์ฐ, ๋ง์คํฌ๋ 255.255.255.0์ด๊ณ ์์ผ๋์นด๋๋ 0.0.0.255์ ๋๋ค. ๋คํธ์ํฌ ์ฃผ์๋ 128.1.10.0, ๋ธ๋ก๋์บ์คํธ๋ 128.1.10.255์ ๋๋ค. ํ ๋น ๊ฐ๋ฅํ ๋ฒ์๋ 128.1.10.1๋ถํฐ 128.1.10.254๊น์ง์ ๋๋ค. ์ ์ฒด ์ฃผ์๋ \(2^{32-24} = 256\)๊ฐ์ด๋ฉฐ, ์ฌ์ฉ ๊ฐ๋ฅํ ํธ์คํธ๋ \(256 - 2 = 254\)๊ฐ์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ฌ์ฉ ๊ฐ๋ฅํ ํธ์คํธ๊ฐ ์ ์ฒด ์ฃผ์๋ณด๋ค 2๊ฐ ์ ์ ์ด์ ๋? ์ ํต์ ์ธ IPv4 ์๋ธ๋ทํ ์์๋ ๋คํธ์ํฌ ์ฃผ์์ ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ฅผ ํธ์คํธ์ ํ ๋นํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ฃผ์๊ฐ 256๊ฐ์ธ /24์์๋ ์ค์ ๋ก ์ธ ์ ์๋ ํธ์คํธ๋ 254๊ฐ์ ๋๋ค.
/31๊ณผ /32๋ ์ด๋ป๊ฒ ๋๋์? /31์ ์ฃผ์ 2๊ฐ, /32๋ ์ฃผ์ 1๊ฐ๋ฅผ ๊ฐ์ง๋๋ค. ์ ํต์ ์ธ ์ฌ์ฉ ๊ฐ๋ฅ ํธ์คํธ ๊ณต์์ผ๋ก๋ ๋ ๋ค 0์ผ๋ก ๊ณ์ฐ๋์ง๋ง, RFC 3021์ ์ ๋์ (point-to-point) ๋งํฌ์์ /31์ ๋ ์ฃผ์๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
์์ผ๋์นด๋ ๋ง์คํฌ๋? ์๋ธ๋ท ๋ง์คํฌ์ ๋นํธ๋ฅผ ๋ฐ์ ํ ๊ฐ์ ๋๋ค(๋ง์คํฌ๊ฐ 1์ธ ์๋ฆฌ๋ 0, 0์ธ ์๋ฆฌ๋ 1). ๋ผ์ฐํฐ์ ์ ๊ทผ ์ ์ด ๋ชฉ๋ก(ACL)์์ ํน์ ์ฃผ์ ๋ฒ์๋ฅผ ๋งค์นญํ ๋ ํํ ์ฌ์ฉ๋ฉ๋๋ค.