FreeBSD ์ฝ๋ ๋ฒ ์ด์ค๋ Linux์์ ์ฌ์ฉ์ ๊ณต๊ฐ์ ํ๋ก์ธ์ค์ ์ปค๋์ ์ํธ ์์ฉ์ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ Netlink ํต์ ํ๋กํ ์ฝ(RFC 3549)์ ๊ตฌํ์ ์ฑํํฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ ์ปค๋์ ๋คํธ์ํฌ ํ์ ์์คํ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ NETLINK_ROUTE ์์ ์ ํ๊ตฐ์ ์ง์ํ๋ ๊ฒ์ผ๋ก ์ ํ๋ฉ๋๋ค.
ํ์ฌ ํ์์์ Netlink ์ง์์ ํตํด FreeBSD๋ iproute2 ํจํค์ง์ Linux ip ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ , IP โโ์ฃผ์๋ฅผ ์ค์ ํ๊ณ , ๋ผ์ฐํ ์ ๊ตฌ์ฑํ๊ณ , ํจํท์ ์ํ๋ ๋์์ผ๋ก ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ nexthop ๊ฐ์ฒด๋ฅผ ์กฐ์ํ ์ ์์ต๋๋ค. ํค๋ ํ์ผ์ ์ฝ๊ฐ ๋ณ๊ฒฝํ ํ์๋ Bird ๋ผ์ฐํ ํจํค์ง์์ Netlink๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
FreeBSD์ฉ Netlink ๊ตฌํ์ ๋ก๋ ๊ฐ๋ฅํ ์ปค๋ ๋ชจ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ๋ชจ๋์ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ปค๋ ํ์ ์์คํ ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉฐ ํ๋กํ ์ฝ์ ํตํด ๋์ฐฉํ๋ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋น๋๊ธฐ ๋ชจ๋์์ ์์ ์ ์ํํ๊ธฐ ์ํ ๋ณ๋์ ์์ ๋๊ธฐ์ด(tasqueue)์ ์์ฑํฉ๋๋ค. Netlink๋ฅผ ํฌํ ํ๋ ์ด์ ๋ ์ปค๋ ํ์ ์์คํ ๊ณผ ์ํธ ์์ฉํ๊ธฐ ์ํ ํ์ค ๋ฉ์ปค๋์ฆ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ก ์ธํด ๋ค์ํ ํ์ ์์คํ ๊ณผ ๋๋ผ์ด๋ฒ๊ฐ ์์ฒด ํ๋กํ ์ฝ์ ๊ฐ๋ฐํ๊ฒ ๋ฉ๋๋ค.
Netlink๋ ์๋ก ๋ค๋ฅธ ์์ค์ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ์์ฒญ์ผ๋ก ์๋ ๊ฒฐํฉํ๋ ์ค๊ฐ์ ์ญํ ์ ํ ์ ์๋ ํตํฉ ํต์ ๊ณ์ธต๊ณผ ํ์ฅ ๊ฐ๋ฅํ ๋ฉ์์ง ํ์์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ฌ ์์ฒด ioctl ํธ์ถ์ ์ฌ์ฉํ๋ devd, Jail ๋ฐ pfilctl๊ณผ ๊ฐ์ FreeBSD ํ์ ์์คํ ์ Netlink๋ก ์ ์กํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ด๋ฌํ ํ์ ์์คํ ์ ์ฌ์ฉํ๊ธฐ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ํฌ๊ฒ ๋จ์ํํฉ๋๋ค. ๋ํ Netlink๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ฐํ ์คํ์ ๋ค์ ํ ๊ฐ์ฒด ๋ฐ ๊ทธ๋ฃน์ ์์ ํ๋ฉด ์ฌ์ฉ์ ๊ณต๊ฐ ๋ผ์ฐํ ํ๋ก์ธ์ค์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ํธ ์์ฉํ ์ ์์ต๋๋ค.
ํ์ฌ ๊ตฌํ๋ ๊ธฐ๋ฅ:
- ๊ฒฝ๋ก, ๊ฐ์ฒด ๋ฐ ๋ค์ ํ ๊ทธ๋ฃน, ๋คํธ์ํฌ ์ธํฐํ์ด์ค, ์ฃผ์ ๋ฐ ์ธ์ ํธ์คํธ(arp/ndp)์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ต๋๋ค.
- ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ถํ ๋ฐ ์ฐ๊ฒฐ ๋๊น, ์ฃผ์ ์ค์ ๋ฐ ์ญ์ , ๊ฒฝ๋ก ์ถ๊ฐ ๋ฐ ์ญ์ ์ ๋ํ ์๋ฆผ ์์ฑ.
- ๊ฒฝ๋ก, ๊ฐ์ฒด ๋ฐ ๋ค์ ํ ๊ทธ๋ฃน, ๊ฒ์ดํธ์จ์ด, ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํฉ๋๋ค.
- ๋ผ์ฐํ ํ ์ด๋ธ ๊ด๋ฆฌ๋ฅผ ์ํ Rtsock ์ธํฐํ์ด์ค์์ ํตํฉ.
์ถ์ฒ : opennet.ru