## ÀÌ ¹®¼­´Â "¼­¹ö°ü¸®ÀÚ¸¦ À§ÇÑ ¸®´ª½º ³×Æ®¿öÅ©-(Ãâ)º£½ºÆ®ºÏ" Ã¥¿¡ ´ëÇÑ µ¶ÀÚÀÇ
## Áú¹® Áß, ºñ±³Àû ºñÁßÀÌ ÀÖ´Â Áú¹®°ú ´äº¯À» Á¤¸®ÇÏ¿© ¿Å°Ü³õÀº °ÍÀÔ´Ï´Ù.
##
## µ¶ÀÚÀÇ °³ÀÎ Á¤º¸ º¸È£¿Í ½ºÆÔ¸ÞÀÏÀ» ¹æÁöÇϱâ À§Çؼ­ À̸§°ú ¸ÞÀÏÁÖ¼Ò´Â
## Á¦¿Ü½ÃÄ×½À´Ï´Ù.
##
## Ã¥¿¡ ´ëÇÑ Áú¹®Àº °¡´ÉÇÑ
## http://www.linuxchannel.net/board/?table=qna
## ¿¡¼­ Áú¹®ÇØ ÁֽʽÿÀ.
[Á¦¸ñ] [3ÆÇ] BIND9 key, rndc.conf, named.conf ¼³Á¤¿¡ °üÇؼ­

1. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡ ¼³Á¤ÇÑ key´Â °¢°¢ ¾î¶² ¿ëµµ·Î »ç¿ëµÇ³ª¿ä?
2. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡¼­ server {} ±¸¹®ÀÇ key ¼³Á¤ÀÌ ´Ù¸¥°¡¿ä?
3. rndc¿Í nsupdate´Â ¾î¶»°Ô ´Ù¸¥°¡¿ä? ¸ðµÎ »ç¿ëÇØ¾ß ¸¸ Çϳª¿ä?
4. rndc.conf, named.conf ÆÄÀÏ¿¡¼­ key ºÎºÐ ¼³Á¤ ±¸ºÐ Á¤¸®



 
1. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡ ¼³Á¤ÇÑ key´Â °¢°¢ ¾î¶² ¿ëµµ·Î »ç¿ëµÇ³ª¿ä?

  rndc.conf :
  ÀÌ ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÑ key´Â localhostÀÇ rndc°¡ »ç¿ëÇÏ°í ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö¿¡
  ÀÎÁõ ¿äû½Ã »ç¿ëÇÏ´Â keyÀÔ´Ï´Ù.

  Áï, localhostÀÇ rndc°¡ rndc.conf ÆÄÀÏÀÇ server {} ±¸¹® ¶Ç´Â
  default-server¿¡ ¼³Á¤ÇÑ ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö(localhost Æ÷ÇÔ)¿¡ ´ëÇؼ­ ¾î¶²
  Á¦¾î ¸ÞÁöÁö¸¦ º¸³¾¶§ ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö·Î º¸³»´Â ÀÎÁõ keyÀÔ´Ï´Ù(ÀÎÁõ¼ö´Ü¿¡
  »ç¿ë). Á¦¾î ¸Þ½ÃÁö´Â stop, reload, status, .... µîÀÇ rndc ¸í·É¾î
  ·Î½á start ¸í·É¾î´Â ¾ø½À´Ï´Ù.

  ±× ´ë»óÀÌ µÇ´Â ¿ø°Ý ³×ÀÓ¼­¹öÀÇ named.conf ÆÄÀÏ¿¡¼­µµ ¶È°°Àº key°¡
  ÀÖ¾î¾ß ÇÕ´Ï´Ù(rndc ¿äû key¿Í ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö key°¡ °°¾Æ¾ß ÇÔ)

  Âü°í·Î, ±× ´ë»óÀÌ µÇ´Â ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö´Â rndc.conf ÆÄÀÏÀÇ server {} ±¸¹®
  À¸·Î ¼³Á¤Çϰųª rndcÀÇ -s ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù.

  named.conf :
  ÀÌ ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÑ key´Â localhostÀÇ named(³×ÀÓ¼­¹ö)°¡ »ç¿ëÇϸç,
  ÀÌ key·Î ¿ø°ÝÀÇ ´Ù¸¥ ³×ÀÓ¼­¹ö¿¡ ÀÎÁõÀ» ¿äûÇϰųª, ¿äûÀ» ¹ÞÀ» ¶§ »ç¿ëÇÏ´Â
  keyÀÔ´Ï´Ù.

  1)ÀÎÁõÀ» ¿äûÇÒ ¶§ :
  'ÀÎÁõÀ» ¿äûÇÒ ¶§'ÀÇ °æ¿ì´Â ¿¹¸¦ µé¿©, localhost°¡ 2Â÷ ³×ÀÓ¼­¹ö·Î½á 1Â÷
  ³×ÀÓ¼­¹öÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÒ ¶§ ÀÌ key·Î ÀÎÁõ ¿äûÇÒ °æ¿ì¸¦
  ÀǹÌÇÕ´Ï´Ù(±× ¿Ü¿¡ ¾î¶² query Àü¼ÛÇÒ ¶§µµ ¿äû¿¡ ¼ÓÇÔ)
  ¼³Á¤Àº server {} ±¸¹®À» »ç¿ëÇÏ¿© ¿äûÇÒ ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö ÁÖ¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù.

  ¿¹)
  key "key_name" {
	...;
  };
  server NS1_ip_addr { // 1Â÷ ³×ÀÓ¼­¹ö IP ÁÖ¼Ò, "¿Í "·Î ¹­Áö ¾ÊÀ½
	...;
	keys { "key_name"; }; // NS1_ip_addr·Î ³ª°¡´Â ¸ðµç ¿äûÀº key·Î ÀÎÁõ
	// ¶Ç´Â keys "key_name";
  };

  ±×·¯³ª, ¹Ýµå½Ã ²À ÀÌ key·Î ÀÎÁõÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÏÁö´Â
  ¾Ê½À´Ï´Ù.
  Áï key°¡ ¾Æ´Ñ È£½ºÆ®, ¶Ç´Â IPÁּҷεµ ¾ó¸¶µçÁö ÀÎÁõÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦
  ¹é¾÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ¹æ¹ýÀ» »ç¿ëÇÒ °æ¿ìÀÇ ¼³Á¤Àº 2Â÷ ³×ÀÓ¼­¹öÀÇ
  named.conf ÆÄÀÏ¿¡´Â key {} ±¸¹®À̳ª server {} ±¸¹®Àº ÇÊ¿ä¾øÀ¸¸ç, 1Â÷
  ³×ÀÓ¼­¹öÀÇ options {} ±¸¹®À̳ª °¢ zone {} ±¸¹®¿¡¼­
  'allow-transfer { 2Â÷³×ÀÓ¼­¹ö_IPÁÖ¼Ò; };' À¸·Î ¼³Á¤ÇÏ¸é ±×¸¸ÀÔ´Ï´Ù.

  2)ÀÎÁõÀ» ¿äû¹ÞÀ» ¶§ :
  'ÀÎÁõÀ» ¿äû¹ÞÀ» ¶§'ÀÇ °æ¿ì´Â ÁÖ·Î ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ rndc³ª ¿ø°ÝÀÇ
  ³×ÀÓ¼­¹ö ¶Ç´Â ¿ø°Ý(localhost)ÀÇ nsupdateÀ¸·Î ºÎÅÍ key¸¦ ÀÌ¿ëÇÑ ÀÎÁõ ¿äûÀ»
  ¹ÞÀº °æ¿ì¸¦ ÀǹÌÇÕ´Ï´Ù.

  - ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ rndc ¿äû : rndc stop, rndc status, ....
  - ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö ¿äû : zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇØ °¥¶§, ±âŸ query
  - ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ nsupdate ¿äû : zone µ¥ÀÌÅͺ£À̽º¸¦ µ¿ÀûÀ¸·Î °»½ÅÇÒ ¶§

  À̶§ÀÇ °æ¿ì´Â server {} ±¸¹®Àº »ç¿ëµÇÁö ¾ÊÀ¸¸ç(¼³Á¤µÇ¾î Àְųª ¾ø°Å³ª »ó°ü¾øÀ½),
  key {} ±¸¹®°ú controls {} ±¸¹® ¼³Á¤ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

  ¿¹)
  key "key_name" {
	...;
  };
  controls { // ÀÎÁõ ¿äûÀ» ¹ÞÀº ³×ÀÓ¼­¹ö¿¡¼­ ÀÎÁõ ¿äû¿¡ ´ëÇÑ ¾î¶² control
	inet 127.0.0.1 allow { localhost; "¿äûÀ» Çã¶ôÇÒ È£½ºÆ®"; } keys { "key_name"; };
  }; // 127.0.0.1ÀÇ 953¹ø Æ÷Æ®¹øÈ£ »ç¿ë

  ¸¸¾à localhostÀÇ rndc³ª ¿ø°ÝÀÇ rndc ¶Ç´Â ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö ¶Ç´Â ¿ø°ÝÀÇ
  nsupdate·ÎºÎÅÍ key¸¦ ÀÌ¿ëÇÑ ¾Æ¹«·± ÀÎÁõÀ» ¿äû¹ÞÁö ¾ÊÀ» °æ¿ì¿¡´Â key {} ±¸¹®°ú
  controls {} ±¸¹®Àº ÇÊ¿ä¾ø½À´Ï´Ù.

  ±×·¯³ª RPMÀ¸·Î ÆÐÅ°ÁöµÈ BIND9ÀÇ /etc/rc.d/init.d/named Á¦¾î ½ºÅ©¸³Æ®´Â ÃÖ¼ÒÇÑ
  localhost¿¡¼­ rndcÀÇ key¸¦ ÀÌ¿ëÇÑ ¿äû(rndc stop, rndc status, ... µîµî)À»
  ¹Þ¾Æ named¸¦ Á¾·áÇϱ⠶§¹®¿¡ key {} ±¸¹® ¼³Á¤°ú controls {} ±¸¹®ÀÌ ÇÊ¿äÇÕ´Ï´Ù.
  (¸¸¾à ÀÚ½ÅÀÌ Á÷Á¢ Á¦¾î½ºÅ©¸³Æ®¸¦ ¸¸µé¾î key ¾øÀÌ named¸¦ Á¾·áÇÒ ¼öµµ ÀÖÀ½)

  key¸¦ ¸¸µå´Â ¹æ¹ý :
  # dnssec-keygen -a HMAC-MD5 -b 512 -n HOST key_name

  Á¤¸® :
  ÀÌ keyÀÇ »ç¿ë ¸ñÀûÀº localhostÀÇ rndc, named°¡ ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö¿¡ Á¢¼ÓÇÏ¿© ¾î¶²
  Çൿ(named Á¦¾î, zone µ¥ÀÌÅͺ£À̽ºÀÇ µ¿ÀûÀÎ °»½Å, ±âŸ query)À» ÃëÇÒ¶§ »ç¿ëµÇ´Â
  ÀÎÁõ ¹æ¹ý ÁßÀÇ Çϳª·Î½á localhost¿Í ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö¿¡ µ¿ÀÏÇÑ key¸¦ °¡Áö°í ÀÖ¾î¾ß
  ÇÕ´Ï´Ù.
  Âü°í·Î nsupdate °°Àº °æ¿ì rndc.conf ¶Ç´Â named.conf ÆÄÀÏ¿¡ ¼³Á¤ÇÑ key¸¦
  Á÷Á¢ÀûÀ¸·Î ÀÌ¿ëÇÏÁö ¾Ê°í dnssec-keygenÀ¸·Î ¸¸µç ÆÄÀÏÀÇ key¸¦ ÀÌ¿ëÇÕ´Ï´Ù.


 
2. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡¼­ server {} ±¸¹®ÀÇ key ¼³Á¤ÀÌ ´Ù¸¥°¡¿ä?

  rndc.conf ÆÄÀÏÀÇ server {} ±¸¹®Àº named.conf ÆÄÀÏÀÇ server {} ±¸¹®°ú ¾à°£
  »ç¿ë¹ýÀÌ ´Ù¸¨´Ï´Ù.
  rndc.conf ÆÄÀÏÀÇ ¼³Á¤ ¹®¹ýÀº named.conf ÆÄÀÏ ¼³Á¤ ¹®¹ý°ú ºñ½ÁÇÏÁö¸¸
  ÀüÀûÀ¸·Î °°Áö ¾Ê½À´Ï´Ù.
  ¿¹¸¦ µé¸é, rndc.conf ÆÄÀÏ¿¡¼­ include ±¸¹®Àº »ç¿ëÇÏ¸é ¿¡·¯¸¦ ³½ °æ¿ì°¡ ±×
  ÀÏ·ÊÀÔ´Ï´Ù. rndc.conf ÆÄÀÏ ¼³Á¤ ¹®¹ýÀº 'man rndc.conf'¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

  rndc.conf :
  server remote_NS_ip_addr_or_host { // IP ÁÖ¼Ò·Î ¼³Á¤ÇÒ ¶§´Â "¿Í "·Î ¹­¾îÁÜ
	key "key_name"; /*** keys°¡ ¾Æ´Ï¶ó key ÀÓ ***/
  };

  ÀÌ server {} ±¸¹®Àº localhostÀÇ rndc°¡ ¼³Á¤ÇÑ ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö(localhostÆ÷ÇÔ)
  ¿¡ "key_name" key·Î ÀÎÁõÇÏ¿© rndc stop, rndc reloadµî°ú °°Àº ¸í·É¾î¸¦ »ç¿ëÇÏ°Ú´Ù
  ´Â ÀǹÌÀÔ´Ï´Ù.

  key¸¦ »ç¿ëÇÏ´Â ÁÖü´Â locahostÀÇ rndcÀÔ´Ï´Ù.

  named.conf :
  server ip_addr { // host nameÀÌ ¾Æ´Ñ IP ÁÖ¼Ò·Î "¿Í "¾øÀÌ ¼³Á¤ÇØ¾ß ÇÔ
	keys { "key_name"; }; /*** ÀÌ ¶§´Â key°¡ ¾Æ´Ï¶ó keys ÀÓ ***/
	// keys "key_name"; /*** À̰͵µ °¡´É ***/
  };

  ÀÌ server {} ±¸¹®Àº localhostÀÇ ³×ÀÓ¼­¹ö°¡ ¿ø°ÝÀÇ ip_addrÀ¸·Î ¼³Á¤ÇÑ ³×ÀÓ¼­¹ö¿¡
  ´ëÇؼ­ "key_name" key·Î ÀÎÁõÇÏ°Ú´Ù´Â ÀǹÌÀÔ´Ï´Ù.
  Áï, ÀÌ ¼³Á¤Àº ÁÖ·Î localhostÀÇ 2Â÷ ³×ÀÓ¼­¹ö°¡ ¿ø°ÝÀÇ ip_addrÀ¸·Î ¼³Á¤ÇÑ 1Â÷
  ³×ÀÓ¼­¹ö¿¡ ÀÌ key·Î ÀÎÁõÇÏ¿©, zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÒ ¶§¿¡ 2Â÷ ³×ÀÓ¼­¹ö¿¡
  ¼³Á¤ÇÏ´Â ³»¿ëÀÔ´Ï´Ù. key·Î ÀÎÁõÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷(µ¿±âÈ­)ÇÏ´Â ¹æ¹ýÀº
  Ã¥ p.409 [ÆÁ]¶õ¿¡ ÀÖ½À´Ï´Ù.

  key¸¦ »ç¿ëÇÏ´Â ÁÖü´Â locahostÀÇ ³×ÀÓ¼­¹ö(ÁÖ·Î 2Â÷ ³×ÀÓ¼­¹ö)ÀÔ´Ï´Ù.

  named.conf ÆÄÀÏ¿¡¼­ »ç¿ëµÇ´Â server {} ±¸¹® »ç¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

  server ip_addr {
	[ bogus yes_or_no ; ]
	[ provide-ixfr yes_or_no ; ]
	[ request-ixfr yes_or_no ; ]
	[ edns yes_or_no ; ]
	[ transfers number ; ]
	[ transfer-format ( one-answer | many-answers ) ; ]]
	[ keys { string ; [ string ; [...]] } ; ]
  };

  server {} ±¸¹®ÀÇ ¿ëµµ :
  server {} ±¸¹®Àº localhostÀÇ rndc ¶Ç´Â named°¡ ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö¿¡°Ô ¾î¶² ¿äûÀ»
  ÇÒ¶§ »ç¿ëµÇ´Â ±¸¹®ÀÔ´Ï´Ù.

  - ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ rndc ¿äû : rndc stop, rndc status, ....
  - ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö ¿äû : zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇØ °¥¶§, ±âŸ query

  *ÁÖ)
  Ã¥¿¡¼­´Â rndc.conf ÆÄÀÏÀÇ key ¼³¸íÀÌ À߸øµÇ¾î ÀÖÀ¸¹Ç·Î ¾Æ·¡ URLÀÇ
  Á¤¿À¸¦ È®ÀÎÇϱ⠹ٶø´Ï´Ù.

  http://linuxchannel.net/books/bookmisp/bookmisp-dns-key.txt


 
3. rndc¿Í nsupdate´Â ¾î¶»°Ô ´Ù¸¥°¡¿ä? ¸ðµÎ »ç¿ëÇØ¾ß ¸¸ Çϳª¿ä?

  rndc :
  rndc´Â 'the Remote Name Daemon Control'·Î½á ¿ø°Ý ³×ÀÓ¼­¹ö¸¦ Á¦¾îÇÏ´Â °ü¸®ÀÚ¿ë
  À¯Æ¿¸®Æ¼ ÀÔ´Ï´Ù.

  Áï ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ ³×ÀÓ¼­¹ö¸¦ reload Çϰųª refresh, stop, flush, status
  µîµîÀÇ ¸í·É¾î ¸Þ½ÃÁö¸¦ º¸³» Á¦¾îÇÏ´Â ÅøÀÔ´Ï´Ù.

  [»ç¿ë¹ý]
  rndc [-c config] [-s server] [-p port] [-y key] command [command...]

  [command]
  reload
  reload zone
  refresh zone
  reconfig
  stats
  querylog
  dumpdb
  stop
  halt
  trace
  trace level
  notrace
  flush
  status

  -c ¿É¼ÇÀÌ ¾ø´Ù¸é /etc/rndc.conf ÆÄÀÏÀÇ ³»¿ëÀÌ Àû¿ëµÇ¸ç, ±âº»ÀûÀ¸·Î key¸¦ »ç¿ëÇÕ´Ï´Ù.

  RPMÀ¸·Î ÆÐÅ°ÁöµÈ BIND9ÀÇ /etc/rc.d/init.d/named Á¦¾î ½ºÅ©¸³Æ®´Â localhost¿¡¼­
  rndcÀÇ key¸¦ ÀÌ¿ëÇÏ¿© localhost ÀÚ½ÅÀÇ named¸¦ Á¾·áÇϱ⠶§¹®¿¡ ÃÖ¼ÒÇÑ ´ÙÀ½°ú °°Àº
  ¼³Á¤ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

  ¿¹) localhostÀÇ rndc.conf ÆÄÀÏ :
  key rndc_key {
	algorithm "hmac-md5";
	secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
  };
  options {
	default-server localhost;
	default-key    rndc_key;
  };

  ¿¹) localhost named.conf ÆÄÀÏ :
  key rndc_key {
	algorithm "hmac-md5";
	secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
  };
  controls { // 127.0.0.1ÀÇ 953¹ø Æ÷Æ® »ç¿ë
	inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
  };

  ¿¹) ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö named.conf ÆÄÀÏ :
  key rndc_key {
	algorithm "hmac-md5";
	secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
  };
  controls { // 127.0.0.1ÀÇ 953¹ø Æ÷Æ® »ç¿ë
	inet 127.0.0.1 allow { localhost; Çã¶ôÇÒ_È£½ºÆ®;} keys { rndc_key; };
  };

  ÀÌ¿Í °°Àº ¼³Á¤ÀÌ µÇ¾î ÀÖ´Ù¸é,

  # rndc reload
  # rndc staus
  # rndc stop

  ¿Í °°Àº ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

  ¸¸¾à rndc¸¦ ÀÌ¿ëÇÏÁö ¾Ê°í named ½ÃÀÛ, Á¾·áÇÒ ¼ö ÀÖ´Ù¸é(¾ó¸¶µçÁö °¡´ÉÇÔ) key ¼³Á¤Àº
  ¹Ýµå½Ã ÇÊ¿äÇÏÁö´Â ¾Ê½À´Ï´Ù. ÀÌ key´Â Á¦¾î ¸Þ½ÃÁö(¸í·É¾î)¸¦ º¸³»¾î named¸¦ Á¦¾îÇÒ
  ÀÎÁõ¿¡ °üÇÑ ÇÑ°¡Áö ¹æ¹ýÀÔ´Ï´Ù.
  
  µû¶ó¼­ ¹Ýµå½Ã ²À »ç¿ëÇؾ߸¸ ÇÏ´Â ¾î¶² ±ÔÄ¢Àº ¾øÁö¸¸ RPMÀ¸·Î ÆÐÅ°ÁöµÈ BIND´Â ±âº»Àû
  À¸·Î »ç¿ëÇϵµ·Ï ÆÐŰ¡µÇ¾î ÀÖÀ» »ÓÀÔ´Ï´Ù.

  nsupdae :
  nsupdate´Â localhost³ª ¿ø°ÝÀÇ ³×ÀÓ¼­¹öÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ µ¿ÀûÀ¸·Î
  °»½ÅÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇÏ´Â °ü¸®ÀÚ¿ë À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù.

  1)key ¾øÀÌ µ¿ÀûÀ¸·Î ¿ø°ÝÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ °»½ÅÇÒ ¶§ :
  ¿ø°ÝÀÇ ³×ÀÓ¼­¹öÀÇ named.conf ÆÄÀÏÀº ÃÖ¼ÒÇÑ ´ÙÀ½°ú °°Àº ¼³Á¤ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

  ¿¹) ¿ø°ÝÀÇ named.conf ÆÄÀÏ :
  zone aaa.co.kr {
	...;
	allow-update { µ¿ÀûÀ¸·Î_°»½Å°¡´ÉÇÑ_È£½ºÆ®µé; };
  };
  
  'µ¿ÀûÀ¸·Î_°»½Å°¡´ÉÇÑ_È£½ºÆ®µé' ºÎºÐ¿¡´Â nsupdate ¸í·ÉÀ» º¸³»´Â È£½ºÆ® IP ÁÖ¼Ò³ª È£½ºÆ®
  À̸§À» Àû¾îÁÖ¸é µË´Ï´Ù.

  ¿¹) nsupdate »ç¿ë ¿¹(´ëÈ­½Ä) :
  # nsupdate
  > server 123.123.123.123	/*** ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö IP ¶Ç´Â È£½ºÆ® À̸§ ***/
  > zone aaa.co.kr.		/*** ¾÷µ¥ÀÌÆ®ÇÒ zone ÁöÁ¤ ***/
  > prereq nxdomain w3.aaa.co.kr. /*** ÇöÀç È£½ºÆ®(w3)°¡ ¾øÀ½À» Á¶°ÇÀ¸·Î ¾Ë¸² ***/
  > update add w3.aaa.co.kr. 86400 CNAME www.aaa.co.kr. /*** w3 È£½ºÆ® Ãß°¡ ***/
  > show			/*** ÇöÀç±îÁö »ç¿ëÇÑ ¸í·É¾î º¸±â ***/
  > send			/*** ¸í·É¾î¸¦ 123.123.123.123¿¡°Ô Àü¼ÛÇÔ ***/
  > quit			/*** Á¾·áÇÔ ***/

  ±âŸ ÀÚ¼¼ÇÑ ¸í·É¾î´Â Ã¥ p.458¿¡ ¼³¸íµÇ¾î ÀÖÀ¸¹Ç·Î Âü°íÇϵµ·Ï Çϼ¼¿ä.
  (¶Ç´Â man nsupdate)

  ¿¹) nsupdate »ç¿ë ¿¹(ºñ´ëÈ­½Ä) :
  # cat nsupdate-aaa.co.kr.cmd /*** ÆÄÀÏÀ» Á÷Á¢ ÀÛ¼ºÇÔ ***/
  server 123.123.123.123
  zone aaa.co.kr.
  prereq nxdomain w3.aaa.co.kr.
  update add w3.aaa.co.kr. 86400 CNAME www.aaa.co.kr.
  show
  send
  quit
  #
  # nsupdate nsupdate-aaa.co.kr.com

  2)key¸¦ »ç¿ëÇÏ¿© µ¿ÀûÀ¸·Î ¿ø°ÝÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ °»½ÅÇÒ ¶§ :
  ¿ì¼± localhostÀÇ nsupdate°¡ »ç¿ëÇÒ key¸¦ ¸¸µé°í ÀÌ key¸¦ ¿ø°ÝÀÇ named.conf
  ÆÄÀÏ¿¡ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ¿¹Á¦¿¡¼­´Â key À̸§À» 'mykey'·Î °¡Á¤ÇÔ.

  # dnssec-keygen -a HMAC-MD5 -b 512 -n HOST mykey
  #
  # ls
  Kmykey.+157+46093.key		/*** ¸Å¹ø ÆÄÀÏ À̸§ÀÌ ´Ù¸§ ***/
  Kmykey.+157+46093.private

  xxx.privateÀ» ¿­¾î¼­ key ºÎºÐÀ» ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö¿¡ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÕ´Ï´Ù.

  ¿¹) ¿ø°ÝÀÇ named.conf ÆÄÀÏ :
  key mykey {
	algorithm "hmac-md5";
	secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
  };
  controls { // 127.0.0.1ÀÇ 953¹ø Æ÷Æ® »ç¿ë
	inet 127.0.0.1 allow { localhost; Çã¶ôÇÒ_È£½ºÆ®;} keys { mykey; };
  };
  zone aaa.co.kr {
	...;
	allow-update { key "mykey"; }; /*** keys°¡ ¾Æ´Ï¶ó key ***/
  };

  ¿¹) nsupdate »ç¿ë ¿¹ :
  # ls		/*** ´ÙÀ½ µÎ°³ÀÇ ÆÄÀÏ ¸ðµÎ ÀÖ¾î¾ß ÇÔ ***/
  Kmykey.+157+46093.key
  Kmykey.+157+46093.private
  #
  # nsupdate -k Kmykey.+157+46093.private
  > nsupdate

  ³ª¸ÓÁö nsupdate ¸í·É¾î´Â 1)¹ø°ú µ¿ÀÏÇϹǷΠ»ý·«ÇÕ´Ï´Ù.

  Á¦´ë·Î ¾÷µ¥ÀÌÆ®µÇ¾ú´ÂÁö È®ÀÎÇÏ´Â ¹æ¹ýÀº nslookup, dig, host·Î Á÷Á¢ È®ÀÎÇØ º¸¼¼¿ä.
  ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö¿¡¼­´Â Àӽ÷Πzone-file.jnl ÆÄÀÏÀ» ¸¸µé¸ç ¸î ºÐÀÌ Áö³ª¸é
  ÀÚµ¿ÀûÀ¸·Î zone-file(µ¥ÀÌÅͺ£À̽º ÆÄÀÏ)ÀÌ °»½ÅÇϱ⠶§¹®¿¡ ´Ù¸¥ Á¶Ä¡¸¦ ÃëÇÒ ÇÊ¿ä´Â
  ¾ø½À´Ï´Ù.

  *ÁÖÀÇÇÒ Á¡)
  ¿ø°ÝÀÇ ³×ÀÓ¼­¹öÀÇ zone µ¥ÀÌÅͺ£À̽º µð·ºÅ丮¿Í ÇØ´ç zone µ¥ÀÌÅͺ£À̽º ÆÄÀÏÀº
  namedÀÇ À¯Àú(¿¹:named, ps -ef | grep named·Î È®ÀÎ)¿¡°Ô ¾²±â ±ÇÇÑ(Æ۹̼Ç)ÀÌ ÀÖ¾î¾ß
  ÇÕ´Ï´Ù. ±×·¡¾ß ¾÷µ¥ÀÌÆ®µÇ±â ¶§¹®¿¡...

  *Âü°í·Î)
  2Â÷ ³×ÀÓ¼­¹ö´Â 1Â÷ ³×ÀÓ¼­¹ö¿¡ ½Ç½Ã°£À¸·Î Á¢¼ÓÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÏ¿©
  ÀÚ½Å(2Â÷ ³×ÀÓ¼­¹ö)ÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ °»½ÅÇؾßÇϱ⠶§¹®¿¡ allow-update { none; }
  ¿Í °°Àº ±¸¹®À» ¼³Á¤ÇÏ¸é ¾ÈµË´Ï´Ù.


  Á¤¸® :
  - rndc : localhost³ª ¿ø°ÝÀÇ ³×ÀÓ¼­¹ö¿¡ stop, reload, staus µîÀÇ Á¦¾î ¸Þ½ÃÁö¸¦ º¸³¾¶§
  - nsupdate : localhost³ª ¿ø°ÝÀÇ ³×ÀÓ¼­¹öÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ µ¿ÀûÀ¸·Î °»½ÅÇÏ°íÀÚ ÇÒ ¶§

  µû¶ó¼­ ³×ÀÓ¼­¹ö¸¦ ¿î¿µÇÒ ¶§ ¹Ýµå½Ã ÀÌ µÎ°³ÀÇ À¯Æ¿¸®Æ¼´Â ÇÊ¿äÇÏÁö´Â ¾ÊÁö¸¸ rndc¸¦
  ÀÌ¿ëÇÏ¿© localhostÀÇ named¸¦ Á¦¾îÇÒ »ÓÀÔ´Ï´Ù.


 
4. rndc.conf, named.conf ÆÄÀÏ¿¡¼­ key ºÎºÐ ¼³Á¤ ±¸ºÐ Á¤¸®

  address_match_list = address_match_list_element ;
	[ address_match_list_element; ... ]

  address_match_list_element = [ ! ] (ip_address [/length] |
	key key_id | acl_name | { address_match_list } )

  *ÁÖ)
  ´ÙÀ½ Ç¥¿¡¼­ address_match_list·Î ¼³Á¤°¡´ÉÇÑ ±¸¹®¿¡¼­ key·Î ¼³Á¤ÇÒ °æ¿ì,
  keys "key_name"ÀÌ ¾Æ´Ï¶ó key "key_name"ÀÔ´Ï´Ù.
named.conf rndc.conf
key "key_name" {
      ...;
};
or
include "/etc/rndc.conf";

º¸Åë include "/etc/rndc.conf";·Î ¼³Á¤µÇ¾î ÀÖÀ½.

key "key_name" {} ±¸¹®Àº named.conf¿Í
µ¿ÀÏÇÏÁö¸¸ include ±¸¹®À» »ç¿ëÇÒ ¼ö ¾ø±â
¶§¹®¿¡ Á÷Á¢ ±¸¹®À» ¼³Á¤ÇØ¾ß ÇÔ.
server ip_addr {
      ...;
      keys { "key_name"; };
      // keys "key_name"; // À̰͵µ °¡´É
};

