- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > ³×Æ®¿öÅ© > CoreDNS ½ÃÀÛÇϱâ[¿¡ÀÌÄÜÃâÆÇ]
±âº»ÀûÀÎ DNS À̷аú °¡»ó¼¹ö, ÄÁÅ×ÀÌ³Ê È¯°æ¿¡¼ ½Ç½À Áß½ÉÀ¸·Î CoreDNS ±¸¼º ¿ä¼Ò¿Í Ư¡À» ¼³¸íÇÑ´Ù. ¶ÇÇÑ CoreDNSÀÇ ´Ù¾çÇÑ ¿µ¿ª µ¥ÀÌÅÍ °ü¸® ¹æ¹ý°ú DNS ÁúÀÇÀÀ´ä ¹æ¹ý¿¡ °üÇØ ¼³¸íÇϸç, Äí¹ö³×Ƽ½º ȯ°æ¿¡¼ ¼ºñ½º °Ë»ö ±â´ÉÀ» »ìÆ캼 ¼ö ÀÖ´Ù. ±× ¿Ü¿¡µµ CoreDNS ±âº» Ç÷¯±×Àο¡¼ »ç¿ëÀÚ Á¤ÀÇ Ç÷¯±×ÀαîÁö ´Ù¾çÇÑ ¹æ½ÄÀÇ Ç÷¯±×ÀÎ È°¿ë¹ý°ú üÀÎ Àû¿ë, CoreDNS ¸ð´ÏÅ͸µ ¹× ¹®Á¦ ¹ß»ý½Ã ÇØ°á ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù. ?
ÀúÀÚ: Á¸ º§¶ó¸¶¸¯, Å©¸®ÄÏ ¸®¿ì (ÁöÀºÀÌ), ³ªÁ¤È£ (¿Å±äÀÌ)
1Àå. ¼Ò°³
__CoreDNS¶õ ¹«¾ùÀΰ¡?
____CoreDNS, ÄÁÅ×À̳Ê, ¸¶ÀÌÅ©·Î¼ºñ½º
____CoreDNS Á¦¾à »çÇ×
____CoreDNS, Äí¹ö³×Ƽ½º, CNCF
2Àå. DNS ¼Ò°³
__µµ¸ÞÀÎ À̸§ ½Ã½ºÅÛÀ̶õ?
__µµ¸ÞÀÎ À̸§°ú ³×ÀÓ½ºÆäÀ̽º
__µµ¸ÞÀÎ, À§ÀÓ ¹× ¿µ¿ª
__¸®¼Ò½º ·¹ÄÚµå
__DNS ¼¹ö ¹× ±ÇÇÑ
__Çؼ®±â
__Çؼ®°ú Àç±Í
__ij½Ì
__¸®¼Ò½º ·¹ÄÚµå
____NAME
____TTL
____CLASS
__¸®¼Ò½º ·¹ÄÚµå À¯Çü
____A ·¹ÄÚµå
____AAAA ·¹ÄÚµå
____CNAME ·¹ÄÚµå
____MX ·¹ÄÚµå
____NS ·¹ÄÚµå
____SRV ·¹ÄÚµå
____PTR ·¹ÄÚµå
____SOA ·¹ÄÚµå
__ÁÖ¼® ¿µ¿ª µ¥ÀÌÅÍ ÆÄÀÏ
3Àå. CoreDNS ¼³Á¤
__CoreDNS ¼³Ä¡
__CoreDNS ¸í·É¾î ¿É¼Ç
__ÄÚ¾îÆÄÀÏ ±¸¹®
____ȯ°æ º¯¼ö
____Àç»ç¿ë °¡´É ÄÚµå Á¶°¢
____ÀÓÆ÷Æ®
____¼¹ö ºí·Ï
____ÁúÀÇ Ã³¸®
__Ç÷¯±×ÀÎ
____·çÆ® Ç÷¯±×ÀÎ
____ÆÄÀÏ Ç÷¯±×ÀÎ
____º¸Á¶ Ç÷¯±×ÀÎ
____Àü´Þ Ç÷¯±×ÀÎ
____ij½Ã Ç÷¯±×ÀÎ
____¿À·ù Ç÷¯±×ÀÎ
____·Î±× Ç÷¯±×ÀÎ
__°øÅë ¼³Á¤ ¿É¼Ç
____´ëü
____tls
____Àü¼Û
__»ùÇà DNS ¼¹ö ¼³Á¤
____ij½Ì Àü¿ë DNS ¼¹ö
____ÁÖ DNS ¼¹ö
____º¸Á¶ DNS ¼¹ö
4Àå. ¿µ¿ª µ¥ÀÌÅÍ °ü¸®
__ÆÄÀÏ Ç÷¯±×ÀÎ
__ÀÚµ¿ Ç÷¯±×ÀÎ
__Git ¿¬µ¿ ÀÚµ¿ Ç÷¯±×ÀÎ
__È£½ºÆ® Ç÷¯±×ÀÎ
__route53 Ç÷¯±×ÀÎ
5Àå. ¼ºñ½º °Ë»ö
__¼ºñ½º °Ë»ö ¼Ò°³
__¼ºñ½º °Ë»ö ¹®Á¦ ÇØ°á
__CoreDNS ¹× etcd¸¦ ÅëÇÑ ¼ºñ½º °Ë»ö
____etcd Ç÷¯±×ÀÎ
____Ÿ ¼ºñ½º °Ë»ö ¿É¼Ç
__¼ºñ½º °Ë»ö ¹× ÄÁÅ×ÀÌ³Ê ¿ÀÄɽºÆ®·¹À̼Ç
6Àå. Äí¹ö³×Ƽ½º
__±âº» °³³ä
__Äí¹ö³×Ƽ½º ³×Æ®¿öÅ·
____Ŭ·¯½ºÅÍ IP ¼ºñ½º
____Çìµå¸®½º ¼ºñ½º
__Äí¹ö³×Ƽ½º DNS »ç¾ç
__CoreDNS ÅëÇÕ
__±âº» ±¸¼º
__½ºÅÓ µµ¸ÞÀÎ ¹× Æä´õ·¹À̼Ç
__Ŭ·¯½ºÅÍ DNS ¹èÆ÷ ¸®¼Ò½º
____¿ªÇÒ ±â¹Ý ¾×¼¼½º Á¦¾î
____¼ºñ½º
____¹èÆ÷
__¿ÀÅ佺ÄÉÀϸµ
__Çâ»óµÈ ±¸¼º
__Äí¹ö³×Ƽ½º Ç÷¯±×ÀÎ
__CoreDNS È®Àå ÇÁ·Î±×·¥
____Æ÷µå ¿É¼Ç
____¿ÍÀϵåÄ«µå ÁúÀÇ
____ÀÚµ¿ °æ·Î ¹× Dreaded ndots:5
____¿µ¿ª Àü¼Û Áö¿ø
____¿ÜºÎ ¼ºñ½º ³ëÃâ
____»ç¿ë °¡´ÉÇÑ ·¹ÄÚµå ¼öÁ¤
7Àå. ÁúÀÇ ¹× ÀÀ´ä Á¶ÀÛ
__ÅÛÇø´ Ç÷¯±×ÀÎ
__ÀçÀÛ¼º Ç÷¯±×ÀÎ
____EDNS0 ¿É¼Ç¿¡ ´ëÇÑ ÀçÀÛ¼º Ç÷¯±×ÀÎ »ç¿ë
____´ÙÁß ÀçÀÛ¼º ±ÔÄ¢
__¸ÞŸµ¥ÀÌÅÍ Ç÷¯±×ÀÎ
__DNS º¸¾È È®ÀåÀ» »ç¿ëÇÑ ÀÀ´ä ¼¸í
____DNSSEC ¼¸í ÁÖ ¿µ¿ª °ü¸®
____dnssec Ç÷¯±×ÀÎÀ» »ç¿ëÇÑ Áï°¢ÀûÀÎ DNSSEC ¼¸í
__»ç·Ê ¿¬±¸: ÀÎÆ÷ºí·Ï½ºÀÇ BloxOne À§Çù ¹æ¾î
____»ç¿ëÀÚ ½Äº°
____Á¤Ã¥ Àû¿ë
8Àå. ¸ð´ÏÅ͸µ ¹× ¹®Á¦ ÇØ°á
__prometheus Ç÷¯±×ÀÎ
__·Î±× Ç÷¯±×ÀÎ
__dnstap Ç÷¯±×ÀÎ
__¿À·ù Ç÷¯±×ÀÎ
__ÃßÀû Ç÷¯±×ÀÎ
__µð¹ö±× Ç÷¯±×ÀÎ
9Àå. »ç¿ëÀÚ Á¤ÀÇ ¼¹ö ±¸Ãà
__¿ÜºÎ Ç÷¯±×ÀÎÀ» »ç¿ëÇÑ CoreDNS ÄÄÆÄÀÏ
____µµÄ¿¸¦ »ç¿ëÇÑ ºôµå
____¿öÅ©½ºÅ×À̼ǿ¡¼ÀÇ ºôµå ¹æ¹ý
____plugin, cfg ¼öÁ¤
____¸ÞÀÎ ÇÔ¼ö·Î ´ëüÇÏ´Â ¹æ¹ý
__»ç¿ëÀÚ Á¤ÀÇ Ç÷¯±×ÀÎ ÀÛ¼º
____À¯ÀÏÇÑ Ç÷¯±×ÀÎ
____¸ÞÆ®¸¯, ÃßÀû, ¸ÞŸµ¥ÀÌÅÍ¿Í ÅëÇÕ
__CoreDNS¶õ ¹«¾ùÀΰ¡?
____CoreDNS, ÄÁÅ×À̳Ê, ¸¶ÀÌÅ©·Î¼ºñ½º
____CoreDNS Á¦¾à »çÇ×
____CoreDNS, Äí¹ö³×Ƽ½º, CNCF
2Àå. DNS ¼Ò°³
__µµ¸ÞÀÎ À̸§ ½Ã½ºÅÛÀ̶õ?
__µµ¸ÞÀÎ À̸§°ú ³×ÀÓ½ºÆäÀ̽º
__µµ¸ÞÀÎ, À§ÀÓ ¹× ¿µ¿ª
__¸®¼Ò½º ·¹ÄÚµå
__DNS ¼¹ö ¹× ±ÇÇÑ
__Çؼ®±â
__Çؼ®°ú Àç±Í
__ij½Ì
__¸®¼Ò½º ·¹ÄÚµå
____NAME
____TTL
____CLASS
__¸®¼Ò½º ·¹ÄÚµå À¯Çü
____A ·¹ÄÚµå
____AAAA ·¹ÄÚµå
____CNAME ·¹ÄÚµå
____MX ·¹ÄÚµå
____NS ·¹ÄÚµå
____SRV ·¹ÄÚµå
____PTR ·¹ÄÚµå
____SOA ·¹ÄÚµå
__ÁÖ¼® ¿µ¿ª µ¥ÀÌÅÍ ÆÄÀÏ
3Àå. CoreDNS ¼³Á¤
__CoreDNS ¼³Ä¡
__CoreDNS ¸í·É¾î ¿É¼Ç
__ÄÚ¾îÆÄÀÏ ±¸¹®
____ȯ°æ º¯¼ö
____Àç»ç¿ë °¡´É ÄÚµå Á¶°¢
____ÀÓÆ÷Æ®
____¼¹ö ºí·Ï
____ÁúÀÇ Ã³¸®
__Ç÷¯±×ÀÎ
____·çÆ® Ç÷¯±×ÀÎ
____ÆÄÀÏ Ç÷¯±×ÀÎ
____º¸Á¶ Ç÷¯±×ÀÎ
____Àü´Þ Ç÷¯±×ÀÎ
____ij½Ã Ç÷¯±×ÀÎ
____¿À·ù Ç÷¯±×ÀÎ
____·Î±× Ç÷¯±×ÀÎ
__°øÅë ¼³Á¤ ¿É¼Ç
____´ëü
____tls
____Àü¼Û
__»ùÇà DNS ¼¹ö ¼³Á¤
____ij½Ì Àü¿ë DNS ¼¹ö
____ÁÖ DNS ¼¹ö
____º¸Á¶ DNS ¼¹ö
4Àå. ¿µ¿ª µ¥ÀÌÅÍ °ü¸®
__ÆÄÀÏ Ç÷¯±×ÀÎ
__ÀÚµ¿ Ç÷¯±×ÀÎ
__Git ¿¬µ¿ ÀÚµ¿ Ç÷¯±×ÀÎ
__È£½ºÆ® Ç÷¯±×ÀÎ
__route53 Ç÷¯±×ÀÎ
5Àå. ¼ºñ½º °Ë»ö
__¼ºñ½º °Ë»ö ¼Ò°³
__¼ºñ½º °Ë»ö ¹®Á¦ ÇØ°á
__CoreDNS ¹× etcd¸¦ ÅëÇÑ ¼ºñ½º °Ë»ö
____etcd Ç÷¯±×ÀÎ
____Ÿ ¼ºñ½º °Ë»ö ¿É¼Ç
__¼ºñ½º °Ë»ö ¹× ÄÁÅ×ÀÌ³Ê ¿ÀÄɽºÆ®·¹À̼Ç
6Àå. Äí¹ö³×Ƽ½º
__±âº» °³³ä
__Äí¹ö³×Ƽ½º ³×Æ®¿öÅ·
____Ŭ·¯½ºÅÍ IP ¼ºñ½º
____Çìµå¸®½º ¼ºñ½º
__Äí¹ö³×Ƽ½º DNS »ç¾ç
__CoreDNS ÅëÇÕ
__±âº» ±¸¼º
__½ºÅÓ µµ¸ÞÀÎ ¹× Æä´õ·¹À̼Ç
__Ŭ·¯½ºÅÍ DNS ¹èÆ÷ ¸®¼Ò½º
____¿ªÇÒ ±â¹Ý ¾×¼¼½º Á¦¾î
____¼ºñ½º
____¹èÆ÷
__¿ÀÅ佺ÄÉÀϸµ
__Çâ»óµÈ ±¸¼º
__Äí¹ö³×Ƽ½º Ç÷¯±×ÀÎ
__CoreDNS È®Àå ÇÁ·Î±×·¥
____Æ÷µå ¿É¼Ç
____¿ÍÀϵåÄ«µå ÁúÀÇ
____ÀÚµ¿ °æ·Î ¹× Dreaded ndots:5
____¿µ¿ª Àü¼Û Áö¿ø
____¿ÜºÎ ¼ºñ½º ³ëÃâ
____»ç¿ë °¡´ÉÇÑ ·¹ÄÚµå ¼öÁ¤
7Àå. ÁúÀÇ ¹× ÀÀ´ä Á¶ÀÛ
__ÅÛÇø´ Ç÷¯±×ÀÎ
__ÀçÀÛ¼º Ç÷¯±×ÀÎ
____EDNS0 ¿É¼Ç¿¡ ´ëÇÑ ÀçÀÛ¼º Ç÷¯±×ÀÎ »ç¿ë
____´ÙÁß ÀçÀÛ¼º ±ÔÄ¢
__¸ÞŸµ¥ÀÌÅÍ Ç÷¯±×ÀÎ
__DNS º¸¾È È®ÀåÀ» »ç¿ëÇÑ ÀÀ´ä ¼¸í
____DNSSEC ¼¸í ÁÖ ¿µ¿ª °ü¸®
____dnssec Ç÷¯±×ÀÎÀ» »ç¿ëÇÑ Áï°¢ÀûÀÎ DNSSEC ¼¸í
__»ç·Ê ¿¬±¸: ÀÎÆ÷ºí·Ï½ºÀÇ BloxOne À§Çù ¹æ¾î
____»ç¿ëÀÚ ½Äº°
____Á¤Ã¥ Àû¿ë
8Àå. ¸ð´ÏÅ͸µ ¹× ¹®Á¦ ÇØ°á
__prometheus Ç÷¯±×ÀÎ
__·Î±× Ç÷¯±×ÀÎ
__dnstap Ç÷¯±×ÀÎ
__¿À·ù Ç÷¯±×ÀÎ
__ÃßÀû Ç÷¯±×ÀÎ
__µð¹ö±× Ç÷¯±×ÀÎ
9Àå. »ç¿ëÀÚ Á¤ÀÇ ¼¹ö ±¸Ãà
__¿ÜºÎ Ç÷¯±×ÀÎÀ» »ç¿ëÇÑ CoreDNS ÄÄÆÄÀÏ
____µµÄ¿¸¦ »ç¿ëÇÑ ºôµå
____¿öÅ©½ºÅ×À̼ǿ¡¼ÀÇ ºôµå ¹æ¹ý
____plugin, cfg ¼öÁ¤
____¸ÞÀÎ ÇÔ¼ö·Î ´ëüÇÏ´Â ¹æ¹ý
__»ç¿ëÀÚ Á¤ÀÇ Ç÷¯±×ÀÎ ÀÛ¼º
____À¯ÀÏÇÑ Ç÷¯±×ÀÎ
____¸ÞÆ®¸¯, ÃßÀû, ¸ÞŸµ¥ÀÌÅÍ¿Í ÅëÇÕ
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á DNS ÀÌ·Ð: DNS ³×ÀÓ½ºÆäÀ̽º, µµ¸ÞÀÎ À̸§, µµ¸ÞÀÎ ¹× ¿µ¿ª
¡á CoreDNS ¼¹ö ±¸¼º ¹æ¹ý
¡á CoreDNS¸¦ »ç¿ëÇØ ±âº»¿¡¼ °í±Þ ¿µ¿ª µ¥ÀÌÅÍ °ü¸® ¹× Á¦°ø
¡á etcd¿Í Äí¹ö³×Ƽ½º¸¦ »ç¿ëÇÑ CoreDNS ¼ºñ½º °Ë»ö ±¸¼º
¡á Äí¹ö³×Ƽ½º¿ÍÀÇ ÅëÇÕ
¡á Ç÷¯±×ÀΠüÀÎÀ» Åë°úÇÏ´Â ÁúÀÇ¿Í ÀÀ´ä Á¶ÀÛ
¡á DNS ¼ºñ½ºÀÇ °¡¿ë¼º°ú ¼º´É ¸ð´ÏÅ͸µ, ¹®Á¦ ÇØ°á
¡á CoreDNS »ç¿ëÀÚ Á¤ÀÇ ¹öÀü ºôµå¿Í Ç÷¯±×ÀÎ ÀÛ¼º
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
¡á Äí¹ö³×Ƽ½º¿Í °°Àº ȯ°æÀ» °ü¸®ÇÏ´Â DNS ±â¹Ý ¼ºñ½º °Ë»öÀÌ ÇÊ¿äÇÑ ÄÁÅ×ÀÌ³Ê È¯°æÀÇ °ü¸®ÀÚ
¡á ÄÁÅ×À̳ʿ¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Â ÀÛ°í À¯¿¬ÇÑ DNS ¼¹ö¸¦ ã´Â DNS °ü¸®ÀÚ
¡á ´ÙÀ½°ú °°Àº DNS ¼¹ö¸¦ ã´Â DNS °ü¸®ÀÚ
- AWS Route 53°ú ÅëÇÕ
- ÁúÀÇ ¹× ÀÀ´ä¿¡ µû¶ó À¯¿¬ÇÑ ÀçÀÛ¼º Áö¿ø
- DNS over Àü¼Û °èÃþ º¸¾È°ú ¹ü¿ë ¿ø°Ý ÇÁ·Î½ÃÀú Áö¿ø
¡á CoreDNS Ç÷¯±×ÀÎÀ» ÀÛ¼ºÇØ »ç¿ëÀÚ ÁöÁ¤ DNS ±â´ÉÀ» ±¸ÇöÇÏ·Á´Â °³¹ßÀÚ
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, ¡®¼Ò°³¡¯¿¡¼´Â CoreDNSÀÇ »ç¿ë ÀÌÀ¯¿Í ÇѰ踦 Æ÷ÇÔÇØ ´Ù¸¥ DNS ¼¹ö¿Í ¾î¶»°Ô ´Ù¸¥Áö¸¦ ¼³¸íÇÑ´Ù. ¶ÇÇÑ Å¬¶ó¿ìµå ³×ÀÌƼºê Computing Foundation°ú °ü°è°¡ ±íÀº CoreDNSÀÇ ¿ª»ç¸¦ ´Ù·é´Ù.
2Àå, ¡®DNS ¼Ò°³¡¯¿¡¼´Â ±âº» DNS À̷аú DNS ¼¹ö ¹× Çؼ®±âÀÇ ¿ªÇÒ, DNS ³×ÀÓ½ºÆäÀ̽ºÀÇ ±¸Á¶, ´Ù¾çÇÑ ¸®¼Ò½º ·¹ÄÚµåÀÇ ±¸¹® ¹× Àǹ̸¦ Æ÷ÇÔÇØ µµ¸ÞÀÎ À̸§ ¼¹ö°¡ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀ» »ìÆ캻´Ù.
3Àå, ¡®CoreDNS ¼³Á¤¡¯¿¡¼´Â CoreDNS ¼¹ö ¼³Á¤(Configure)¿¡ Èï¹Ì¸¦ ºÒ·¯ ÀÏÀ¸Å³ ¼ö ÀÖ´Â ³»¿ëÀ» ÁغñÇß´Ù.
CoreDNS´Â ¿µ¿ª µ¥ÀÌÅ͸¦ °ü¸®ÇÏ´Â ´Ù¾çÇÑ ¹æ¹ýÀ» Áö¿øÇÑ´Ù. ¿µ¿ª µ¥ÀÌÅÍ ÆÄÀÏ°ú °°ÀÌ DNS °ü¸®ÀÚ¿¡°Ô Ä£¼÷ÇÑ ¹æ¹ý°ú Git »ç¿ë °°Àº Çö´ëÀûÀÎ ¹æ¹ý, È£½ºÆ® Å×ÀÌºí °°Àº º¹°íÀûÀÎ ¹æ¹ýµµ ÀÖ´Ù. 4Àå, ¡®¿µ¿ª µ¥ÀÌÅÍ °ü¸®¡¯¿¡¼´Â ¾Õ¼ ¾ð±ÞÇÑ ³»¿ëÀ» ¸ðµÎ ´Ù·é´Ù.
5Àå, ¡®¼ºñ½º °Ë»ö¡¯¿¡¼´Â ¼ºñ½º °Ë»öÀÇ ±âº» »çÇ×°ú CoreDNS ¹× etcd¸¦ »ç¿ëÇØ µ¿Àû ȯ°æ¿¡¼ ¼ºñ½º °Ë»öÀ» ¼öÇàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
6Àå, ¡®Äí¹ö³×Ƽ½º¡¯¿¡¼´Â ¸ÕÀú Äí¹ö³×Ƽ½ºÀÇ ±âº» »çÇ×À» ¼³¸íÇÏ°í CoreDNSÀÇ °¡Àå ÀϹÝÀûÀÎ »ç¿ë »ç·Ê Áß ÇϳªÀÎ Äí¹ö³×Ƽ½º¿ÍÀÇ ÅëÇÕÀ» ´Ù·é´Ù.
7Àå, ¡®ÁúÀÇ ¹× ÀÀ´ä Á¶ÀÛ¡¯¿¡¼´Â ¿äû ¹× ÀÀ´äÀ» Á¶ÀÛÇÏ´Â µ¥ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â Ç÷¯±×ÀÎÀ» ¼³¸íÇÑ´Ù.
8Àå, ¡®¸ð´ÏÅ͸µ ¹× ¹®Á¦ Çذᡯ¿¡¼´Â CoreDNS¸¦ ¸ð´ÏÅ͸µÇÏ°í ÁúÀÇ ¹× ÀÀ´äÀ» ·Î±ëÇÏ°í ¹®Á¦¸¦ Áø´ÜÇÏ´Â µ¥ µµ¿òÀÌ µÇ´Â Ç÷¯±×ÀÎ(Plugin)À» ´Ù·é´Ù.
9Àå, ¡®»ç¿ëÀÚ Á¤ÀÇ ¼¹ö ±¸Ã࡯ CoreDNS ÄÚµå´Â ¶óÀ̺귯¸®·Î ½±°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ±¸Á¶ÈµÅ ÀÖ´Ù. Áï, ÀڽŸ¸ÀÇ main ·çƾÀ» ¸¸µé°í Àüü CoreDNS Äڵ带 ¶óÀ̺귯¸®·Î ó¸®ÇÒ ¼ö ÀÖ´Ù. 9Àå¿¡¼´Â ÀÌ·¯ÇÑ ¿É¼ÇÀ» ¸ðµÎ ´Ù·é´Ù.
¡Ú ÁöÀºÀÌÀÇ ¸» ¡Ú
ÀÌ Ã¥À» º¸ÀÚ¸¶ÀÚ °¡Àå ¸ÕÀú ¶°¿À¸£´Â Áú¹®Àº "DNS ¼¹ö´Â Ưº°ÇÑ °ÍÀÌ Àִ°¡?" ´Ù. ÇöÀç ¼±ÅÃÇÒ ¼ö ÀÖ´Â DNS ¼¹ö´Â Á¤¸» ¸¹´Ù. ¸ÕÀú DNS ¼¹öÀÇ ½ÃÃÊÀÎ BIND(Berkeley Internet Name Domain)°¡ ÀÖ´Ù. BIND´Â 1980³â´ëºÎÅÍ Á¶±Ý¾¿ ¾²À̱⠽ÃÀÛÇß°í, ÀÛ¼ºµÈ ¸ðµç DNS Ç¥ÁØÀ» Áö¿øÇÑ´Ù. Microsoft DNS ¼¹ö´Â Active Directory ȯ°æ¿¡¼ ³Î¸® »ç¿ëµÇ´Â DNS ¼¹ö´Ù. NLnet Labs ¹× KnotÀÇ NSD´Â ½Å·ÚÇÒ ¼ö ÀÖ´Â DNS ¼¹öÀ̸ç, NLnet LabsÀÇ Unbound´Â ºü¸£°í °£°áÇÑ Àç±Í(Recursion) DNS ¼¹ö´Ù. ±×·¸´Ù¸é CoreDNS´Â ÀÌ·¯ÇÑ DNS ¼¹ö°¡ Á¦°øÇÏÁö ¾Ê´Â ¹«¾ùÀ» Á¦°øÇϴ°¡?
CoreDNS´Â Go·Î ÀÛ¼ºµÆ´Âµ¥, Go´Â ¸Þ¸ð¸®-¼¼ÀÌÇÁ(Memory-safe) ÇÁ·Î±×·¡¹Ö ¾ð¾î´Ù. ±×°Ô ¿Ö Áß¿äÇÒ±î? BIND ±â¹Ý DNS ÀÎÇÁ¶ó¸¦ ¿î¿µÇÏ°í ¹öÆÛ ¿À¹ö·±(Overrun) ¶§¹®¿¡ 100´ëÀÇ DNS ¼¹ö¸¦ ÃÖ´ëÇÑ »¡¸® ¾÷±×·¹À̵åÇØ¾ß ÇÑ´Ù¸é ÀÌ ºÎºÐÀÌ Áß¿äÇÑ ¿ªÇÒÀ» ÇÒ °ÍÀÌ´Ù. C ¹× C ¾ð¾î·Î ÀÛ¼ºµÈ ½ºÆ®¶óÀÌÇÁ(Stripe)¹æ½ÄÀÇ DNS ¼¹öÀÇ Ãë¾àÁ¡Àº ¹öÆÛ ¿À¹öÇ÷οì(Overflow) ¶Ç´Â ¿À¹ö·±, ´ó±Û¸µ(Dangling) Æ÷ÀÎÅÍ ¶§¹®¿¡ ¹ß»ýÇÑ´Ù. ¸Þ¸ð¸®-¼¼ÀÌÇÁµÈ Go·Î ÀÛ¼ºµÈ CoreDNS¿¡¼´Â ÀÌ·¯ÇÑ ºÎºÐÀÌ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
Go·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥Àº µ¿½Ã¼º ¶Ç´Â º´·Ä ½ÇÇàÀ» Áö¿øÇÒ ¼öµµ Àִµ¥, ¸ÖƼÇÁ·Î¼¼½Ì(Multiprocessing) ¶Ç´Â ¸ÖƼŽºÅ·(Multitasking) ½Ã½ºÅÛ¿¡¼ ´õ ¸¹Àº ¼º´ÉÀ» ²ø¾î³»´Â µ¥ À¯¿ëÇÒ ¼ö ÀÖ´Ù. BIND ¼º´ÉÀº ¸ÖƼÇÁ·Î¼¼¼(Multiprocessor) ½Ã½ºÅÛ¿¡¼ È®ÀåµÇ±â ¾î·Á¿îµ¥, CoreDNSÀÇ ¼º´ÉÀº ÇÁ·Î¼¼¼ ¼ö¿¡ µû¶ó È®ÀåµÅ ´õ ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
Go´Â C ¶Ç´Â C º¸´Ù ¾à°£ ´À¸®°Ô ½ÇÇàµÇ´Â °æÇâÀÌ Àֱ⠶§¹®¿¡ ¼º´ÉÀ» Çâ»óÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ´ëºÎºÐÀº ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. Áß¿äÇÑ °ÍÀº Go´Â CoreDNS¿¡ Á¦°øÇÏ´Â ¿öÅ©·Îµå(Workload)¸¦ Àß Ã³¸®ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
¾Æ¸¶µµ CoreDNS°¡ Á¦°øÇÏ´Â °¡Àå Áß¿äÇÑ ±â´ÉÀº ÄÁÅ×À̳Ê(Container) ÀÎÇÁ¶ó¿Í etcd, Äí¹ö³×Ƽ½º¿Í °°Àº ¿ÀÄɽºÆ®·¹À̼Ç(Orchestration) ½Ã½ºÅÛ°ú Åë½ÅÇÒ ¼ö ÀÖ´Â ºÎºÐÀÌ´Ù.
¡Ú ¿Å±äÀÌÀÇ ¸» ¡Ú
CoreDNS´Â Ŭ¶ó¿ìµå ³×ÀÌƼºê ȯ°æ¿¡ ¾Ë¸ÂÀº DNS ¼¹ö·Î Ŭ¶ó¿ìµå ³×ÀÌƼºê ÄÄÇ»Æà Àç´Ü(CNCF, Cloud Native Computing Foundation)¿¡¼ Á¹¾÷ÇÑ ÇÁ·ÎÁ§Æ®´Ù. ±âº»ÀûÀÎ DNS ¸í¼¼¸¦ ÁؼöÇØ ¹ü¿ë¼º°ú À¯¿¬¼º ¶§¹®¿¡ Äí¹ö³×Ƽ½º µî ´Ù¾çÇÑ Å¬·¯½ºÅÍ È¯°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ°í ¾ÆÆÄÄ¡ ¶óÀ̼¾½º¸¦ ¸í½ÃÇÑ ¿ÏÀüÇÑ ¿ÀǼҽº·Î ¹«·á·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
CoreDNSÀÇ ÀåÁ¡Àº Go ¾ð¾î·Î ÀÛ¼ºµÅ ¼³Á¤ÀÌ ºü¸£°í °£´ÜÇÏ´Ù´Â °ÍÀÌ´Ù. ¶ÇÇÑ Ç÷¯±×ÀÎÀ» ¸ðµâ ÇüÅ·ΠÀÛ¼ºÇÏ°í ÄÁÇDZ׸ʿ¡ ¹Ý¿µÇØ DNS ¼ºñ½º °Ë»ö¿¡ ´ëÇÑ ¼³Á¤À» ¼Õ½±°Ô º¯°æÇÒ ¼ö ÀÖÀ¸¸ç, Ç÷¯±×ÀÎÀ» ¿¬À̾î Àû¿ë °¡´ÉÇÑ Ã¼ÀÎ ±¸Á¶·Î ´Ù¾çÇÏ°Ô ±¸¼ºÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ·¯ÇÑ Ç÷¯±×ÀÎÀ» ÅëÇØ ¸ÞÆ®¸¯ ¸ð´ÏÅ͸µ ¿ª½Ã ¼Õ½±°Ô ¿¬µ¿ÇÒ ¼ö ÀÖ´Ù.
CoreDNS´Â Äí¹ö³×Ƽ½º¿Í ÇÁ·Î¸ÞÅ׿콺, Etcd µî À¯¸íÇÑ ¿ÀǼҽº¿ÍÀÇ Ç÷¯±×ÀÎÀ» ºñ·ÔÇØ ¸ÞÀÌÀú Ŭ¶ó¿ìµå»çÀÎ AWS, MS Azure, GCP¿¡¼ Á¦°ø ÁßÀÎ DNS ¼ºñ½º¿ÍÀÇ Ç÷¯±×ÀÎ ¿¬µ¿À» ÅëÇØ ¶Ù¾î³ ȣȯ¼ºÀ» °¡Áö°í ´Ù¾çÇÑ È¯°æ¿¡¼ »ç¿ëÀÌ °¡´ÉÇÏ´Ù.
ƯÈ÷ Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍÀÇ ±âº» DNS·Î ³»ÀåµÅ Àֱ⠶§¹®¿¡ Ŭ·¯½ºÅÍ ³»ºÎ µµ¸ÞÀÎ ±â¹ÝÀ¸·Î ¹ÙÀεùµÈ ¼ºñ½ºÀÇ ClusterIP³ª ÀÚÁÖ º¯°æµÇ´Â PODÀÇ IP¸¦ ´ë½ÅÇØ Á¶È¸°¡ °¡´ÉÇÑ ¿ëµµ·Î ¸¹ÀÌ »ç¿ëµÈ´Ù. ±×·¡¼ Äí¹ö³×Ƽ½º»ó¿¡¼ÀÇ ¼ºñ½º °Ë»ö ±â´ÉÀ» ±âº»ÀûÀ¸·Î ±¸ÇöÇÒ ¼ö ÀÖ¾î ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó¿¡ °É¸Â°Ô ±¸¼ºÇÏ°í °ü¸®ÇÒ ¼ö ÀÖ´Ù.
¿ªÀÚ´Â Äí¹ö³×Ƽ½º¸¦ ±â¹ÝÀ¸·Î ÄÁÅ×ÀÌ³Ê Ç÷§ÆûÀ» ±¸Ãà, ¿î¿µÇÑ °æÇèÀ» Åä´ë·Î CoreDNS¸¦ óÀ½ Á¢ÇÏ°í ½ÃÀÛÇÏ´Â ºÐµé²² µµ¿òµÇ°íÀÚ ¹ø¿ªÀ» ÁøÇàÇß´Ù. ¹ø¿ª °úÁ¤¿¡¼ CoreDNS¿¡´Â ¸¹Àº ¹öÀü º¯È°¡ ÀÖ¾ú°í, CNCF »ýÅ°è¿Í ÇÔ²² ´Ù¾çÇÑ À¯°ü ÇÁ·ÎÁ§Æ®¿Í ÅøÀÌ Áö±Ý ÀÌ ½Ã°£¿¡µµ °è¼Ó °³¹ßµÇ°í Àֱ⿡ ÀÌ ºÎºÐÀ» ÃÖ´ëÇÑ ¹Ý¿µÇÏ·Á°í ³ë·ÂÇß´Ù.
ÀÌ Ã¥Àº DNSÀÇ À̷аú ÇÔ²² ½Ç½À Áß½ÉÀ¸·Î CoreDNSÀÇ ±¸¼º ¿ä¼Ò¿Í Ư¡À» ¼³¸íÇϸç, °¡»ó¼¹ö¿Í Äí¹ö³×Ƽ½º ȯ°æ¿¡¼ CoreDNS °ü·Ã ±â´ÉÀ» ¸í·É¾î ±â¹ÝÀ¸·Î Á÷Á¢ ¼öÇàÇÒ ¼ö Àֱ⿡ CoreDNS¸¦ »ç¿ëÇغ¸°íÀÚ ÇÏ´Â ´Ù¾çÇÑ »ç¿ëÀÚ¿¡°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
¡á DNS ÀÌ·Ð: DNS ³×ÀÓ½ºÆäÀ̽º, µµ¸ÞÀÎ À̸§, µµ¸ÞÀÎ ¹× ¿µ¿ª
¡á CoreDNS ¼¹ö ±¸¼º ¹æ¹ý
¡á CoreDNS¸¦ »ç¿ëÇØ ±âº»¿¡¼ °í±Þ ¿µ¿ª µ¥ÀÌÅÍ °ü¸® ¹× Á¦°ø
¡á etcd¿Í Äí¹ö³×Ƽ½º¸¦ »ç¿ëÇÑ CoreDNS ¼ºñ½º °Ë»ö ±¸¼º
¡á Äí¹ö³×Ƽ½º¿ÍÀÇ ÅëÇÕ
¡á Ç÷¯±×ÀΠüÀÎÀ» Åë°úÇÏ´Â ÁúÀÇ¿Í ÀÀ´ä Á¶ÀÛ
¡á DNS ¼ºñ½ºÀÇ °¡¿ë¼º°ú ¼º´É ¸ð´ÏÅ͸µ, ¹®Á¦ ÇØ°á
¡á CoreDNS »ç¿ëÀÚ Á¤ÀÇ ¹öÀü ºôµå¿Í Ç÷¯±×ÀÎ ÀÛ¼º
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
¡á Äí¹ö³×Ƽ½º¿Í °°Àº ȯ°æÀ» °ü¸®ÇÏ´Â DNS ±â¹Ý ¼ºñ½º °Ë»öÀÌ ÇÊ¿äÇÑ ÄÁÅ×ÀÌ³Ê È¯°æÀÇ °ü¸®ÀÚ
¡á ÄÁÅ×À̳ʿ¡¼ ½ÇÇàÇÒ ¼ö ÀÖ´Â ÀÛ°í À¯¿¬ÇÑ DNS ¼¹ö¸¦ ã´Â DNS °ü¸®ÀÚ
¡á ´ÙÀ½°ú °°Àº DNS ¼¹ö¸¦ ã´Â DNS °ü¸®ÀÚ
- AWS Route 53°ú ÅëÇÕ
- ÁúÀÇ ¹× ÀÀ´ä¿¡ µû¶ó À¯¿¬ÇÑ ÀçÀÛ¼º Áö¿ø
- DNS over Àü¼Û °èÃþ º¸¾È°ú ¹ü¿ë ¿ø°Ý ÇÁ·Î½ÃÀú Áö¿ø
¡á CoreDNS Ç÷¯±×ÀÎÀ» ÀÛ¼ºÇØ »ç¿ëÀÚ ÁöÁ¤ DNS ±â´ÉÀ» ±¸ÇöÇÏ·Á´Â °³¹ßÀÚ
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå, ¡®¼Ò°³¡¯¿¡¼´Â CoreDNSÀÇ »ç¿ë ÀÌÀ¯¿Í ÇѰ踦 Æ÷ÇÔÇØ ´Ù¸¥ DNS ¼¹ö¿Í ¾î¶»°Ô ´Ù¸¥Áö¸¦ ¼³¸íÇÑ´Ù. ¶ÇÇÑ Å¬¶ó¿ìµå ³×ÀÌƼºê Computing Foundation°ú °ü°è°¡ ±íÀº CoreDNSÀÇ ¿ª»ç¸¦ ´Ù·é´Ù.
2Àå, ¡®DNS ¼Ò°³¡¯¿¡¼´Â ±âº» DNS À̷аú DNS ¼¹ö ¹× Çؼ®±âÀÇ ¿ªÇÒ, DNS ³×ÀÓ½ºÆäÀ̽ºÀÇ ±¸Á¶, ´Ù¾çÇÑ ¸®¼Ò½º ·¹ÄÚµåÀÇ ±¸¹® ¹× Àǹ̸¦ Æ÷ÇÔÇØ µµ¸ÞÀÎ À̸§ ¼¹ö°¡ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀ» »ìÆ캻´Ù.
3Àå, ¡®CoreDNS ¼³Á¤¡¯¿¡¼´Â CoreDNS ¼¹ö ¼³Á¤(Configure)¿¡ Èï¹Ì¸¦ ºÒ·¯ ÀÏÀ¸Å³ ¼ö ÀÖ´Â ³»¿ëÀ» ÁغñÇß´Ù.
CoreDNS´Â ¿µ¿ª µ¥ÀÌÅ͸¦ °ü¸®ÇÏ´Â ´Ù¾çÇÑ ¹æ¹ýÀ» Áö¿øÇÑ´Ù. ¿µ¿ª µ¥ÀÌÅÍ ÆÄÀÏ°ú °°ÀÌ DNS °ü¸®ÀÚ¿¡°Ô Ä£¼÷ÇÑ ¹æ¹ý°ú Git »ç¿ë °°Àº Çö´ëÀûÀÎ ¹æ¹ý, È£½ºÆ® Å×ÀÌºí °°Àº º¹°íÀûÀÎ ¹æ¹ýµµ ÀÖ´Ù. 4Àå, ¡®¿µ¿ª µ¥ÀÌÅÍ °ü¸®¡¯¿¡¼´Â ¾Õ¼ ¾ð±ÞÇÑ ³»¿ëÀ» ¸ðµÎ ´Ù·é´Ù.
5Àå, ¡®¼ºñ½º °Ë»ö¡¯¿¡¼´Â ¼ºñ½º °Ë»öÀÇ ±âº» »çÇ×°ú CoreDNS ¹× etcd¸¦ »ç¿ëÇØ µ¿Àû ȯ°æ¿¡¼ ¼ºñ½º °Ë»öÀ» ¼öÇàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
6Àå, ¡®Äí¹ö³×Ƽ½º¡¯¿¡¼´Â ¸ÕÀú Äí¹ö³×Ƽ½ºÀÇ ±âº» »çÇ×À» ¼³¸íÇÏ°í CoreDNSÀÇ °¡Àå ÀϹÝÀûÀÎ »ç¿ë »ç·Ê Áß ÇϳªÀÎ Äí¹ö³×Ƽ½º¿ÍÀÇ ÅëÇÕÀ» ´Ù·é´Ù.
7Àå, ¡®ÁúÀÇ ¹× ÀÀ´ä Á¶ÀÛ¡¯¿¡¼´Â ¿äû ¹× ÀÀ´äÀ» Á¶ÀÛÇÏ´Â µ¥ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â Ç÷¯±×ÀÎÀ» ¼³¸íÇÑ´Ù.
8Àå, ¡®¸ð´ÏÅ͸µ ¹× ¹®Á¦ Çذᡯ¿¡¼´Â CoreDNS¸¦ ¸ð´ÏÅ͸µÇÏ°í ÁúÀÇ ¹× ÀÀ´äÀ» ·Î±ëÇÏ°í ¹®Á¦¸¦ Áø´ÜÇÏ´Â µ¥ µµ¿òÀÌ µÇ´Â Ç÷¯±×ÀÎ(Plugin)À» ´Ù·é´Ù.
9Àå, ¡®»ç¿ëÀÚ Á¤ÀÇ ¼¹ö ±¸Ã࡯ CoreDNS ÄÚµå´Â ¶óÀ̺귯¸®·Î ½±°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ±¸Á¶ÈµÅ ÀÖ´Ù. Áï, ÀڽŸ¸ÀÇ main ·çƾÀ» ¸¸µé°í Àüü CoreDNS Äڵ带 ¶óÀ̺귯¸®·Î ó¸®ÇÒ ¼ö ÀÖ´Ù. 9Àå¿¡¼´Â ÀÌ·¯ÇÑ ¿É¼ÇÀ» ¸ðµÎ ´Ù·é´Ù.
¡Ú ÁöÀºÀÌÀÇ ¸» ¡Ú
ÀÌ Ã¥À» º¸ÀÚ¸¶ÀÚ °¡Àå ¸ÕÀú ¶°¿À¸£´Â Áú¹®Àº "DNS ¼¹ö´Â Ưº°ÇÑ °ÍÀÌ Àִ°¡?" ´Ù. ÇöÀç ¼±ÅÃÇÒ ¼ö ÀÖ´Â DNS ¼¹ö´Â Á¤¸» ¸¹´Ù. ¸ÕÀú DNS ¼¹öÀÇ ½ÃÃÊÀÎ BIND(Berkeley Internet Name Domain)°¡ ÀÖ´Ù. BIND´Â 1980³â´ëºÎÅÍ Á¶±Ý¾¿ ¾²À̱⠽ÃÀÛÇß°í, ÀÛ¼ºµÈ ¸ðµç DNS Ç¥ÁØÀ» Áö¿øÇÑ´Ù. Microsoft DNS ¼¹ö´Â Active Directory ȯ°æ¿¡¼ ³Î¸® »ç¿ëµÇ´Â DNS ¼¹ö´Ù. NLnet Labs ¹× KnotÀÇ NSD´Â ½Å·ÚÇÒ ¼ö ÀÖ´Â DNS ¼¹öÀ̸ç, NLnet LabsÀÇ Unbound´Â ºü¸£°í °£°áÇÑ Àç±Í(Recursion) DNS ¼¹ö´Ù. ±×·¸´Ù¸é CoreDNS´Â ÀÌ·¯ÇÑ DNS ¼¹ö°¡ Á¦°øÇÏÁö ¾Ê´Â ¹«¾ùÀ» Á¦°øÇϴ°¡?
CoreDNS´Â Go·Î ÀÛ¼ºµÆ´Âµ¥, Go´Â ¸Þ¸ð¸®-¼¼ÀÌÇÁ(Memory-safe) ÇÁ·Î±×·¡¹Ö ¾ð¾î´Ù. ±×°Ô ¿Ö Áß¿äÇÒ±î? BIND ±â¹Ý DNS ÀÎÇÁ¶ó¸¦ ¿î¿µÇÏ°í ¹öÆÛ ¿À¹ö·±(Overrun) ¶§¹®¿¡ 100´ëÀÇ DNS ¼¹ö¸¦ ÃÖ´ëÇÑ »¡¸® ¾÷±×·¹À̵åÇØ¾ß ÇÑ´Ù¸é ÀÌ ºÎºÐÀÌ Áß¿äÇÑ ¿ªÇÒÀ» ÇÒ °ÍÀÌ´Ù. C ¹× C ¾ð¾î·Î ÀÛ¼ºµÈ ½ºÆ®¶óÀÌÇÁ(Stripe)¹æ½ÄÀÇ DNS ¼¹öÀÇ Ãë¾àÁ¡Àº ¹öÆÛ ¿À¹öÇ÷οì(Overflow) ¶Ç´Â ¿À¹ö·±, ´ó±Û¸µ(Dangling) Æ÷ÀÎÅÍ ¶§¹®¿¡ ¹ß»ýÇÑ´Ù. ¸Þ¸ð¸®-¼¼ÀÌÇÁµÈ Go·Î ÀÛ¼ºµÈ CoreDNS¿¡¼´Â ÀÌ·¯ÇÑ ºÎºÐÀÌ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
Go·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥Àº µ¿½Ã¼º ¶Ç´Â º´·Ä ½ÇÇàÀ» Áö¿øÇÒ ¼öµµ Àִµ¥, ¸ÖƼÇÁ·Î¼¼½Ì(Multiprocessing) ¶Ç´Â ¸ÖƼŽºÅ·(Multitasking) ½Ã½ºÅÛ¿¡¼ ´õ ¸¹Àº ¼º´ÉÀ» ²ø¾î³»´Â µ¥ À¯¿ëÇÒ ¼ö ÀÖ´Ù. BIND ¼º´ÉÀº ¸ÖƼÇÁ·Î¼¼¼(Multiprocessor) ½Ã½ºÅÛ¿¡¼ È®ÀåµÇ±â ¾î·Á¿îµ¥, CoreDNSÀÇ ¼º´ÉÀº ÇÁ·Î¼¼¼ ¼ö¿¡ µû¶ó È®ÀåµÅ ´õ ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
Go´Â C ¶Ç´Â C º¸´Ù ¾à°£ ´À¸®°Ô ½ÇÇàµÇ´Â °æÇâÀÌ Àֱ⠶§¹®¿¡ ¼º´ÉÀ» Çâ»óÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ´ëºÎºÐÀº ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. Áß¿äÇÑ °ÍÀº Go´Â CoreDNS¿¡ Á¦°øÇÏ´Â ¿öÅ©·Îµå(Workload)¸¦ Àß Ã³¸®ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
¾Æ¸¶µµ CoreDNS°¡ Á¦°øÇÏ´Â °¡Àå Áß¿äÇÑ ±â´ÉÀº ÄÁÅ×À̳Ê(Container) ÀÎÇÁ¶ó¿Í etcd, Äí¹ö³×Ƽ½º¿Í °°Àº ¿ÀÄɽºÆ®·¹À̼Ç(Orchestration) ½Ã½ºÅÛ°ú Åë½ÅÇÒ ¼ö ÀÖ´Â ºÎºÐÀÌ´Ù.
¡Ú ¿Å±äÀÌÀÇ ¸» ¡Ú
CoreDNS´Â Ŭ¶ó¿ìµå ³×ÀÌƼºê ȯ°æ¿¡ ¾Ë¸ÂÀº DNS ¼¹ö·Î Ŭ¶ó¿ìµå ³×ÀÌƼºê ÄÄÇ»Æà Àç´Ü(CNCF, Cloud Native Computing Foundation)¿¡¼ Á¹¾÷ÇÑ ÇÁ·ÎÁ§Æ®´Ù. ±âº»ÀûÀÎ DNS ¸í¼¼¸¦ ÁؼöÇØ ¹ü¿ë¼º°ú À¯¿¬¼º ¶§¹®¿¡ Äí¹ö³×Ƽ½º µî ´Ù¾çÇÑ Å¬·¯½ºÅÍ È¯°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ°í ¾ÆÆÄÄ¡ ¶óÀ̼¾½º¸¦ ¸í½ÃÇÑ ¿ÏÀüÇÑ ¿ÀǼҽº·Î ¹«·á·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
CoreDNSÀÇ ÀåÁ¡Àº Go ¾ð¾î·Î ÀÛ¼ºµÅ ¼³Á¤ÀÌ ºü¸£°í °£´ÜÇÏ´Ù´Â °ÍÀÌ´Ù. ¶ÇÇÑ Ç÷¯±×ÀÎÀ» ¸ðµâ ÇüÅ·ΠÀÛ¼ºÇÏ°í ÄÁÇDZ׸ʿ¡ ¹Ý¿µÇØ DNS ¼ºñ½º °Ë»ö¿¡ ´ëÇÑ ¼³Á¤À» ¼Õ½±°Ô º¯°æÇÒ ¼ö ÀÖÀ¸¸ç, Ç÷¯±×ÀÎÀ» ¿¬À̾î Àû¿ë °¡´ÉÇÑ Ã¼ÀÎ ±¸Á¶·Î ´Ù¾çÇÏ°Ô ±¸¼ºÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ·¯ÇÑ Ç÷¯±×ÀÎÀ» ÅëÇØ ¸ÞÆ®¸¯ ¸ð´ÏÅ͸µ ¿ª½Ã ¼Õ½±°Ô ¿¬µ¿ÇÒ ¼ö ÀÖ´Ù.
CoreDNS´Â Äí¹ö³×Ƽ½º¿Í ÇÁ·Î¸ÞÅ׿콺, Etcd µî À¯¸íÇÑ ¿ÀǼҽº¿ÍÀÇ Ç÷¯±×ÀÎÀ» ºñ·ÔÇØ ¸ÞÀÌÀú Ŭ¶ó¿ìµå»çÀÎ AWS, MS Azure, GCP¿¡¼ Á¦°ø ÁßÀÎ DNS ¼ºñ½º¿ÍÀÇ Ç÷¯±×ÀÎ ¿¬µ¿À» ÅëÇØ ¶Ù¾î³ ȣȯ¼ºÀ» °¡Áö°í ´Ù¾çÇÑ È¯°æ¿¡¼ »ç¿ëÀÌ °¡´ÉÇÏ´Ù.
ƯÈ÷ Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍÀÇ ±âº» DNS·Î ³»ÀåµÅ Àֱ⠶§¹®¿¡ Ŭ·¯½ºÅÍ ³»ºÎ µµ¸ÞÀÎ ±â¹ÝÀ¸·Î ¹ÙÀεùµÈ ¼ºñ½ºÀÇ ClusterIP³ª ÀÚÁÖ º¯°æµÇ´Â PODÀÇ IP¸¦ ´ë½ÅÇØ Á¶È¸°¡ °¡´ÉÇÑ ¿ëµµ·Î ¸¹ÀÌ »ç¿ëµÈ´Ù. ±×·¡¼ Äí¹ö³×Ƽ½º»ó¿¡¼ÀÇ ¼ºñ½º °Ë»ö ±â´ÉÀ» ±âº»ÀûÀ¸·Î ±¸ÇöÇÒ ¼ö ÀÖ¾î ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó¿¡ °É¸Â°Ô ±¸¼ºÇÏ°í °ü¸®ÇÒ ¼ö ÀÖ´Ù.
¿ªÀÚ´Â Äí¹ö³×Ƽ½º¸¦ ±â¹ÝÀ¸·Î ÄÁÅ×ÀÌ³Ê Ç÷§ÆûÀ» ±¸Ãà, ¿î¿µÇÑ °æÇèÀ» Åä´ë·Î CoreDNS¸¦ óÀ½ Á¢ÇÏ°í ½ÃÀÛÇÏ´Â ºÐµé²² µµ¿òµÇ°íÀÚ ¹ø¿ªÀ» ÁøÇàÇß´Ù. ¹ø¿ª °úÁ¤¿¡¼ CoreDNS¿¡´Â ¸¹Àº ¹öÀü º¯È°¡ ÀÖ¾ú°í, CNCF »ýÅ°è¿Í ÇÔ²² ´Ù¾çÇÑ À¯°ü ÇÁ·ÎÁ§Æ®¿Í ÅøÀÌ Áö±Ý ÀÌ ½Ã°£¿¡µµ °è¼Ó °³¹ßµÇ°í Àֱ⿡ ÀÌ ºÎºÐÀ» ÃÖ´ëÇÑ ¹Ý¿µÇÏ·Á°í ³ë·ÂÇß´Ù.
ÀÌ Ã¥Àº DNSÀÇ À̷аú ÇÔ²² ½Ç½À Áß½ÉÀ¸·Î CoreDNSÀÇ ±¸¼º ¿ä¼Ò¿Í Ư¡À» ¼³¸íÇϸç, °¡»ó¼¹ö¿Í Äí¹ö³×Ƽ½º ȯ°æ¿¡¼ CoreDNS °ü·Ã ±â´ÉÀ» ¸í·É¾î ±â¹ÝÀ¸·Î Á÷Á¢ ¼öÇàÇÒ ¼ö Àֱ⿡ CoreDNS¸¦ »ç¿ëÇغ¸°íÀÚ ÇÏ´Â ´Ù¾çÇÑ »ç¿ëÀÚ¿¡°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù.