FreeBSD๋Š” Linux ์ปค๋„์—์„œ ์‚ฌ์šฉ๋˜๋Š” Netlink ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€