*ÁÖ)
ip_addr ºÎºÐ¿¡ host_nameÀ̳ª "¿Í "·Î ¹­¾î¼­ ¼³Á¤ÇÏ¸é ±¸¹®¿¡·¯°¡ ³ª¹Ç·Î "¾øÀÌ ip Áּҷθ¸ ¼³Á¤ÇØ¾ß ÇÔ

server ip_addr_or_host_name {
      key "key_name";
};

*ÁÖ)
ip_addr_or_host_name ºÎºÐ¿¡ ip_addr·Î ¼³Á¤ÇÒ °æ¿ì "¿Í "·Î ¹­¾îÁà¾ß ±¸¹®¿¡·¯°¡ ¾øÀ½

acl acl-name {
      address_match_list
};
-
controls {
      inet ( ip_addr | * ) [ port ip_port ]
      allow { address_match_list }
      keys { key_list };
      [ inet ...; ]
};

*ÁÖ) key_list¿¡ "key_name"Çϳª ¶Ç´Â ';'·Î ±¸ºÐÇÏ¿© ¿©·¯°³ ¼³Á¤ÇÔ.

-
allow-notify { address_match_list };
allow-query { address_match_list };
allow-transfer { address_match_list };
allow-recursion { address_match_list };
allow-v6-synthesis { address_match_list };
blackhole { address_match_list };
listen-on { address_match_list };
listen-on-v6 { address_match_list };

*ÁÖ) options {} ±¸¹®ÀÇ sub ±¸¹®¿¡ ¸ðµÎ ¼ÓÇÔ.

-
allow-notify { address_match_list };
allow-query { address_match_list };
allow-transfer { address_match_list };
allow-update { address_match_list };
update-policy { update_policy_rule [...] };
allow-update-forwarding { address_match_list };
masters { ip_addr [key "key_name"]; [...] };

*ÁÖ) zone {} ±¸¹®ÀÇ sub ±¸¹®¿¡ ¸ðµÎ ¼ÓÇÔ.

-
match-clients { address_match_list };
match-destinations { address_match_list };

*ÁÖ) view {} ±¸¹®ÀÇ sub ±¸¹®¿¡ ¸ðµÎ ¼ÓÇÔ.

-