Á¦ ¸ñ:[9908]³×Æ®¿öÅ©Á¤º¹ÀÇ Ã¹°ÉÀ½(1) [241] 1999-08-31 14:22 ³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹ °ÉÀ½!(1) NMSÀÇ °³³ä ³×Æ®¿öÅ©¿Í ºÐ»ê ½Ã½ºÅÛÀº Á¤º¸È­ »çȸÀÇ ÁßÃßÀûÀÎ ¿ªÇÒÀ» ´ã´çÇÏ°í ÀÖÀ¸¸ç ±× Á߿伺ÀÌ ³¯·Î Ä¿Áö°í ÀÖ´Ù. ÀÌ¿¡µû¶ó ¾ó¸¶ ÀüºÎÅÍ ¾ÈÀüÇÏ°í È¿À²ÀûÀÎ ³×Æ®¿ö Å© ȯ°æÀ» À§ÇÑ °ü¸®ÀÇ °³³äÀÌ Áß¿äÇÏ°Ô ´ëµÎµÇ°í ÀÖ´Ù. ÀÌ¿¡ ¿¬À縦 ÅëÇØ ÀÎ ÅÍ³Ý È¯°æ¿¡¼­ÀÇ ³×Æ®¿öÅ© °ü¸® ½Ã½ºÅÛ¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ ³»¿ëÀ» »ìÆ캸µµ·Ï ÇÏ °Ú´Ù. À̹ø È£¿¡¼­´Â ³×Æ®¿öÅ© °ü¸® ½Ã½ºÅÛÀÇ °³³ä°ú À̸¦ ±â¼úÇϱâ À§ÇÑ ¾ð¾î ÀÎ ASN.1(Abstract Syntax Notation.1)¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú´Ù. ³ëÁ¤¹Î Çѱ¹Ç×°ø´ëÇб³ Ç×°øÅë½ÅÁ¤º¸°øÇаú ´ëÇпø hmask@esc.cl.hangkong.ac.kr µðÁöÅÐ ½Ã´ë¸¦ ¸Â¾Æ ´ëºÎºÐÀÇ ´ë±â¾÷°ú °ü°ø¼­¿¡¼­ ³×Æ®¿öÅ©¸¦ ±â¹ÝÀ¸·Î ÁÖ¿ä ¾÷¹«¸¦ ó¸®ÇÏ°í ÀÖ´Ù. µû¶ó¼­ ³×Æ®¿öÅ©°¡ ´Ù¿îµÈ´Ù°Å³ª °©Àڱ⠼ӵµ°¡ ¶³¾îÁø ´Ù¸é ´Ü¼øÇÑ ¹®Á¦°¡ ¾Æ´Ï¶ó ±¹°¡ÀûÀÎ ¹®Á¦°¡ µÉ ¼ö ÀÖ´Ù. ÀÌ°°Àº ÀÌÀ¯·Î 21¼¼ ±â ±â¾÷ ÄÄÇ»Æà ȯ°æÀÇ ÀÎÇÁ¶ó¶ó°í ÇÒ ¼ö ÀÖ´Â ³×Æ®¿öÅ©ÀÇ Á߿伺Àº ³ª³¯ÀÌ Ä¿ Áö°í ÀÖ´Ù. ³×Æ®¿öÅ© °ü¸®ÀÇ °³¿ä ³×Æ®¿öÅ©´Â ÀÎÅͳÝÀÇ º¸ÆíÈ­¿Í ÇÔ²² ±Þ¼Óµµ·Î ¹øÁö°í ÀÖ´Ù. ¶ÇÇÑ µ¥ÀÌÅ͸Á (Data Network)°ú ±âÁ¸ Åë½Å¸Á(Telecom m unication Network)ÀÇ ÅëÇÕ°ú ¼­·Î ´Ù¸¥ ½Ã½ºÅÛ, ³×Æ®¿öÅ© Àåºñ, ¿î¿µÃ¼°è(Operating System), Åë½Å±Ô¾à(Protocol) µîÀÌ º¹ÀâÇÏ°Ô ¹­¿© ÀÖÀ¸¸ç À̸¦ »ç¿ëÇÏ´Â ¼­ºñ½º¿Í »ç¿ëÀÚ°¡ ±Þ°ÝÇÏ°Ô Áõ°¡ÇÏ ¿© Á¡Á¡ ±Ô¸ð°¡ Ä¿Áö°í ÀÖ´Ù(±×¸² 1). µû¶ó¼­ ¾ÈÁ¤ÀûÀÌ°í È¿À²ÀûÀÎ ³×Æ®¿öÅ© ȯ °æÀ» Á¦°øÇϱâ À§Çؼ­ ³×Æ®¿öÅ© »ó¿¡ Á¸ÀçÇÏ´Â ´Ù¾çÇÑ ÀÚ¿øµéÀ» ¸ð´ÏÅ͸µÇÏ°í Á¦¾îÇÏ´Â ³×Æ®¿öÅ© °ü¸®ÀÇ °³³äÀÌ ÇÊ¿äÇÏ°Ô µÇ¾ú´Ù. ³×Æ®¿öÅ© °ü¸®ÀÇ °³³äÀ» ¼¼ºÐÈ­ ½ÃÄѺ¸¸é ´ÙÀ½°ú °°´Ù. ¨ç Àü»ê ÀÚÀ©ÀÇ Á߿伺ÀÌ Ä¿Áü ³×Æ®¿öÅ©¿Í ºÐ»êµÈ Àü»ê ÀÚ¿øµéÀº ±× ´Üü¿¡¼­ °¡Àå Áß¿äÇÑ ¿ªÇÒÀ» ¼öÇàÇÒ »Ó ¸¸ ¾Æ´Ï¶ó ÀÚ»êÀ¸·Î¼­µµ Á߿伺ÀÌ Ä¿Áö°Ô µÇ¾î Àü»êÀÚ¿ø ÀÚüµµ È¿À²ÀûÀÎ °ü¸® ¸¦ ÇÊ¿ä·Î ÇÏ°Ô µÇ¾ú´Ù. ¨è º¹ÀâÇØÁø ³×Æ®¿öÅ© °ü¸® ±¸Á¶ ´Ù¾çÇÑ ³×Æ®¿öÅ© ±¸¼º¿ä¼Ò¿Í ÀÎÅÍÆäÀ̽º, ÇÁ·ÎÅäÄÝÀÇ »ç¿ë°ú ¼­ºñ½º·Î ÀÎÇØ ³× Æ®¿öÅ©°¡ ÇÑÃþ º¹ÀâÇØÁ® °ü¸®°¡ ¾î·Á¿öÁ³´Ù(±×¸² 2). ¨é ¼­ºñ½º °³¼± ³×Æ®¿öÅ©¸¦ ÀÌ¿ëÇÏ´Â ±Ô¸ð°¡ Ä¿Áö°í ÀÌ¿¡µû¶ó ÀÚ¿ø°ú Á¤º¸°¡ Áõ°¡ÇÔ¿¡ µû¶ó ¾È Á¤ÀûÀÎ °í¼Ó ¼­ºñ½º¸¦ ¿øÇÏ°Ô µÇ¾ú´Ù. ¨ê »ç¿ëÀÚÀÇ ´Ù¾çÇÑ ¿ä±¸ ÃæÁ· ¼º´É, °¡µ¿À²(Availablity), º¸¾È(Security) µî¿¡¼­ »ç¿ëÀÚÀÇ ´Ù¾çÇÑ ¿ä±¸¸¦ ¸¸Á· ½ÃÄÑ¾ß ÇÑ´Ù. ¨ë ÀÚ¿øÀÇ È°¿ë¼º(Utilization) Áõ´ë ³×Æ®¿öÅ©¿¡ ¼Ò¿äµÇ´Â °æºñ¸¦ Á¶ÀýÇϱâ À§ÇØ ºÐ»êµÈ ³×Æ®¿öÅ© ÀÚ¿øÀÇ È°¿ë¼ºÀ» ¸ð´ÏÅ͸µÇÏ°í Á¦¾îÇÏ´Â °ÍÀÌ ÇÊ¿äÇØÁ³´Ù. ³×Æ®¿öÅ© °ü¸® ½Ã½ºÅÛ ³×Æ®¿öÅ© °ü¸® ½Ã½ºÅÛ(ÀÌÇÏ NMS)Àº ³×Æ®¿öÅ© »óÀÇ ÀÚ¿øµéÀ» ¸ð´ÏÅ͸µÇÏ°í Á¦ ¾îÇϱâ À§ÇÑ µµ±¸·Î ³×Æ®¿öÅ© °ü¸® Á¤º¸¸¦ ÀÔ·Â¹Þ¾Æ Àû´çÇÑ °ü¸® µ¿ÀÛÀ» ÇÑ´Ù (±×¸² 3). NMS´Â Çϵå¿þ¾î ¶Ç´Â ¼ÒÇÁÆ®¿þ¾î·Î ±¸¼ºµÇ¸ç ±âÁ¸ÀÇ ³×Æ®¿öÅ© ÀÚ¿ø ¿¡ µ¡ºÙ¿© »ç¿ëµÈ´Ù. ³×Æ®¿öÅ© °ü¸® ½Ã½ºÅÛÀÇ ±¸Á¶ NMS´Â °ü¸®ÀÚ°¡ ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â °£´Ü¸í·áÇÑ ÀÎÅÍÆäÀ̽º·Î ±¸¼ºµÇ¾î¾ß ÇÏÁö¸¸ Àüü ³×Æ®¿öÅ©¸¦ ÀÏ°üµÈ ±¸Á¶·Î »ìÆ캸±â À§Çؼ­´Â ¸ðµç ³×Æ®¿öÅ© °ü¸® ¾÷¹«¸¦ ¼öÇàÇÒ ¼ö ÀÖÀ» ¸¸Å­ ±â´ÉÀÌ °­·ÂÇØ¾ß ÇÑ´Ù. À̸¦ À§ÇØ NMS´Â Àüü ½Ã½ºÅÛ¿¡¼­ °ü¸®ÇÏ´Â ³×Æ®¿öÅ© ¿ä¼ÒÀÇ °¢ ÁöÁ¡°ú ƯÁ¤ ÇÑ ¼Ó¼º¿¡ ÁÖ¼Ò¿Í À̸§À» ÁöÁ¤ÇÏ°í, ¹Ý´ë·Î ÀÛµ¿ÇÏ´Â ³×Æ®¿öÅ© ¿ä¼ÒµéÀº ÁÖ±â ÀûÀ¸·Î ÀÚ½ÅÀÌ °¡Áø Á¤º¸¸¦ Áß¾Ó Á¦¾î ¼¾ÅÍ¿¡ Á¦°øÇÏ´Â ±¸Á¶¸¦ ÃëÇÑ´Ù. ÀÌ·± ±¸Á¶¸¦ °ü¸®ÀÚ-´ë¸®ÀÚ(Manager-Agent Paradigm) ±¸Á¶¶ó°í ÇÑ´Ù(±×¸² 4). ³×Æ®¿öÅ© °ü¸® ½Ã½ºÅÛÀÇ ±¸¼º NMS´Â ¿¡ÀÌÀüÆ®(Agent)¿Í ¸Å´ÏÀú(Manager)·Î ³ª´µ¾îÁö¸ç NME¿Í NMA·Î ÀÌ·ç¾îÁ® ÀÖ´Ù(±×¸² 5). NME(Net work Management Entity)´Â ½ÇÁ¦ ¿¡ÀÌÀüÆ® ÀÇ ¿ªÇÒÀ» ¼öÇàÇÏ´Â °´Ã¼·Î ³×Æ®¿öÅ© ÀÚ¿øµé¿¡ ´ëÇÑ Á÷Á¢ÀûÀÎ °ü¸®¸¦ ÇÑ´Ù. ¿ö Å©½ºÅ×À̼Ç(Workstation), ºê¸´Áö(Bridge), ¶ó¿ìÅÍ, PC¸¦ ºñ·ÔÇؼ­ ±âŸ °ü¸®µÇ ´Â ½Ã½ºÅÛ¿¡ Á¸ÀçÇϸç, ³×Æ®¿öÅ©¿Í °ü·ÃµÈ Á¤º¸¸¦ ¼öÁýÇÏ¿© ÀúÀåÇÏ°í ¸Å´ÏÀú·Î ºÎÅÍ ¿äûÀÌ µé¾î¿À¸é ÀÚ½ÅÀÌ °ü¸®ÇÏ´Â Á¤º¸¸¦ º¸³»ÁØ´Ù. NMA(Network Management Application)´Â ¸Å´ÏÀúÀÇ ¿ªÇÒÀ» ¼öÇàÇÏ´Â ÀÀ¿ëÇÁ ·Î±×·¥À¸·Î ¿¡ÀÌÀüÆ®°¡ °ü¸®ÇÏ´Â °´Ã¼ÀÇ ³»¿ëµéÀ» ¼öÁýÇؼ­ Àüü ³×Æ®¿öÅ©¸¦ °ü¸®ÇÑ´Ù. ¿¡ÀÌÀüÆ®¿Í Åë½ÅÀ» ÇÒ ¶§´Â ´Ù¾çÇÑ Á¾·ùÀÇ ³×Æ®¿öÅ©·Î ÀÎÇØ Ç¥ÁØÈ­ µÈ ÇÁ·ÎÅäÄÝ(SNMP, CMIP)À» »ç¿ëÇÏ¿© Á¤º¸¸¦ ±³È¯ÇÑ´Ù. Proxy ¸Å´ÏÀú¿Í ¿¡ÀÌÀüÆ®°¡ ¼­·Î ´Ù¸¥ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϰųª Ç¥ÁØ¿¡ ¸ÂÁö ¾Ê´Â ÀÚü ÀûÀÎ °ü¸® ÀÎÅÍÆäÀ̽º¸¦ °¡Áö´Â °æ¿ì Áß°£¿¡ ÇÁ·Ï½Ã(Proxy)¸¦ µÐ´Ù(±×¸² 6). ÇÁ·Ï½Ã´Â ¸Å´ÏÀúÀÇ Ç¥ÁØ ÇÁ·ÎÅäÄÝÀ» ¹Þ¾Æ »ó´ë ½Ã½ºÅÛ¿¡ ¸Â´Â ÇüÅ·Πº¯È¯½ÃÄÑ ¼­ Àü´ÞÇÏ°í, »ó´ë ½Ã½ºÅÛ¿¡¼­ µÇµ¹¾Æ¿Â °á°ú¸¦ Ç¥ÁØ ÇÁ·ÎÅäÄÝ·Î ¹Ù²Ù¾î ¸Å´Ï Àú¿¡°Ô Àü´ÞÇÑ´Ù. ³×Æ®¿öÅ© ¸ð´ÏÅ͸µ ³×Æ®¿öÅ© ¸ð´ÏÅ͸µÀ̶õ NMS¸¦ ÀÌ¿ëÇÏ¿© ³×Æ®¿öÅ© ÀÚ¿øµéÀÇ »óŸ¦ °üÂûÇÏ¿© ºÐ¼®ÇÏ´Â °ÍÀÌ´Ù. ¸ð´ÏÅ͸µ Á¤º¸ÀÇ ºÐ·ù ³×Æ®¿öÅ© ¸ð´ÏÅ͸µ¿¡¼­ ¾ò´Â Á¤º¸´Â Å©°Ô Á¤Àû Á¤º¸(Stat ic Information), µ¿Àû Á¤º¸(Dynamic Information), Åë°è Á¤º¸(Statistical Information)·Î ±¸ºÐµÈ´Ù. Á¤ Àû Á¤º¸´Â ³×Æ®¿öÅ©ÀÇ ±¸¼º°ú ±¸¼º ¿ä¼Ò¿Í °°ÀÌ ½±°Ô º¯ÇÏÁö ¾Ê´Â Á¤º¸¸¦ ¸»ÇÑ ´Ù(¿¹£ºÆ÷Æ® ¹øÈ£). µ¿Àû Á¤º¸´Â ³×Æ®¿öÅ©ÀÇ »óÅÂ¿Í À̺¥Æ®¿¡ ÀÇÇؼ­ º¯ÇÏ´Â Á¤ º¸¸¦ ¸»ÇÑ´Ù(¿¹£ºÆÐŶÀÇ Àü¼Û·®, ¿¡·¯ °³¼ö). ¸¶Áö¸·À¸·Î Åë°è Á¤º¸´Â µ¿Àû Á¤ º¸ÀÇ Åë°èÄ¡(Æò±Õ Àü¼Û·®)¸¦ ¶æÇÑ´Ù. ¸ð´ÏÅ͸µ ¹æ¹ý ¿¡ÀÌÀüÆ®ÀÇ ³»¿ëÀ» ¸Å´ÏÀú¿¡°Ô Àü´ÞÇÏ´Â ¹æ¹ý¿¡´Â Æú¸µ(Polling)°ú À̺¥Æ® º¸°í (Event Reporting)°¡ ÀÖ´Ù(±×¸² 7). Æú¸µÀº ¿äû¿¡ ÀÇÇÑ ÀÀ´ä (Request-Response) ¹æ½ÄÀ¸·Î¼­ ¸Å´ÏÀú°¡ ¿¡ÀÌÀüÆ®¿¡°Ô ¿øÇÏ´Â Á¤º¸¸¦ ¿ä±¸ (Request)ÇÏ¸é ¿¡ÀÌÀüÆ®´Â ¸Å´ÏÀú°¡ ¿øÇÏ´Â Á¤º¸¸¦ ã¾Æ¼­ ÀÀ´ä(Response)ÇØ ÁØ´Ù. ±×¸®°í SNMP(Simple Network Management Protocol)¿¡¼­ Á¤º¸¸¦ ±³È¯ ÇÏ´Â ÁÖµÈ ¹æ¹ýÀ¸·Î ±¸ÇöÀº ½±Áö¸¸ ³×Æ®¿öÅ©¿¡ ºÎÇϸ¦ ¸¹ÀÌ ÁÖ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ´ÙÀ½À¸·Î À̺¥Æ® º¸°í´Â ¿¡ÀÌÀüÆ®°¡ ¸Å´ÏÀúÀÇ ¿ä±¸°¡ ¾ø¾îµµ ¸Å´ÏÀú¿¡°Ô Á¤º¸ ¸¦ º¸³»´Â ¹æ¹ýÀ¸·Î »óųª ¼Ó¼º°ªÀÌ ÀÚÁÖ ¹Ù²îÁö ¾Ê´Â °æ¿ì¿¡ Æú¸µ ¹æ½Äº¸´Ù È¿À²ÀûÀÌ´Ù. Ưº°ÇÑ À̺¥Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì¿¡ ÁÖ·Î »ç¿ëµÇ¸ç SNMP¿¡¼­´Â Æ® ·¦(Trap)À̶ó°í ÇÑ´Ù. ³×Æ®¿öÅ© ¸ð´ÏÅ͸µ¿¡ ÀÇÇÑ °ü¸® ³×Æ®¿öÅ© ¸ð´ÏÅ͸µ¿¡ ÀÇÇÑ °ü¸®´Â Å©°Ô °áÇÔ °ü¸®, °ú±Ý °ü¸®, ¼º´É °ü¸®·Î ±¸ ºÐÇÒ ¼ö ÀÖ´Ù. ÀÌµé °ü¸®¸¦ ÀÚ¼¼È÷ »ìÆ캸µµ·Ï ÇÏ°Ú´Ù. °áÇÔ °ü¸®(Fault Management) °áÇÔ °ü¸® ±â´ÉÀº ±×¸² 8°ú °°ÀÌ °ü¸®ÇÏ°í ÀÖ´Â ³×Æ®¿öÅ© Àåºñ¿¡ °áÇÔÀÌ ¹ß»ý ÇßÀ» °æ¿ì ¿ø°Ý¿¡ À§Ä¡ÇÑ °ü¸® ½Ã½ºÅÛÀÌ À̸¦ ºü¸£°í È¿°úÀûÀ¸·Î ó¸®ÇÏ¿© ½Ã ½ºÅÛ°ú ³×Æ®¿öÅ©°¡ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϵµ·Ï Çϱâ À§ÇÑ ±â´ÉÀÌ´Ù. °áÇÔ Ã³¸® °ú Á¤Àº ´ÙÀ½°ú °°´Ù. ¨ç °áÇÔÀÌ ¹ß»ýÇÑ À§Ä¡¸¦ ÆľÇÇÑ´Ù(Detect). ¨è °áÇÔÀÌ ¹ß»ýÇÑ ºÎºÐÀ» ´Ù¸¥ ºÎºÐÀ¸·ÎºÎÅÍ °Ý¸®ÇÑ´Ù(Isolate). ¨é °áÇÔÀÇ ¿µÇâÀ» ÃÖ¼ÒÈ­Çϱâ À§ÇØ ³×Æ®¿öÅ©¸¦ º¯°æÇؼ­ À籸¼ºÇÑ´Ù (Reconfigure). ¨ê °áÇÔÀ» ÀÏÀ¸Å² ±¸¼º ¿ä¼Ò¸¦ ¼ö¸®Çϰųª ±³Ã¼ÇÑ´Ù(Repair). ÀÌ·± °áÇÔ °ü¸®¸¦ À§Çؼ­´Â ·Î±ë(Logging), À̺¥Æ® º¸°í, ¿¬°á Å×½ºÆ® ±â´ÉÀÌ ÇÊ¿äÇÏ´Ù. ·Î±ë ±â´ÉÀº Áß¿äÇÑ »ç°Çµé°ú ¿¡·¯¸¦ ±â·ÏÇÏ´Â ±â´ÉÀ¸·Î¼­ ·Î±× µ¥ ÀÌÅÍÀÇ ºÐ¼®À» ÅëÇØ °áÇÔÀ» ¹ß°ßÇÒ ¼ö ÀÖ´Ù. À̺¥Æ® º¸°í ±â´ÉÀº ¾î¶² »ç°ÇÀÌ ¹ß»ýÇÏ¸é ¹Ù·Î °ü¸®ÀÚ¿¡°Ô º¸°íÇÏ´Â ±â´ÉÀÌ´Ù. Áø´Ü ±â´ÉÀº ¿¬°á Å×½ºÆ®(¿¹ : traceroute), ÇÁ·ÎÅäÄÝÀÇ ¹«°á¼º, ÀÀ´ä½Ã°£°Ë»ç(Response Time Check), »ýÁ¸ °Ë »ç(¿¹ : ping), ·çÇÁ¹é(loop-back) µîÀ» °Ë»çÇÏ´Â ±â´ÉÀÌ´Ù. °ú±Ý °ü¸®(Accounting Management) °ú±Ý °ü¸®´Â ³×Æ®¿öÅ© ÀÚ¿ø¿¡ ´ëÇÑ È°¿ë(Utilization) Á¤º¸¸¦ ¾ò±â À§Çؼ­´Â »ç ¿ë ¿ëµµ¿¡ µû¸¥ ÄõÅÍ(quota)¸¦ ÇÒ´çÇÏ°í »ç¿ëÀÚ¸¦ ±¸ºÐ(Identify)Çؼ­ »ç¿ëÀÚº° ·Î °ü¸® ³»¿ªÀ» ±â·ÏÇØ¾ß ÇÑ´Ù(±×¸² 9). ÀÌ¿Í °°ÀÌ °ú±Ý °ü¸®´Â »ç¿ëÀÚµéÀÇ ³× Æ®¿öÅ© ÀÚ¿ø »ç¿ë ÇöȲÀ» Áö¼ÓÀûÀ¸·Î °Ë»çÇÏ¿© À̸¦ µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåÇؼ­ ÀÚ¿øÀÇ »ç¿ë Á¤µµ¿¡ µû¶ó ÀÌ¿ë·á¸¦ ºÎ°úÇϱâ À§ÇØ ÇÊ¿äÇÑ ±â´ÉÀÌ´Ù. ¶ÇÇÑ °ú±Ý °ü¸®¿¡¼­ ¾ò¾îÁø Á¤º¸µéÀº ´Ù¸¥ °÷¿¡¼­µµ À¯¿ëÇÑ Á¤º¸·Î »ç¿ëµÈ´Ù. ¼º´É °ü¸® ±â´É(Performance Management) ÇöÀç ³×Æ®¿öÅ© Àåºñµé°ú ¸µÅ©¿¡ ´ëÇÑ È°¿ëµµ¸¦ Á¶»çÇؼ­ °¡Àå È¿À²ÀÌ ³ôÀº °æ ·Î¸¦ ã°Å³ª, ¼º´É ÀúÇÏ°¡ ÀÖ´Â ºÎºÐÀ» ã¾Æ³»¾î ¹®Á¦¸¦ ÇØ°áÇÏ´Â ±â´ÉÀÌ´Ù(±× ¸² 10). ³×Æ®¿öÅ© ¼º´ÉÀ» ÃøÁ¤Çϱâ À§ÇÑ ÁöÇ¥µéÀº Ç¥ 1°ú °°°í ¼º´ÉÀº ´ÙÀ½ »ç Ç×µé°ú ¹ÐÁ¢ÇÑ °ü·ÃÀÌ ÀÖ´Ù. ¡¤¿ë·® È°¿ëµµ(Capacity Utilization)°¡ ¾ó¸¶³ª ³ôÀº°¡? ¡¤°úµµÇÑ È帧(Excessive Traffic)ÀÌ Àִ°¡? ¡¤Ã³¸®·®(Throughput)ÀÌ ÁÙ¾îµé¾ú´Â°¡? ¡¤¾îµð¼­ º´¸ñ(Bottleneck)ÀÌ ÀϾ´Â°¡? µû¶ó¼­ ¼º´É °ü¸®¿¡´Â À̵éÀ» ¸ð´ÏÅ͸µ ÇÒ ¼ö ÀÖ´Â ´ÙÀ½ ±â´ÉµéÀÌ ÇÊ¿äÇÏ´Ù. ¡¤¼º´É ÃøÁ¤(Performance Measurement) : ½ÇÁ¦ Æ®·¡ÇÈÀ» ÃøÁ¤ÇÏ´Â ±â´ÉÀ¸·Î ¿¡ÀÌÀüÆ®¿¡ ÀÇÇØ ¼öÇàµÈ´Ù. ¡¤¼º´É ºÐ¼®(Performance Analysis) : ¿¡ÀÌÀüÆ®µéÀÌ ÃøÁ¤ÇÑ Åë°èÄ¡¸¦ ¸ð¾Æ¼­ ºÐ¼®ÇÏ´Â ±â´ÉÀ¸·Î ¸Å´ÏÀú¿¡ ÀÇÇØ ¼öÇàµÈ´Ù. ¡¤Å×½ºÆ® Æ®·¡ÇÈ »ý¼º(Synthetic Traffic Generation) : ÀÎÀ§ÀûÀ¸·Î Æ®·¡ÇÈÀ» »ý ¼ºÇÏ¿© ¼º´ÉÀ» ÃøÁ¤Çϴµ¥ »ç¿ëÇÑ´Ù. ³×Æ®¿öÅ© Á¦¾î¿¡ ÀÇÇÑ °ü¸® ³×Æ®¿öÅ© Á¦¾î´Â ³×Æ®¿öÅ© °ü¸®¿Í °ü·ÃµÈ ¿©·¯ °¡Áö ¼³Á¤°ªµéÀ» º¯È­½ÃÅ°°í °¢ ÀÚ¿øµé¿¡ ´ëÇÑ ±¸¼º¿¡ ´ëÇÑ °ü°è¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù. ±¸¼º °ü¸® ±â´É(Configuration Management) ±¸¼º °ü¸®´Â ±×¸² 11°ú °°ÀÌ °ü¸®ÇÏ·Á´Â ´ë»óÀ» Á¤ÀÇÇÏ°í ´ë»óµé °£ÀÇ °ü°è¸¦ ¼³Á¤Çؼ­ °ü¸®ÀÚ°¡ °ü¸® ´ë»óÀÇ ¼³Á¤À» ¹Ù²Û´Ù°Å³ª °ü¸® Á¤º¸¸¦ °¡Á®¿À´Â °ÍÀ» ½±°Ô ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÖ´Â ±â´ÉÀÌ´Ù. º¸¾È °ü¸® ±â´É(Security Management) º¸¾È °ü¸® ±â´ÉÀº Áß¿äÇÑ Á¤º¸¸¦ ħÀÔÀڷκÎÅÍ º¸È£Çϱâ À§ÇØ Çã¶ôµÇÁö ¾ÊÀº »ç¿ëÀÚµéÀÌ ³×Æ®¿öÅ© ÀÚ¿øÀ» »ç¿ëÇÏ´Â °ÍÀ» ¸·°í °ü¸® Á¤º¸¿¡ Á¢±ÙÇÏ´Â °ÍÀ» ¸·¾Æ ¾ÈÀüÇÑ ³×Æ®¿öÅ© ȯ°æÀ» Á¦°øÇϱâ À§ÇÑ °ÍÀÌ´Ù. º¸¾È °ü¸®¸¦ À§Çؼ­´Â ¸Õ Àú Ç¥ 2¿Í °°Àº »çÇ×À» °í·ÁÇØ¾ß ÇÑ´Ù. º¸¾È °ü¸®¸¦ À§ÇÑ ±â´ÉÀº ´ÙÀ½°ú °°´Ù. ¡¤µ¥ÀÌÅ͸¦ ¾ÏȣȭÇÏ´Â ±â´É ¡¤¾Ïȣȭ¿¡ ÇÊ¿äÇÑ Å°¸¦ »ý¼ºÇÏ°í ºÐ»ê½ÃÄÑ °ü¸®ÇÏ´Â ±â´É »ç¿ëÀÚ¸¦ ÀÎÁõÇÒ ¼ö ÀÖ´Â ±â´É ¡¤³×Æ®¿öÅ© ÀÚ¿ø¿¡ ´ëÇÑ Á¢±Ù ±ÇÇÑÀ» Á¦¾îÇÏ´Â ±â´É ¡¤º¸¾ÈÁ¤º¸¿Í °¨»çÁ¤º¸(Audit Records or Security Logs)¸¦ ¸ð¾Æ ÀúÀåÇÏ°í Á¡ °ËÇÏ´Â ±â´É -- °´Ã¼ÀÇ ÀÚ¸®¸¦ ±¸ºÐÁþ´Â »öÀÎ internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } directory OBJECT IDENTIFIER ::= { internet 1 } mgmt OBJECT IDENTIFIER ::= { internet 2 } -- °´Ã¼°¡ °¡Áú ¼ö ÀÖ´Â typeÀÇ Á¾·ù IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4)) Counter ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295) Gauge ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295) TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295) Opaque ::= [APPLICATION 4] -- arbitrary ASN.1 value, IMPLICIT OCTET STRING -- ¡°double-wrapped¡± ³×Æ®¿öÅ© °ü¸® Á¤º¸ÀÇ Á¤Àǹæ¹ý°ú Ç¥Çö ¹æ¹ý ¾Õ¼­ ¼³¸íÇÑ ¸¹Àº Á¾·ùÀÇ ³×Æ®¿öÅ© °ü¸®¸¦ È¿°úÀûÀ¸·Î ¼öÇàÇÏ°í ¼­·Î ´Ù¸¥ NMS °£¿¡ Á¤º¸¸¦ °øÀ¯Çϱâ À§Çؼ­´Â ¸ÕÀú °ü¸® Á¤º¸ÀÇ Á¤ÀÇ¿Í Ç¥Çö ¹æ¹ý¿¡ ´ëÇÑ Ç¥ÁؾÈÀÌ ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ À§Çؼ­ NMS´Â °ü¸® Á¤º¸¸¦ Á¤ÀÇÇϱâ À§ÇØ °øÅëÀÇ ±¸Á¶¸¦ °¡Áö¸ç, ÀÌ ±¸Á¶¸¦ ÅëÇØ ´Ù¾çÇÑ °´Ã¼¸¦ Á¤ÀÇÇÑ´Ù. Á¤ÀÇµÈ °´Ã¼µé Àº ¸ðµç NMS°¡ ÀÌÇØÇÒ ¼ö ÀÖ´Â Ãß»óÀûÀÎ ¾ð¾î¸¦ ÅëÇØ Ç¥ÇöµÈ´Ù. ½ÇÁ¦ NMS ½Ã½ºÅÛ¿¡¼­´Â ´ÙÀ½ ±×¸² 13°ú °°Àº ±¸Á¶·Î ±¸ÇöµÈ´Ù. SMI(Structure Management Information) °ü¸® ´ë»óÀÌ µÇ´Â °´Ã¼¸¦ Á¤ÀÇÇϱâ À§ÇÑ ½ºÅ°¸¶·Î °´Ã¼°¡ °¡Áú ¼ö ÀÖ´Â ´Ù¾çÇÑ ÇüÅÂ(Type)¿Í ¼­·Î ´Ù¸¥ °´Ã¼µéÀ» ±¸ºÐ Áþ±â À§ÇÑ »öÀÎ(Index)À¸·Î MIBÀÇ »À ´ë¸¦ ÀÌ·é´Ù. SNMP¿¡¼­ »ç¿ëÇÏ´Â SMIÀÇ ¿¹(RFC1155)´Â ´ÙÀ½°ú °°´Ù. MIB(Management Information Base) NMS°¡ °ü¸®ÇÏ´Â °´Ã¼¸¦ Á¤ÀÇÇÏ°í °´Ã¼ÀÇ Æ¯¼ºÀ» ±â¼úÇؼ­ ¸ð¾Æ³õÀº µ¥ÀÌÅͺ£ À̽º·Î¼­, °ü¸®ÇÏ´Â °´Ã¼´Â SMIÀÇ ±âÃÊ ¾Æ·¡ Á¤ÀǵȴÙ(±×¸² 14). MIB´Â °³³ä ÀûÀ¸·Î Æ®¸®(Tree) ±¸Á¶·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç °ü¸®µÇ´Â ¾Ë¸ÍÀÌ °´Ã¼µéÀº Leaf Node¶ó°í ÇÑ´Ù. ½ÇÁ¦ Leaf NodeµéÀÌ ±¸ÇöµÉ ¶§´Â °´Ã¼ÀÇ ¼ö¿¡ µû¶ó Çϳª ȤÀº ¿©·¯ °³ÀÇ ÀνºÅϽº(Instance)·Î ¸¸µé¾îÁø´Ù. Âü°í·Î ¿¹¸¦ Çϳª µé¸é NIC(Network Interface Card)´Â ÇÑ ½Ã½ºÅÛ¿¡ ¿©·¯ °³ Á¸ÀçÇÒ ¼ö ÀÖ´Ù. ¿©±â¼­ °´Ã¼´Â NICÀÌ µÇ¸ç ÀνºÅϽºÈ­ µÇ¸é NIC[0], NIC[1] µîÀÌ µÈ´Ù. ASN(Abstract Syntax Notation) ½Ã½ºÅÛ¿¡ µû¶ó »ç¿ëÇÏ´Â ¹ÙÀÌÆ® ¼ø¼­°¡ ´Ù¸£°í Ç¥ÇöÇÏ´Â ¹æ¹ýµµ ´Ù¸£±â ¶§¹®¿¡ ÇϳªÀÇ ½Ã½ºÅÛ¿¡ ÀÇÁ¸ÀûÀÎ ¾ð¾î³ª ±â°è¾î·Î SMI¿Í MIB¸¦ Ç¥ÇöÇÏ¸é ´Ù¸¥ ½Ã½º ÅÛ¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø´Â ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ °´Ã¼ÀÇ Ç¥Çö ¹æ½ÄÀÌ ASNÀÌ´Ù. ASNÀº ÀÎÄÚµù ±ÔÄ¢¿¡ »ó°ü¾øÀÌ µ¥ÀÌÅ͸¦ Ç¥ÇöÇϱâ À§ÇØ, ÀϹÝÀûÀÎ µ¥ÀÌÅÍ ±¸ Á¶¸¦ °¡Áø ´Ü¼øÇÑ ÇüÅÂÀÇ ¹®¹ýÀ¸·Î ÀÌ·ç¾îÁø ¾ð¾î´Ù. ASNÀ» ÀÌ¿ëÇÏ¿© ÀÀ¿ëÇÁ ·Î±×·¥ °èÃþ °£¿¡ Á¤º¸¸¦ ±³È¯ÇÏ¿© »ç¿ëÀÚ°¡ ±× ³»¿ëÀ» º¼ ¼ö ÀÖ°Ô ÇØÁÖ°í, ÀÎ ÄÚµù ±ÔÄ¢¿¡ ÀÇÇØ µ¥ÀÌÅ͸¦ º¯È¯ÇÏ¿© »ó´ë¹æ ½Ã½ºÅÛ¿¡ Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï µµ¿Í ÁØ´Ù. º¯È¯ ±ÔÄ¢(Encoding Rules) ASNÀ¸·Î Á¤ÀÇµÈ SMI¿Í MIBÀÇ ³»¿ëÀ» »ó´ë¹æ ½Ã½ºÅÛ¿¡ Àü´ÞÇϱâ À§Çؼ­´Â µ¥ÀÌÅ͸¦ »ó´ë¹æ ½Ã½ºÅÛ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇüÅ·Π¹Ù²Ù¾î¾ß ÇÑ´Ù. ÀÌ·¸°Ô ASN À¸·Î Á¤ÀÇÇÑ °´Ã¼µéÀ» ´Ù¸¥ ½Ã½ºÅÛÀ¸·Î Àü¼ÛÇϱâ À§ÇØ º¯È¯ÇÏ´Â ±ÔÄ¢¿¡ µû¶ó ÀÌ·ç¾îÁö¸ç, º¯È¯µÈ µ¥ÀÌÅÍ´Â OctetÀÇ ¹è¿­ÀÌ µÈ´Ù. ¶Ç Octet ÇüÅÂÀÇ º¯È¯µÈ µ¥ ÀÌÅÍ´Â µðÄÚµùÀ» ÅëÇØ ¿ø·¡ÀÇ ASN ÇüÅ·Πµ¹¾Æ°¡±âµµ ÇÑ´Ù. ¸®½ºÆ® 1 : ±¸Á¶Àû ÇüÀÎ SEQUENCEÀÇ ¿¹(RFC1213) IpAddrEntry ::= SEQUENCE {--IP ÁÖ¼ÒÀÇ ¿£Æ®¸®¸¦ Ç¥Çö ipAdEntAddr IpAddress, ipAdEntIfIndex INTEGER, ipAdEntNetMask IpAddress, ipAdEntBcastAddr INTEGER, ipAdEntReasmMaxSize INTEGER (0..65535) } ¸®½ºÆ® 2 : APPLICATION typeÀÇ ¿¹(RFC1155) IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4)) Counter ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295) Gauge ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295) ASN.1 ASN.1(Abstract Syntax Notation.1)Àº ¼­·Î ´Ù¸¥ CPU³ª ¾ð¾î ü°è¿¡ Á¾¼ÓÀû ÀÌÁö ¾ÊÀº Ç¥ÁØ object define ¾ð¾î·Î, CCITT¿Í ISO(ISO.8824)ÀÇ Ç¥ÁØÀÌ´Ù. ÀÌ ´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ µ¥ÀÌÅ͸¦ Ãß»óÀûÀ¸·Î Á¤ÀÇÇϰųª ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ Á¤ÀÇÇϱâ À§ÇØ »ç¿ëµÇ´Â ¾ð¾î·Î¼­ BNF(Backus-Naur Form) ÇüŸ¦ °¡Áö´Â ÆÄ ½ºÄ®À̳ª C¿Í ºñ½ÁÇÑ ¹®¹ýÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ASN.1ÀÇ ÀÚ¼¼ÇÑ »çÇ×À» 6°¡Áö ºÎºÐÀ¸·Î ³ª´©¾î »ìÆ캸µµ·Ï ÇÏ°Ú´Ù. ¨ç ASN.1ÀÇ Æ¯Â¡(Lexical Convention) ASN.1 ±¸Á¶¿¡¼­´Â type°ú value°¡ ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ºñ½ÁÇÑ ÇüÅ·Πǥ ÇöµÇ¸ç À̵é°ú ±¸º°µÇ´Â °íÀ¯ÇÑ Æ¯Â¡Àº ´ÙÀ½°ú °°´Ù. ¡¤LayoutÀº Å©°Ô Áß¿äÇÏÁö ¾Ê´Ù. multiple space³ª blank lines µîÀº single space·Î °£ÁֵȴÙ. ¡¤ÁÖ¼®Àº µÎ °³ÀÇ ¿¬°áµÈ ÇÏÀÌÇ¡®--¡¯·Î ½ÃÀÛÇؼ­ ´Ù¸¥ ÇÏÀÌÇÂÀÌ ³ª¿À°Å³ª ÇÑÁÙÀÌ ³¡³¯ ¶§±îÁö °è¼ÓµÈ´Ù. ¡¤°ª°ú Çʵå À̸§ÀÇ Identifier³ª Çü(type)ÀÇ À̸§, ¸ðµâ(module) µîÀº ´ë¹®ÀÚ³ª ¼Ò¹®ÀÚ, ¼ýÀÚ, ÇÏÀÌÇ µîÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ¡¤Çü(type)ÀÇ identifier´Â Ç×»ó ´ë¹®ÀÚ·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù. ¡¤°ª(value)ÀÇ identifier´Â Ç×»ó ¼Ò¹®ÀÚ·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù. ¡¤type¿¡ ÀÇÇÑ °ªÀÇ ÇÒ´çÀº ´ÙÀ½°ú °°Àº ÇüÅ·ΠÀÌ·ç¾îÁø´Ù. ::= ¨è ¹®ÀÚ ASN.1¿¡¼­ »ç¿ë °¡´ÉÇÑ ¹®ÀÚ´Â ´ÙÀ½°ú °°´Ù. (1) A to Z (2) a to z (3) 0 to 9 (4) : ; | = , { } . ( ) [ ] - ¡® ¡° ¨é Å°¿öµå(keyword) ASN.1¿¡¼­ »ç¿ëµÇ´Â Å°¿öµå´Â Ç¥ 3°ú °°´Ù. ¨ê µ¥ÀÌÅÍ Çü°ú °ªÀÇ Á¤ÀÇ ASN.1¿¡¼­ »ç¿ëµÇ´Â µ¥ÀÌÅÍ ÇüµéÀº Ç¥ 4¿Í °°Àº ³× °³ÀÇ Ä«Å×°í¸®·Î ±¸ºÐÇÒ ¼ö ÀÖ´Ù. Âü°í·Î ±¸Á¶Àû ÇüÀÎ SEQUEN CEÀÇ ¿¹(RFC1213)¿Í APPLICATION typeÀÇ ¿¹(RFC 1155)¸¦ »ìÆ캸±â ¹Ù¶õ´Ù(¸®½ºÆ® 1, 2). ¨ë ¸ðµâ(module)ÀÇ Á¤ÀÇ ASN.1 ¹®¹ýÀ¸·Î Á¤ÀÇÇÏ´Â °´Ã¼´Â ¸ðµâ(module)À̶ó°í Çϸç, ¸ðµâÀÇ ±âº» ÇüÅ ´Â ´ÙÀ½°ú °°´Ù. ¡®module reference¡¯¿¡ ¸ðµâÀÇ À̸§À» Á¤ÇÏ°í ¡®DEFINITI ON¡¯Å°¿öµå¸¦ »ç ¿ëÇØ ¸ðµâÀ» Á¤ÀÇÇÔÀ» ¾Ë¸°´Ù. ¸ðµâÀº ¡®BEGIN¡¯ Å°¿öµå·Î ½ÃÀÛÇؼ­ ¡®EN D¡¯ Å°¿öµå·Î ³¡³ª¸ç, ´Ù¸¥ ¸ðµâÀ» °¡Áö°í ¿À´Â °æ¿ì¿¡´Â ¡®IMPORTS¡¯ Å°¿ö µå·Î À̸¦ ¼±¾ðÇÏ°í ¡®FROM¡¯ Å°¿öµå¸¦ »ç¿ëÇؼ­ ´Ù¸¥ ¸ðµâÀÇ ³»¿ëÀ» °¡Áö °í ¿Â´Ù. ¡®Assignment list¡¯¿¡¼­´Â ÇÒ´ç ¿¬»êÀÚÀÎ ¡®::=¡¯¸¦ »ç¿ëÇÏ¿© ÇüÀ̳ª °ªÀ» ÇÒ´çÇÑ´Ù. ¸¶Áö¸·À¸·Î ¡®END¡¯ Å°¿öµå¸¦ »ç¿ëÇؼ­ ¸ðµâ Á¤ÀǸ¦ ¸¶Ä£´Ù. ¨ì ASN.1ÀÇ ¸ÅÅ©·Î(MACRO) Á¤ÀÇ ¸ÅÅ©·Î´Â »õ·Î¿î ÇüÀ̳ª °ªÀ» Á¤ÀÇÇÏ¿© ASN.1ÀÇ ¹®¹ýÀ» È®Àå½ÃŲ´Ù. ¸ÅÅ©·Î ¾È¿¡´Â »õ·Î¿î Çü°ú °ªÀÌ µ¿½Ã¿¡ µé¾î°¥ ¼ö ÀÖ´Ù. ¸ÅÅ©·ÎÀÇ ±¸ºÐÀº Ç¥ 5¿Í °° ´Ù. ±×¸®°í ¸ÅÅ©·ÎÀÇ Á¤ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù. ¸¶Ä¡¸ç À̹ø È£¿¡´Â NMS¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ ³»¿ë°ú ½ÇÁ¦ Ç¥Çö ¹®¹ýÀÎ ASN.1¿¡ ´ëÇØ »ìÆ캸¾Ò´Ù. ´ÙÀ½ È£¿¡´Â ÀÎÅÍ³Ý °ü¸®Ã¼Á¦ Ç¥ÁØÀÎ SNMP¿¡ ´ëÇØ ±¸Ã¼ÀûÀ¸·Î ¾Ë¾Æº¸°í °¢ ¿î¿µÃ¼°è º°·Î ±¸ÇöµÇ¾î ½±°Ô Á¢ÇÒ ¼ö ÀÖ´Â ³×Æ®¿öÅ© °ü¸® ÇÁ·Î±× ·¥µé¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú´Ù. DEFINITIONS ::= BEGIN EXPORTS IMPORTS FROM Assignment list (type assignment, value assignment) ::= END MACRO ::= --Àº ÀüºÎ ´ë¹®ÀÚ·Î ¾´´Ù. BEGIN TYPE NOTATION ::= --»õ·Î¿î ÇüÀ» Á¤ÀÇÇÑ´Ù. VALUE NOTATION ::= --ÇüÀÇ °ªÀ» Á¤ÀÇÇÑ´Ù. --»õ·Î¿î ÇüÀ» Ãß°¡ÇÏ´Â ¹®¹ý ±ÔÄ¢À» Á¦½ÃÇÑ´Ù. END Á¦ ¸ñ:[9909]³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹°ÉÀ½(2) | ÀÎÅÍ³Ý Ç¥ÁØ °ü¸®Ã¼Á¦, SNMP [243] 1999-09-07 14:10 ³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹ °ÉÀ½!(2) ÀÎÅÍ³Ý Ç¥ÁØ °ü¸®Ã¼Á¦, SNMP ÀÎÅͳÝÀÇ È¿½ÃÀÎ ARPANETÀº 1969³â ¹Ì±¹ ±¹¹æºÎ¿¡¼­ ¿ø°Ý È£½ºÆ®°£ÀÇ µ¥ÀÌ ÅÍ Åë½ÅÀ» À§ÇØ ¸¸µé¾îÁ³´Ù. ±×¸®°í ¿©±â¿¡ °¢±¹ ´ëÇÐÀÇ ÄÄÇ»Å͵éÀÌ ¿¬°áµÇ°í TCP/IP°¡ ARPANETÀÇ Ç¥ÁØ ÇÁ·ÎÅäÄݷΠäÅõǸ鼭 ±Þ¼ÓÈ÷ ¹ßÀüÇÏ¿´´Ù. ÇöÀç ÀÎÅͳÝÀº ¾à 4õ¸¸´ëÀÇ ÄÄÇ»ÅÍ°¡ ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖÀ» Á¤µµ·Î ±Ô¸ð°¡ Ä¿Á³ À¸¸ç, ÀϹÝÀο¡°Ôµµ Áß¿äÇÑ »ýÈ°¿ä¼Ò·Î ÀÚ¸®Àâ¾Ò´Ù. ÀÌó·³ ±Ô¸ð°¡ Ä¿Áü¿¡ µû ¶ó, ÀÎÅͳÝÀ» È¿°úÀûÀ¸·Î °ü¸®Çϱâ À§ÇÑ Ã¼Á¦ÀÇ Çʿ伺ÀÌ ´ëµÎµÇ¾ú´Ù. ÀÌ°°Àº Çʿ伺À» ¸¸Á·½ÃÅ°±â À§ÇÑ ´ë¾ÈÀ¸·Î µîÀåÇÑ °ÍÀÌ SNMPÀÌ´Ù. ³ëÁ¤¹Î Çѱ¹Ç×°ø´ëÇб³ Ç×°øÅë½ÅÁ¤º¸°øÇаú ´ëÇÐ hmask@esc.cl.hangkong.ac.kr ÀÎÅͳÝÀÇ °ü¸®Ã¼Á¦´Â IETF(Internet Engineering Task Force)¿¡ ÀÇÇØ ÀÌ·ç¾î Áö°í ÀÖ´Ù. ¿©±â¼­´Â ³×Æ®¿öÅ© °ü¸®¸¦ À§ÇÑ °ü¸® ±¸Á¶, °ü¸® Á¤º¸ÀÇ ±¸Á¶, °ü¸® ÇÁ·ÎÅäÄÝ µî¿¡ ´ëÇÑ Ç¥ÁØÈ­ ÀÛ¾÷À» ÇÑ´Ù. ÇöÀç ³Î¸® »ç¿ëµÇ°í ÀÖ´Â SNMPµµ IETF¿¡ ÀÇÇؼ­ Á¦Á¤µÈ ÀÎÅÍ³Ý °ü¸® ÇÁ·ÎÅäÄÝÀÌ´Ù. SNMP¿¡ ÀÇÇÑ ÀÎÅÍ³Ý °ü¸®Ã¼Á¦ÀÇ ¹ßÀü SNMP´Â 1988³â ÃʾÈ(draft)À¸·Î »óÁ¤µÇ¾î 1990³â ÀÎÅÍ³Ý °ü¸® ÇÁ·ÎÅäÄÝÀÇ Ç¥ ÁØÀ¸·Î Á¦Á¤µÇ¾ú´Ù. ±× ÈÄ ´ëºÎºÐÀÇ ¿öÅ©½ºÅ×À̼ǰú ºê¸®Áö, ¶ó¿ìÅÍ, ½ºÀ§Ä¡, Çãºê µîÀÇ ³×Æ®¿öÅ© Àåºñ¿¡ SNMP ¿¡ÀÌÀüÆ®°¡ ÀåÂøµÇ¾ú°í, ½Ã½ºÅÛ°ú ¿©·¯ ÀÀ¿ë ÇÁ·Î±×·¥¿¡µµ À̵é À» SNMP »ó¿¡¼­ °ü¸®ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â MIBµéÀÌ Á¤ÀǵǾú´Ù. ÇöÀçÀÇ SNMP´Â SNMPv2 µîÀ» °ÅÃÄ SNMPv3·Î ±â´ÉÀÌ È®ÀåµÇ°í ÀÖÀ¸¸ç, °ü ¸® ¿µ¿ªµµ RMON(Remote MONi toring) MIB µîÀ» ÅëÇØ È®ÀåµÇ°í ÀÖ´Â Ãß¼¼ ÀÌ´Ù. ÀÎÅÍ³Ý °ü¸®Ã¼Á¦ÀÇ ±â¿ø ¡Ü ICMP(Internet Control Message Protocol) 1970³â´ë ¸»ºÎÅÍ »ç¿ëµÈ ÇÁ·ÎÅäÄÝ·Î ³×Æ®¿öÅ© »ó¿¡¼­ÀÇ ¿©·¯ °¡Áö ¹®Á¦Á¡µé ¿¡ ´ëÇÑ Çǵå¹é(feed-back)À» Á¦°øÇϱâ À§ÇØ »ç¿ëµÇ¾ú´Ù. ¶ó¿ìÅͳª È£½ºÆ®µé »çÀÌ¿¡ Á¦¾î ¸Þ½ÃÁö(echo/echo-reply)¸¦ Àü´ÞÇÑ´Ù. ÇöÀç ping, traceroute µîÀ» ÅëÇØ ³Î¸® »ç¿ëµÇ°í ÀÖ´Ù. ¡Ü SGMP(Simple Gateway Monitoring Protocol) °ÔÀÌÆ®¿þÀ̸¦ ¸ð´ÏÅ͸µÇϱâ À§ÇØ »ç¿ëµÇ¾ú´ø ÇÁ·ÎÅäÄÝ·Î 1987³â äÅõǾú´Ù. ¡Ü HEMS(High-Level Entity Management System) È£½ºÆ®¸¦ ¸ð´ÏÅ͸µ Çϴµ¥ »ç¿ëÇß´ø HMP(Host Monitoring Protocol)¸¦ ³×Æ® ¿öÅ© °ü¸®¿¡ ¸Â°Ô ¹ß Àü½ÃŲ ÇÁ·ÎÅäÄÝÀÌ´Ù. ¡Ü SNMP(Simple Network Management Protocol) SGMP¸¦ ¹ßÀü½ÃŲ ¸ðµ¨·Î ÁÖ·Î TCP/IP ³×Æ®¿öÅ©¸¦ °ü¸®Çϴµ¥ »ç¿ëµÇ´Â ´Ü ¼øÇÑ ÇüÅÂÀÇ ÇÁ·ÎÅäÄÝÀÌ´Ù. óÀ½¿£ °¡Àå ±¤¹üÀ§ÇÑ ³×Æ®¿öÅ© °ü¸®Ã¼Á¦ÀÎ OSI °ü ¸®Ã¼Á¦(CMOT)·Î °¡±â À§ÇÑ Áß°£ ´Ü°èÀÇ °úµµ±âÀû ¿î¿µ ¹æ¾ÈÀ¸·Î Á¦¾ÈµÇ¾úÁö ¸¸, ÇöÀç °¡Àå ³Î¸® »ç¿ëµÇ°í ÀÖ´Ù. ¡Ü CMOT(CMIP over TCP/IP) OSI °ü¸®Ã¼Á¦ÀÎ CMIP¸¦ TCP/IP À§¿¡¼­ µ¿ÀÛÇϵµ·Ï ¸¸µç °Í. SNMP¸¦ ´ë üÇÒ ¸ñÀûÀ¸·Î Á¦¾ÈµÇ¾úÁö¸¸, ³Ê¹« º¹ÀâÇÑ ±¸Á¶·Î ÀÎÇØ ÇöÀç´Â SNMP¿¡ ¹Ð·Á »ç¾ç±æ¿¡ Á¢¾îµé¾ú´Ù. SNMP °ü¸®Ã¼Á¦ÀÇ ±¸Á¶ SNMP¿¡ ÀÇÇÑ °ü¸® ±¸Á¶´Â ±×¸² 1°ú °°ÀÌ ¿¡ÀÌÀüÆ®¿Í ¸Å´ÏÀú·Î µÇ¾î ÀÖ´Ù. ¿©±â¼­ MIB(Management Information Base)¶õ ³×Æ®¿öÅ© ¿ä¼ÒµéÀÌ À¯ÁöÇÏ´Â Á¤º¸¸¦ ¸»ÇÏ´Â °ÍÀ¸·Î ¿¡ÀÌÀüÆ®µéÀº ³×Æ®¿öÅ© ³ëµå¿¡¼­ ±× ³ëµå¿¡ ´ëÇÑ Á¤º¸¸¦ À¯ÁöÇÏ°í ÀÖ´Ù. ¸Å´ÏÀú´Â Àüü ³×Æ®¿öÅ©¿¡ ´ëÇÑ MIB ¸í¼¼¼­¸¦ °¡Áö°í °¢°¢ÀÇ ¿¡ÀÌÀüÆ®°¡ °ü¸®ÇÏ´Â MIB¸¦ ¼öÁýÇؼ­ °ü¸®ÇÑ´Ù. SNMP °ü¸® ÇÁ·ÎÅäÄÝÀÇ ±¸Á¶ SNMP´Â TCP/IP ½ºÅà Áß¿¡ ÀÀ¿ëÇÁ·Î±×·¥ °èÃþ(Application Layer)¿¡ ÇØ´çµÇ ´Â ÇÁ·ÎÅäÄÝ·Î Àü¼Û °èÃþ¿¡¼­´Â UDP¸¦ »ç¿ëÇϸç 161, 162 µÎ °³ÀÇ Æ÷Æ®¸¦ Åë ÇØ ¸Þ½ÃÁö¸¦ ÁÖ°í¹Þ´Â´Ù(±×¸² 2). SNMP ¸Þ½ÃÁö Á¾·ù ¿¡ÀÌÀüÆ®¿Í ¸Å´ÏÀú »çÀÌ¿¡ Àü´ÞµÇ´Â Á¤º¸ÀÇ ¿Ï¼ºµÈ ÇüŸ¦ ¸Þ½ÃÁö¶ó°í ÇÑ´Ù. ¸Å´ÏÀú°¡ ¿¡ÀÌÀüÆ®¿¡ ÁúÀǸ¦ ÇÏ¸é ¿¡ÀÌÀüÆ®´Â ±×¸² 3°ú °°ÀÌ ÀÌ¿¡ ´ëÇÑ ÀÀ´äÀ» µÇµ¹¸®´Â Çü½ÄÀ¸·Î Á¤º¸¸¦ ÁÖ°í¹Þ´Âµ¥, À̸¦ À§ÇØ ÃÑ ´Ù¼¸ °³ÀÇ ¸Þ½ÃÁö Á¾·ù¸¦ Á¤ÀÇÇÏ°í ÀÖ´Ù(Ç¥ 2). SNMP MIB SNMP¿¡¼­ »ç¿ëµÇ´Â MIBµéÀº °èÃþº°·Î Àü¼Û¼Óµµ, ¿À·ùÀ², ¼Û¼ö½Å ÇÁ·¹ÀÓ ¼ö, IP ÁÖ¼Ò µîÀÇ °ü¸®´ë»ó Ç׸ñµéÀ» À¯ÁöÇÏ°í ÀÖ´Ù. ¸®½ºÆ® 1 : RFC1155-SMI DEFINITIONS --------------------------------------------------------------- RFC1155-SMI DEFINITIONS ::= BEGIN EXPORTS -- EVERYTHING internet, directory, mgmt, experimental, private, enterprises, OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax, ApplicationSyntax, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks, Opaque; -- the path to the root internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } directory OBJECT IDENTIFIER ::= { internet 1 } mgmt OBJECT IDENTIFIER ::= { internet 2 } experimental OBJECT IDENTIFIER ::= { internet 3 } private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT IDENTIFIER ::= { private 1 } --------------------------------------------------------------- SMI(RFC1155) SMI´Â SNMP MIBµéÀ» Á¤ÀÇÇϱâ À§ÇÑ ÀϹÝÀûÀÎ ±¸Á¶ÀÌ´Ù. MIB °´Ã¼µéÀº ASN.1 ¹®¹ý¿¡ µû¶ó Á¤ÀǵǴµ¥ °¢°¢ÀÇ °´Ã¼µéÀº °¢°¢ À̸§°ú Ç¥±â ¹®¹ý, ´Ù¸¥ ½Ã½ºÅÛÀ¸·ÎÀÇ Àü¼ÛÀ» À§ÇÑ ÀÎÄÚµù ±ÔÄ¢ µîÀ» °¡Áö°í ÀÖ´Ù(¸®½ºÆ® 1). À̵éÀº ¼­·Î °íÀ¯ÇÑ °´Ã¼ ½Äº°ÀÚ¿¡ ÀÇÇØ ±¸ºÐµÈ´Ù. SNMP MIB¿¡¼­ »ç¿ëµÇ´Â °´Ã¼µéÀº RFC1155¿¡ ISOÀÇ Ç¥Áؾȿ¡ µû¶ó Á¤ÀǵǾî ÀÖ´Ù. Âü°í·Î ¸®½ºÆ® 1¿¡ ¼­ EXPO RT´Â SMI¿¡¼­ Á¤ÀÇÇÑ µð·ºÅ丮¿Í ¿©·¯ °¡Áö µ¥ÀÌÅÍÇü(type)À» ´Ù¸¥ SNMP MIB¿¡¼­ °¡Á®´Ù »ç¿ëÇÒ ¼ö ÀÖµµ·Ï °³¹æ½ÃÄÑÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ´Ù¸¥ MIB¿¡¼­´Â SMI¿¡¼­ EXPORTS·Î ¿­¸° µ¥ÀÌÅÍÇüÀ» IMPORTS ±¸¹®À» ÅëÇØ °¡Á®¿Í »ç¿ëÇÒ ¼ö ÀÖ´Ù. OBJECT IDENTIFIER O-ID(OBJECT IDENTIFIER)´Â MIB ³»¿¡¼­ °ü¸® °´Ã¼¸¦ À¯ÀÏÇÏ°Ô ÁöÁ¤ÇÏ´Â ½Äº°ÀÚ·Î °´Ã¼°¡ ±¸¼ºÇÏ´Â Æ®¸®(tree)¿¡ µû¶ó ÇÒ´çµÇ´Â ÀÏÁ¾ÀÇ µð·ºÅ丮´Ù. O-ID´Â °èÃþ ±¸Á¶À̹ǷΠÇ×»ó ÀÚ½ÅÀÇ À̸§°ú ¹øÈ£¸¦ °¡Áö°í ÀÖÀ¸¸ç ÀÚ½ÅÀÇ ºÎ ¸ð¸¦ °¡Áö°í ÀÖ´Ù. O-ID´Â °¡Àå »óÀ§ °èÃþºÎÅÍ dotted decimal(.)À» »ç¿ëÇØ Ç¥ ÇöÇϴµ¥ ´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ ¼ýÀÚ³ª À̸§À» ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ´Ù. mgmtÀÇ °æ¿ì mgmt : iso.org.dod.internet.mgmt mgmt : 1.3.6.1.2 RFC1155¿¡¼­ Á¤ÀÇÇÑ O-ID¸¦ »ìÆ캸¸é ÃÖ»óÀ§ÀÎ root¿¡ iso°¡ ÀÖÀ¸¸ç, ±× ÇÏÀ§ ·Î org(Organization)¿Í dod(Depart ment of Defense) ¹Ø¿¡ internetÀ» Á¤ÀÇÇÏ °í ÀÖ´Ù. intern et ÇÏÀ§ÀÇ ³ëµåµéÀº Ç¥ 3°ú °°´Ù. ¸®½ºÆ® 2 : µ¥ÀÌÅÍÇü --------------------------------------------------------------- ApplicationSyntax ::= CHOICE { address NetworkAddress, counter Counter, gauge Gauge, ticks TimeTicks, arbitrary Opaque -- other application-wide types, as they are -- defined, will be added here } -- application-wide types NetworkAddress ::= CHOICE { internet IpAddress } IpAddress ::= [APPLICATION 0] -- in network-byte order IMPLICIT OCTET STRING (SIZE (4)) Counter ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295) Gauge ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295) TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295) Opaque ::= [APPLICATION 4] -- arbitrary ASN.1 value, IMPLICIT OCTET STRING -- "double-wrapped" --------------------------------------------------------------- µ¥ÀÌÅÍÇü(type) RFC1155¿¡¼­´Â O-ID¿Í ÇÔ²² MIBÀÇ °´Ã¼¸¦ Á¤ÀÇÇϱâ À§ÇÑ ¿©·¯ °¡Áö µ¥ÀÌÅÍ ÇüµéÀ» Á¤ÀÇÇÏ°í ÀÖ´Ù(¸®½ºÆ® 2). ¿©·¯ ÇüŵéÀº CHOICE¸¦ ÅëÇØ ÇÑ°¡Áö·Î »ç ¿ëµÈ´Ù. µ¥ÀÌÅÍÇüÀÇ Á¾·ù´Â Ç¥ 4¿Í °°´Ù. Concise MIB(RFC1212) SMI¸¶´Ù ±¸Á¶°¡ ´Ù¸¥ °¡Àå Å« ÀÌÀ¯´Â MACROÇüÀÇ ±¸Á¶°¡ °¢°¢ ´Ù¸£±â ¶§¹® ÀÌ´Ù. º¸Åë µ¥ÀÌÅÍÇü°ú °ªÀ» ¹­¾î¼­ MACROÇüÀ» ¸¸µé±â ¶§¹®¿¡ SNMP¿¡¼­ °ü¸®ÇÏ´Â ½ÇÁ¦ °´Ã¼ÀÇ ±¸Á¶´Â ´ëºÎºÐ MACROÇüÀ¸·Î Á¤ÀÇÇÑ´Ù. RFC-1212¿¡¼­ ´Â SNMP¿¡¼­ »ç¿ëÇÏ´Â °´Ã¼ÀÇ ±¸Á¶ÀÎ ¡®OBJECT-TYPE¡¯¿¡ °üÇØ Á¤ÀÇÇÏ°í ÀÖ´Ù(¸®½ºÆ® 3). OBJECT-TYPEÀº MIB¿¡¼­ °ü¸®ÇÏ´Â °´Ã¼ÀÇ ±¸Á¶·Î Å©°Ô ¹® ¹ý(SYNTAX), »ç¿ë±ÇÇÑ(ACCESS), »óÅÂ(STATUS), °ª(VALUE) µîÀ¸·Î ÀÌ·ç ¾îÁø´Ù(Ç¥ 5). STATUS¿¡ µû¸¥ ¿É¼Ç »çÇ×Àº Ç¥ 6°ú °°´Ù. ¸®½ºÆ® 3 : OBJECT-TYPE --------------------------------------------------------------- IMPORTS ObjectName FROM RFC1155-SMI DisplayString FROM RFC1158-MIB; OBJECT-TYPE MACRO ::= BEGIN TYPE NOTATION ::= -- must conform to RFC1155¡¯s ObjectSyntax "SYNTAX" type(ObjectSyntax) "ACCESS" Access "STATUS" Status DescrPart ReferPart IndexPart DefValPart VALUE NOTATION ::= value (VALUE ObjectName) Access ::= "read-only" | "read- write" | "write-only" | "not- accessible" Status ::= "mandatory" | "optional" | "obsolete" | "deprecated" DescrPart ::= "DESCRIPTION" value (description DisplayString) | empty ReferPart ::= "REFERENCE" value (reference Display String) | empty IndexPart ::= "INDEX" "{" IndexTypes "}" | empty IndexTypes ::= IndexType | IndexTypes "," IndexType IndexType ::= value (indexobject ObjectName) | type (indextype) -- if indexobject, use the SYNTAX -- value of the correspondent -- OBJECT-TYPE invocation -- otherwise use named SMI type -- must conform to Index Syntax below DefValPart ::= "DEFVAL" "{" value (defvalue ObjectSyntax) "}" | empty END --------------------------------------------------------------- MIB-II(RFC1213) MIB-II´Â SNMP ÇÁ·ÎÅäÄÝÀÌ ¸¸µé¾îÁø ÀÌÈÄ Ã¹ ¹ø°·Î ³ª¿Â MIB·Î TCP/IP ÇÁ·ÎÅäÄÝ »ó¿¡¼­ °ü¸®µÇ¾î¾ß ÇÏ´Â °´Ã¼µé¿¡ °üÇØ Á¤ÀÇÇÏ°í ÀÖ´Ù. ÇöÀç´Â ¿©·¯ °¡Áö MIBµéÀÌ ³ª¿ÍÀÖÁö¸¸, º¸Åë ³×Æ®¿öÅ© ÀåºñµéÀÌ SNMP¸¦ Áö¿øÇÑ´Ù°í ½áÀÖ À¸¸é ´ëºÎºÐ ÀÌ MIB-II¿¡ Á¤ÀÇµÈ °´Ã¼¸¦ °ü¸®ÇÑ´Ù°í ºÁµµ ¹«¹æÇÒ Á¤µµ·Î °¡Àå ´ëÁßÀûÀ¸·Î »ç¿ëµÇ´Â MIBÀÌ´Ù. MIBÀÇ ±âº» ±¸Á¶´Â ¸®½ºÆ® 4¿Í °°´Ù. ¸®½ºÆ® 4 ¿¡¼­´Â ¸ÕÀú IMPORTS ±¸¹®À» ÅëÇØ RFC1155¿¡ Á¤ÀÇµÈ mgmt O-ID¿Í ¿©·¯ °¡Áö µ¥ÀÌÅÍÇüÀ» °¡Á®¿À°í RFC-1212¿¡¼­ OBJECT-TYPE ¸ÅÅ©·Î¸¦ °¡Á®¿Â´Ù. »õ·Ó°Ô OCTET STRINGÇüÀ» ±âÃÊ·Î DisplayString°ú PhysAddressÇüÀÌ Ãß°¡ µÇ¾úÀ¸¸ç ¡®mib-2¡¯O-ID°¡ mgmt ¹Ø¿¡ Á¤ÀǵǾú´Ù(¸®½ºÆ® 5). MIB-II¿¡¼­ Á¤ÀÇµÈ ¸ðµç °´Ã¼´Â mib-2 ¹Ø¿¡ À§Ä¡Çϴµ¥ ÀüºÎ 10°³ÀÇ ±×·ìÀÌ Á¤ÀǵǾî ÀÖ´Ù. °¢ ±×·ìÀÌ ÇÏ´Â ¿ªÇÒÀº Ç¥ 7°ú °°´Ù. °¢ ±×·ìµéÀº ´Ù½Ã ±×·ì Ư ¼º¿¡ ¸Â´Â °´Ã¼·Î ³ª´µ¾îÁø´Ù. °¢°¢ÀÇ °´Ã¼´Â RFC-1212¿¡ Á¤ÀǵǾî ÀÖ´Â ¡®OBJECT-TYPE¡¯ÇüÀ¸·Î ±¸¼ºµÇ¸ç, ¿¡ÀÌÀüÆ®¿¡ ÀÇÇØ ÀνºÅϽºÈ­µÇ¸é ½ÇÁ¦ °ªÀ» °¡Áö°Ô µÈ´Ù. À̸¦ °¡¸®ÄÑ ¡®leaf no de¡¯·Î ºÎ¸£±âµµ ÇÑ´Ù. ¿©·¯ °¡Áö ±×·ì Áß¿¡¼­ system ±×·ì¿¡ ´ëÇؼ­ »ìÆ캸¸é, ÀÌ´Â °ü¸®ÇÏ´Â ½Ã½ºÅÛ ÀÇ ÀϹÝÀûÀÎ Á¤º¸¸¦ Á¦°øÇÏ´Â ±×·ìÀ¸·Î¼­, system ±×·ì¿¡¼­ °ü¸®ÇÏ´Â Á¤º¸´Â ´ÙÀ½ ±×¸² 5¿Í °°ÀÌ ÀÏ°ö °³ÀÇ °´Ã¼¿¡ ³ª´µ¾îÁ® ÀÖ´Ù. system ±×·ìÀÇ °´Ã¼µéÀÌ ÇÏ´Â ¿ªÇÒÀº Ç¥ 8°ú °°´Ù. system ±×·ì¿¡ ¼ÓÇÑ °´Ã¼Áß ÇϳªÀÎ ¡®sysDescr¡¯°´Ã¼¿¡ °üÇØ MIB-II ¿¡¼­ Á¤ ÀÇÇÑ ¿¹¸¦ »ìÆ캸¸é ¸®½ºÆ® 6°ú °°´Ù. ¡®sysDescr¡¯ÀÌ ¿¡ÀÌÀüÆ®¿¡ ÀÇÇØ ÀνºÅÏ ½ºÈ­µÇ¾úÀ» ¶§ °¡Áö´Â °ªÀÇ ¿¹¸¦ »ìÆ캸ÀÚ. SNMP MIB ºê¶ó¿ìÀú¸¦ »ç¿ëÇÏ¿© system ±×·ìÀÇ ¡®sys Descr¡¯À» ¼±ÅÃÇÏ¸é ¿ìÃø »ó´ÜÀÇ °´Ã¼¼³¸í â¿¡ ¡®sysDescr¡¯¿¡ ´ëÇÑ Á¤ÀÇ ³»¿ëÀ» º¼ ¼ö ÀÖ°í, SNMP ¿¡ÀÌÀüÆ®ÀÇ IP ÁÖ¼Ò¸¦ ÁúÀǸ¦ º¸³»¸é ½ÇÁ¦ µÇµ¹¾Æ¿À´Â °ªÀ» ¿ìÃø Ç쫆 ̢À» ÅëÇØ È®ÀÎÇÒ ¼ö ÀÖ´Ù(±×¸² 6). ¸®½ºÆ® 4 : MIB ±âº» ±¸Á¶ --------------------------------------------------------------- RFC1213-MIB DEFINITIONS ::= BEGIN IMPORTS mgmt, NetworkAddress, IpAddress, Counter, Gauge,TimeTicks FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212; mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } -- MIB-II (same prefix as MIB-I) -- textual conventions DisplayString ::= OCTET STRING -- This data type is used to model textual information taken from the NVT ASCII -- character set. PhysAddress ::= OCTET STRING -- This data type is used to model media addresses. -- For example, an ethernet address would be represented as a string of 6 octets. --------------------------------------------------------------- ¸®½ºÆ® 5 : mib-2 O-ID --------------------------------------------------------------- system OBJECT IDENTIFIER ::= { mib-2 1 } interfaces OBJECT IDENTIFIER ::= { mib-2 2 } at OBJECT IDENTIFIER ::= { mib-2 3 } ip OBJECT IDENTIFIER :: = { mib-2 4 } icmp OBJECT IDENTIFIER ::= { mib-2 5 } tcp OBJECT IDENTIFIER ::= { mib-2 6 } udp OBJECT IDENTIFIER ::= { mib-2 7 } egp OBJECT IDENTIFIER ::= { mib-2 8 } transmission OBJECT IDENTIFIER ::= { mib-2 10 } snmp OBJECT IDENTIFIER ::= { mib-2 11 } --------------------------------------------------------------- SNMP ¸Þ½ÃÁö Çü½Ä SNMP ¸Þ½ÃÁö Çü½ÄÀº ÀÎÄÚµù µÇ¾î ³×Æ®¿öÅ©¸¦ ÅëÇØ Àü¼ÛµÉ ¶§ÀÇ ÆÐŶ ÇüÅÂÀÌ ´Ù. ¸Þ½ÃÁö ÀüüÀÇ ±¸Á¶(RFC1157) SNMP ¸Þ½ÃÁöÀÇ ÀüüÀûÀÎ ±¸Á¶´Â ¸®½ºÆ® 7°ú °°ÀÌ RFC1157¿¡ Á¤ÀǵǾî ÀÖ´Ù. ¸Þ½ÃÁö´Â version, community, dataÀÇ ¼¼ °¡Áö ¿ä¼Ò¸¦ SEQUENCE·Î ¹­Àº Çü Ÿ¦ ÃëÇÏ°í ÀÖ´Ù. ¿©±â¼­ versionÀº SNMPÀÇ ¹öÀüÀ» ÀǹÌÇϸç, community´Â ¸Å´ÏÀú¿Í ¿¡ÀÌÀüÆ®°£ÀÇ ¸Þ½ÃÁö ÀÎÁõ ¹æ¹ýÀ», data´Â ½ÇÁ¦ ¾Ë¸ÍÀÌ µ¥ÀÌÅ͸¦ ÀÇ ¹ÌÇÑ´Ù. SNMPÀÇ º¸¾È ¹æ¹ý ¿©·¯ °¡Áö Á¤º¸¸¦ ¾ÈÀüÇÏ°Ô °ü¸®Çϱâ À§Çؼ­´Â ÄÄÇ»ÅÍ ½Ã½ºÅÛ°ú ³×Æ®¿öÅ©¿¡ º¸¾ÈÀÌ º¸ÀåµÇ¾î¾ß ÇÑ´Ù. SNMP´Â ÀÎÁõ°ú Á¢±Ù ¹æħÀ» Á¤ÇÏ´Â ³·Àº ´Ü°èÀÇ º¸ ¾ÈÀ» Á¦°øÇÑ´Ù(ÀÌ ºÎºÐÀº SNMPv3¿¡¼­ Å©°Ô Çâ»óµÇ¾ú´Ù). ¡Ü community ÀÎÁõ, Á¢±Ù ¹æħ, proxyÀÇ Æ¯¼ºÀ» Á¤ÀÇÇÏ´Â ÇϳªÀÇ ¿¡ÀÌÀüÆ®¿Í ¿©·¯ ¸Å´ÏÀú »ç ÀÌÀÇ °ü°èÀÌ¸ç °¢ ¿¡ÀÌÀüÆ®¸¦ ±âÁØÀ¸·Î Á¤ÀǵȴÙ. ÇÑ ¿¡ÀÌÀüÆ®´Â ¿©·¯ community¸¦ °¡Áú ¼ö ÀÖÀ¸³ª °¢°¢ÀÇ À̸§Àº ±× ¿¡ÀÌÀüÆ® ³»¿¡¼­ À¯ÀÏÇÏ¸ç ´Ù ¸¥ ¿¡ÀÌÀüÆ®°¡ °°Àº À̸§ÀÇ community¸¦ °¡Áú ¼ö´Â ÀÖ´Ù. ¶ÇÇÑ communityÀÇ À̸§Àº Æнº¿öµåÀÇ ¿ªÇÒÀ» ÇϹǷΠ¸Å´ÏÀú·ÎºÎÅÍÀÇ ¸ðµç ¸Þ½ÃÁö´Â ÀÌ À̸§À» Æ÷ ÇÔÇØ¾ß ÇÑ´Ù. ±×¸² 7Àº ¿¡ÀÌÀüÆ®°¡ GET°ú SET µ¿ÀÛ¿¡ ´ëÇØ ¼­·Î ´Ù¸¥ community¸¦ °¡Áö°í ÀÖ´Â ¿¹ÀÌ´Ù. °ü·ÊÀûÀ¸·Î ¸ðµÎ¿¡°Ô °ø°³ÇÏ´Â MIB °´Ã¼ ³ª, µ¿ÀÛ¿¡ ´ëÇؼ­´Â¡®public¡¯community¸¦ »ç¿ëÇÏ°í, SET°ú °°Àº ¾²±â µ¿ÀÛ À̳ª privateÇÑ MIB¿¡ ´ëÇؼ­ ºñ¹ÐÀÇ comunity¸¦ Àû¿ëÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ¡Ü access policy °¢°¢ÀÇ community¸¶´Ù MIB¿¡ ´ëÇÑ °¢°¢ ´Ù¸¥ ÇüÅÂÀÇ ±ÇÇÑÀ¸·Î Á¢±ÙÀ» Á¦¾î ÇÑ´Ù. ÀÌ·¯ÇÑ Á¢±Ù Á¦¾îÀÇ ¹æ¹ýÀº SNMP MIB¿¡ ÀÇÇÑ °üÁ¡(°ü¸® °´Ã¼µéÀÇ Áý ÇÕÀ¸·Î °¢ community¸¶´Ù ´Ù¸¥ SNMP MIB °üÁ¡À» °¡Áú ¼ö ÀÖÀ½)¿¡ ÀÇÇÑ ¹æ ¹ý°ú SNMP Á¢±Ù ¸ðµå(°¢ community¿¡ ´ëÇÑ Á¢±Ù ¸ðµå·Î READ-ONLY³ª READ-WRITE Áß ÇÑ °ªÀ» ÃëÇÒ ¼ö ÀÖÀ½)¿¡ ÀÇÇÑ ¹æ¹ýÀ¸·Î ³ª´· ¼ö ÀÖÀ¸¸ç ÀÌ µÑ¿¡ ´ëÇÑ ºñ±³´Â Ç¥ 9¿Í °°´Ù. ¡Ü proxy ¼­ºñ½º proxy´Â SNMP³ª TCP/IP¸¦ Áö¿øÇÏÁö ¾Ê´Â °ü¸® ´ë»óÀ» À§ÇÑ ¿¡ÀÌÀüÆ®¸¦ ¸» ÇÏ´Â °ÍÀ¸·Î proxy´Â ÀÚ½ÅÀÌ ´ë½ÅÇÏ´Â °ü¸® ´ë»ó¿¡ ´ëÇÑ SNMP Á¢±Ù ¹æħÀÌ ³ª ÀÎÁõ ¼­ºñ½º¸¦ Á¦°øÇϱ⵵ ÇÑ´Ù. PDU(Protocol Data Unit)ÀÇ ±¸¼º SNMP ¸Þ½ÃÁöÀÇ ¾Ë¸ÍÀ̶ó ÇÒ ¼ö ÀÖ´Â PDU´Â ¸®½ºÆ® 8°ú °°ÀÌ CHOICE¸¦ »ç ¿ëÇÏ¿© ´Ù¼¸ °³ÀÇ ¸Þ½ÃÁö Á¾·ù Áß¿¡ Çϳª¸¦ ¼±ÅÃÇϵµ·Ï µÇ¾î ÀÖ´Ù. ÇϳªÀÇ PDU´Â ¸®½ºÆ® 9¿Í °°ÀÌ °´Ã¼ÀÇ O-ID¿Í value¸¦ SEQUENCE·Î ¹­Àº ÇüÅ·ΠµÇ¾î ÀÖ´Ù. À̸¦ Çϳª·Î ¹­¾î¼­ ÀüüÀÇ SNMP ¸Þ½ÃÁö¸¦ »ìÆ캸¸é ±×¸² 8°ú °° ´Ù. Âü°í·Î PDUÀÇ ÇÊµå ³»¿ëÀº Ç¥ 10°ú °°´Ù. ÇÁ·ÎÅäÄÝ ºÐ¼®±â¸¦ »ç¿ëÇÏ¿© ½Ç Á¦ SNMP ÆÐŶÀ» Àâ¾Æº¸¸é ±×¸² 9¿Í °°´Ù(IP ÁÖ¼Ò 203.253.145.59ÀÇ ¸Å´ÏÀú¿¡ ¼­ 203.253.145.5ÀÇ ¿¡ÀÌÀüÆ®·Î request¿Í response¸¦ ¹ÞÀº °æ¿ì). ¿©±â¼­ variable-bindingÀ» ÀÚ¼¼È÷ »ìÆ캸¸é ÀÌ ¸Þ½ÃÁöÀÇ O-ID´Â 1.3.6.1.2.1.1 ÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ´Â sysDescrÀÇ O-IDÀ̸ç requestÀ̱⠶§¹®¿¡ value ¿µ¿ª¿£ NULL ÀÌ »ðÀԵǾú´Ù. ¸®½ºÆ® 6 : sysDescr --------------------------------------------------------------- sysDescr OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-only STATUS mandatory DESCRIPTION "A textual description of the entity. This value should include the full name and version identification of the system¡¯s hardware type, software operating-system, and networking software. It is mandatory that this only contain printable ASCII characters." ::= { system 1 } --------------------------------------------------------------- Trap ¸Þ½ÃÁö Æ®·¦Àº Ưº°ÇÑ À̺¥Æ®³ª »ç°í°¡ ¹ß»ýÇßÀ» °æ¿ì ¿¡ÀÌÀüÆ®°¡ ÀÚÀÇÀûÀ¸·Î ÆÇ´ÜÇÏ ¿© ¸Å´ÏÀú¿¡°Ô ¾Ë¸®´Â ¸Þ½ÃÁöÀÌ´Ù. Æ®·¦ PDU´Â enterprise, agent-addr µî ¿© ·¯ ±¸¼º ¿ä¼ÒµéÀÌ SEQUENCE·Î ÇÕÃÄÁø ÇüÅÂÀÌ´Ù. °¢ Ç׸ñÀÇ ³»¿ëÀº Ç¥ 11°ú °°´Ù. ±×¸®°í ÀϹÝÀûÀÎ Æ®·¦ÀÇ Á¾·ù´Â Ç¥ 12¿Í °°´Ù. ½ÇÁ¦ ¹ß»ýÇÑ Æ®·¦ÀÇ ¿¹¸¦ »ìÆ캸ÀÚ. ±×¸² 10Àº ¡®e-watch¡¯³»ÀÇ ÀÖ´Â Æ®·¦ ¸Å´ÏÀú¸¦ »ç¿ëÇÏ¿© IP ÁÖ¼Ò 203.253.145.68ÀÇ SNMP ¿¡ÀÌÀüÆ®¿¡¼­ SpecificÇüÀÇ Æ®·¦ ¸Þ½ÃÁö¸¦ ¹ß»ý½ÃŲ °æ ¿ì´Ù. specificÇüÀº viriable binding ºÎºÐ¿¡ ƯÁ¤ÇÑ O-ID°¡ µû¶ó¿ÈÀ» ¾Ë ¼ö ÀÖ ´Ù. ¸®½ºÆ® 7 : SNMP ¸Þ½ÃÁö ±¸Á¶ --------------------------------------------------------------- RFC1157-SNMP DEFINITIONS ::= BEGIN IMPORTS ObjectName, ObjectSyntax, Network Address, IpAddress, TimeTicks FROM RFC1155-SMI; -- top-level message Message ::= SEQUENCE { version INTEGER { version-1(0) }, -- version-1 for this RFC community OCTET STRING, -- community name data -- e.g., PDUs if trivial ANY -- authentication is being used } --------------------------------------------------------------- Âü°í ±×¸² 6¿¡¼­ ¿¹·Îµç MIB ºê¶ó¿ìÀú È­¸éÀº ÇÁ·ÎÅäÄÝ ºÐ¼®±âÀÎ ¡®e-watch¡¯³»¿¡ Æ÷ÇԵǾî ÀÖ´Â SNMP MIB ºê¶ó¿ìÀú¸¦ »ç¿ëÇÑ °ÍÀ¸·Î http://ewatch.hangkong.ac.kr¿¡¼­ ¡®e-watch¡¯¸¦ ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù. ´Ù¸¥ ±×·ì ÀÇ ³»¿ëµéµµ system ±×·ì°ú °°Àº Çü½ÄÀ» ÃëÇϹǷΠÁ÷Á¢ MIB ºê¶ó¿ìÀú¸¦ »ç¿ë ÇÏ¿© °¢°¢ÀÇ ³»¿ëÀ» È®ÀÎÇϱ⠹ٶõ´Ù. ¸¶Ä¡¸ç À̹ø È£¿¡´Â SNMPÀÇ °ü¸® ¹æ½Ä°ú, MIB, ¸Þ½ÃÁö ÇüÅÂ, À©µµ¿ì 98¿¡¼­ÀÇ ÀÀ¿ë µîÀ» »ìÆ캸¾Ò´Ù. ´ÙÀ½ È£¿¡´Â ¸®´ª½º¿Í À©µµ¿ìNT µîÀÇ ¸ÖƼÀ¯Àú ¿î¿µÃ¼°è¿¡ ¼­ÀÇ SNMP È°¿ë ¹æ¹ýÀ» »ìÆ캸°Ú´Ù. ¸®½ºÆ® 8 : PDU --------------------------------------------------------------- PDUs ::= CHOICE { get-request GetRequest-PDU, get-next-request GetNextRequest-PDU, get-response GetResponse-PDU, set-request SetRequest-PDU, trap Trap-PDU } --------------------------------------------------------------- ¸®½ºÆ® 9 : PDU --------------------------------------------------------------- PDU ::= SEQUENCE { request-id INTEGER, error-status INTEGER { noError(0), tooBig(1), noSuchName(2), badValue(3), readOnly(4), genErr(5) }, error-index INTEGER, variable-bindings VarBindList } VarBind ::= SEQUENCE { name ObjectName, value ObjectSyntax } VarBindList ::= SEQUENCE OF VarBind --------------------------------------------------------------- ¸®½ºÆ® 10 : Trap ¸Þ½ÃÁö --------------------------------------------------------------- Trap-PDU ::= IMPLICIT SEQUENCE { enterprise OBJECT IDENTIFIER, -- type of object generating -- trap, see sysObjectID in [5] agent-addr NetworkAddress, -- address of object generating trap generic-trap INTEGER { coldStart(0), warmStart(1), linkDown(2), linkUp(3), authenticationFailure(4), egpNeighborLoss(5), enterpriseSpecific(6) }, -- generic trap type specific-trap INTEGER, -- if generic-trap is not enterpriseSpecific time-stamp TimeTicks, -- time elapsed between the last (re)initialization of the network entity and -- the generation of the trap variable-bindings VarBindList - - "interesting" information } --------------------------------------------------------------- À©µµ¿ì 98¿¡¼­ SNMP È°¿ë º¸Åë ¿¡ÀÌÀüÆ®¿Í ¸Å´ÏÀú ÅøÀº °ü¸®ÇÏ·Á´Â ÀåÄ¡ÀÇ Æ¯¼º¿¡ ¸Â°Ô Á¦À۵DZ⠶§¹®¿¡ °í°¡À̸ç Á¢Çϱ⵵ Èûµé´Ù. À©µµ¿ì 98¿¡´Â °í±ÞÈ­µÈ ±â´ÉÀÇ SNMP´Â Áö¿øÇÏÁö ¾ÊÁö¸¸ RFC 1213 MIB-II¸¦ Áö¿øÇÏ´Â ¿¡ÀÌÀüÆ®¸¦ ±âº»ÀûÀ¸·Î Á¦°øÇϹǷΠSNMP MIB ºê¶ó¿ìÀú¿Í ÀÌ ¿¡ÀÌÀüÆ®¸¦ ÀÌ¿ëÇÏ¸é ±âº»ÀûÀÎ SN MP ¸ðµ¨À» ±¸ ÇöÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ÇÁ·ÎÅäÄÝ ºÐ¼®±â¸¦ »ç¿ëÇÏ¿© SNMP ¸Þ½ÃÁö »ç·Êº°·Î ÆÐŶ À» °Ë»çÇغ¸¸é ´õ Å« SNMP ¸ðµ¨ÀÇ ±¸Çöµµ ½±°Ô ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. À©µµ¿ì 98ÀÇ SNMP ¿¡ÀÌÀüÆ®¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù. ¨ç Á¦¾îÆÇÀÇ ³×Æ®¿öÅ© Ç׸ñ¿¡¼­ ¡®¼­ºñ½º Ãß°¡¡¯¸¦ ¼±ÅÃÇÏ°í À©µµ¿ì98 CD¸¦ »ðÀÔÇÑ´Ù(±×¸² 11). ¨è ¼­ºñ½ºÈ­¸é¿¡ SNMP ¼­ºñ½º°¡ ³ª¿ÀÁö ¾ÊÀ¸¸é ¡®µð½ºÅ© ÀÖÀ½¡¯À» ¼±ÅÃÇÑ´Ù. ¨é À©µµ¿ì98 Á¤Ç° CDÀÇ ¡®tools\reskit\netadmin\snmp¡¯ µð·ºÅ丮¸¦ »ìÆ캸¸é SNMP ¿¡ÀÌÀüÆ® ÇÁ·Î±×·¥À» Ãß°¡ÇÒ ¼ö ÀÖ´Ù(±×¸² 12). Á¦ ¸ñ:[9910]³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹°ÉÀ½(3) [252] 1999-10-04 11:45 ³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹ °ÉÀ½!(3) LinuxÀÇ SNMP °ü¸® µµ±¸ SNMP¸¦ ÀÌ¿ëÇÑ °ü¸® ÇÁ·Î±×·¥Àº µÎ °¡Áö·Î ºÐ·ùÇÒ ¼ö ÀÖ´Ù. Çϳª´Â ¶ó¿ìÅÍ, Çãºê, UPS µî ³×Æ®¿öÅ©¿Í Åë½Å Àåºñ¿¡ ÀÓº£µðµå(embedded) µÇ¾î ±¸ÇöµÇ´Â ¿¡ ÀÌÀüÆ®(agent) ÇÁ·Î±×·¥ÀÌ°í, ´Ù¸¥ Çϳª´Â °¢Á¾ ¿î¿µÃ¼°è ¾Æ·¡¼­ °³¹ßµÇ¾î agentÀÇ Á¤º¸¸¦ ¼öÁýÇØ ÀüüÀûÀÎ ³×Æ®¿öÅ©¸¦ °ü¸®ÇÏ´Â ¸Å´ÏÀú(manager) ÇÁ·Î ±×·¥ÀÌ´Ù. ÃÖ±Ù °ø°³ ¿î¿µÃ¼°è·Î °¢±¤¹Þ°í ÀÖ´Â ¸®´ª½º¿¡¼­ ±¸ÇöµÈ °ø°³ SNMP °ü¸® ÇÁ·Î±×·¥µéÀ» »ìÆ캸°í, À̸¦ ÀÌ¿ëÇØ ³×Æ®¿öÅ©¸¦ °ü¸®ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. ³ëÁ¤¹Î Çѱ¹Ç×°ø´ëÇб³ Åë½ÅÁ¤º¸°øÇаú ´ëÇпø hmask@esc.cl.hangkong.ac.kr ¿¬Àç ¼ø¼­ 99/08 NMSÀÇ °³³ä 99/09 ÀÎÅÍ³Ý Ç¥ÁØ °ü¸®Ã¼Á¦, SNMP 99/10 LinuxÀÇ SNMP °ü¸® µµ±¸ ¸®´ª½º´Â À¯´Ð½ºÀÇ ³×Æ®¿öÅ© ±â´ÉÀ» ´ëºÎºÐ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¼Ò½º°¡ °ø°³µÈ ³× Æ®¿öÅ© ÇÁ·Î±×·¥À» ½±°Ô ±¸ÇÒ ¼ö Àֱ⠶§¹®¿¡ ³×Æ®¿öÅ©¸¦ °øºÎÇÏ·Á´Â µ¶Àڵ鿡 °Õ ²À ÇÊ¿äÇÑ Áغñ¹°ÀÌ´Ù. SNMP °ü¸® ÇÁ·Î±×·¥ ¶ÇÇÑ ¼Ò½º°¡ °ø°³µÈ °æ¿ì°¡ ¸¹¾Æ ¸®´ª½º¸¦ ºñ·ÔÇÑ ¿©·¯ ¿î¿µÃ¼°è¿¡¼­ ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ëÇ¥ÀûÀÎ °ÍÀº CMU(Carnegie Mellon University) SNMP ÇÁ·Î±×·¥À¸·Î ´ëºÎºÐÀÇ ³×Æ®¿öÅ© Àåºñ¿¡ Æ÷ÇԵǴ SNMP ¸ðµâµéÀÌ »ç¿ëÇÏ°í ÀÖÀ» Á¤µµ·Î SNMP ¿¡ÀÌÀüÆ®ÀÇ Ç¥º»ÀÌ´Ù. CMU-SNMPÀÇ ¼Ò°³ CMU-SNMP´Â Ä«³×±â ¸á·Ð ´ëÇп¡¼­ °³¹ßÇÑ SNMP °ü¸® ÇÁ·Î±×·¥ÀÌ´Ù. CMU-SNMP´Â SNMP ¿¡ÀÌÀüÆ®¿Í ¸î °¡Áö SNMP ÀÀ¿ë ÇÁ·Î±×·¥µéÀ» Æ÷ÇÔÇÏ °í ÀÖÀ¸¸ç, SNMPv1°ú SNMPv2¸¦ Áö¿øÇÑ´Ù(SNMPv2ÀÇ º¸¾È ¹®Á¦ÇØ°áÀ» À§ÇØ Ãʱ⠹öÀüÀÎ SNMPv2party ¸ðµ¨Àº Áö¿øÇÏÁö ¾Ê°í SNMPv2usec ¸ðµ¨À» Áö¿ø ÇÑ´Ù). ÇöÀç °¡Àå ÃֽŠ¹öÀüÀº 3.6ÀÌ¸ç ¸®´ª½º ¾ÈÁ¤Ä¿³Î v2.0.35, ½ÇÇèÄ¿³Î v2.1.125¿Í libc v5.4.38À̻󿡼­ µ¿ÀÛÇÑ´Ù. ÇÏÁö¸¸ ¹öÀü 3.4 ÀÌ»óÀº Å« Â÷ÀÌ°¡ ¾øÀ¸¹Ç·Î ³· Àº ¹öÀüÀ» »ç¿ëÇصµ »ó°ü¾ø´Ù. CMU SNMP¿¡¼­ Áö¿øÇÏ´Â MIB´Â ´ÙÀ½°ú °°´Ù. - MIB-2(RFC 1213) - Identification MIB(RFC 1414) - Host Resources MIB(RFC 1514) - TUBS Linux MIB(¸®´ª½º »ç¾ç¿¡ ¸Â´Â ½ÇÇèÀûÀÎ MIB) ¼³Ä¡ CMU-SNMP´Â ´ÙÀ½ÀÇ site¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. Main ftp site ftp://ftp.ibr.cs.tu-bs.de/pub/local/linux-cmu-snmp/ Mirror ftp://sunsite.unc.edu/pub/Linux/system/network/admin(±¹¿Ü) ftp://ftp.kreonet.re.kr/pub/Linux/sunsite/system/network/admin(±¹³») ¹èÆ÷ÆÇÀº ¼Ò½º ¹öÀü°ú ¹ÙÀ̳ʸ® ¹öÀüÀÇ µÎ °¡Áö Á¾·ù°¡ ÀÖÀ¸¸ç, 3.4 ¹öÀüÀ» ±â ÁØÀ¸·Î ¼³¸íÇÏ°íÀÚ ÇÑ´Ù. °¢°¢ÀÇ ÆÄÀÏÀ̸§Àº ´ÙÀ½°ú °°´Ù. - cmu-snmp-linux-3.4-src.tar.gz(¼Ò½º ¹öÀü) - cmu-snmp-linux-3.4-bin.tar.gz(¹ÙÀ̳ʸ® ¹öÀü) ¼³Ä¡ ¹æ¹ý ¼³Ä¡ÇÏ´Â ¹æ¹ýÀº ¹ÙÀ̳ʸ® ¹öÀüÀ» ¼³Ä¡ÇÏ´Â ¹æ¹ý°ú ¼Ò½º¸¦ ÄÄÆÄÀÏÇؼ­ ¼³Ä¡ÇÏ ´Â ¹æ¹ý µî µÎ °¡Áö°¡ ÀÖ´Ù. (1) ¹ÙÀ̳ʸ® ¼³Ä¡ ¹ÙÀ̳ʸ® ¹èÆ÷ÆÇÀ» ¼³Ä¡Çϱâ À§Çؼ­´Â ¸ÕÀú ¸®´ª½º ½Ã½ºÅÛÀÌ ELF¸¦ Áö¿øÇØ¾ß ÇÑ´Ù(ELF libc, ELF kernel). ±×¸®°í ±âÁ¸ÀÇ snmpd µ¥¸óÀ̳ª snmplib¸¦ »ç¿ë ÇÏ°í ÀÖÀ¸¸é »èÁ¦ÇÑ ´ÙÀ½¿¡ ¼³Ä¡ÇØ¾ß ÇÑ´Ù. ¼³Ä¡ °úÁ¤Àº ´ÙÀ½°ú °°´Ù. - root·Î login - cd /(root µð·ºÅ丮·Î À̵¿ÇÑ´Ù.) - tar xvzf .../cmu-snmp-linux-3.4-bin.tar.gz (¹èÆ÷ÆÇÀ» Ǭ´Ù.) - cd /tmp/cmu-snmp-linux/etc - ./installconf -mini (agentÀÇ Æнº¿öµå¸¦ ¼³Á¤ÇÑ´Ù.) - /etc/rc.local ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ¡®snmpd¡¯ µ¥¸óÀ» Ãß°¡ÇÑ´Ù. - /usr/sbin/snmpd -f ; echo ¡®snmpd¡¯ (2) ¼Ò½º ¼³Ä¡ - root·Î login - tar xvzf .../cmu-snmp-linux-3.4-src.tar.gz (Àû´çÇÑ µð·ºÅ丮¿¡ ¼Ò½º¸¦ Ǭ´Ù.) - cd cmu-snmp-linux-3.4 - ./configure - make(ÄÄÆÄÀÏ ÇÑ´Ù.) - make install - cd ./etc - ./installconf -mini (agentÀÇ Æнº¿öµå¸¦ ¼³Á¤ÇÑ´Ù.) - /etc/rc.local ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ¡®snmpd¡¯ µ¥¸óÀ» Ãß°¡ÇÑ´Ù. /usr/sbin/snmpd -f ; echo ¡®snmpd¡¯ ¼³Ä¡¸¦ ³¡³µÀ¸¸é Àç ºÎÆÃÇÑ ´ÙÀ½ snmpwalk ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© Å×½ºÆ® Çغ¸ ÀÚ. ±×¸² 1Àº snmpwalk¸¦ »ç¿ëÇÏ¿© ½Ã½ºÅÛ Å×À̺íÀ» »ìÆ캻 °ÍÀ¸·Î ÇöÀç ¼³Á¤ µÇ¾î ÀÖ´Â ½Ã½ºÅÛ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥µé (1) snmpd CMUÀÇ SNMP ¿¡ÀÌÀüÆ®·Î¼­ SNMPv1°ú SNMP 2usecÀÇ ÁúÀÇ¿¡ ´ëÇÑ ÀÀ´äÀ» ÇØÁØ´Ù. ȯ°æ ¼³Á¤Àº snmpd.conf ÆÄÀÏ¿¡ ÀÇÇؼ­ ÀÌ·ç¾îÁö¸ç °ü¸®ÀÚ´Â system .sysName, system.sysLocation°ú system.sys Contact µîÀÇ ³»¿ëÀ» ¼³Á¤ÇØ ÁÙ ¼ö ÀÖ´Ù. SNMPv1 ÁúÀÇ¿¡ ´ëÇÑ community À̸§Àº ±âº»ÀûÀ¸·Î ¸ðµÎ ¡®public¡¯À̸ç, host Å×À̺íÀÇ SNMPv2usec ÇüÅÂÀÇ ÁúÀÇ´Â º¸¾È ³»¿ë¿¡ µû¶ó ´Ù¸¥ community¸¦ »ç¿ëÇÑ´Ù. ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù. - d : SNMP ÆÐŶ ³»¿ëÀ» ´ýÇÁÇؼ­ º¸¿©ÁØ´Ù. - f : ½ÇÇàÇÑ ´ÙÀ½ ¹é±×¶ó¿îµå¿¡¼­ µ¿ÀÛÇÏ°Ô ÇÑ´Ù. - c : ½ÇÇà¿¡ ÇÊ¿äÇÑ ¼³Á¤ ÆÄÀÏÀ» ºÒ·¯µéÀδÙ. - a : ½ÇÇà¿¡ ÇÊ¿äÇÑ agent ¼³Á¤ ÆÄÀÏÀ» ºÒ·¯µéÀδÙ. (2) snmpd.conf snmpd¸¦ À§ÇÑ ¼³Á¤ÆÄÀÏÀÌ´Ù. ÆÄÀÏÀÇ ³»¿ëÀº view¿Í user, community ¼³Á¤¿¡ °üÇÑ ºÎºÐ°ú Æ÷Æ®, ÀÎÅÍÆäÀ̽º ¼³Á¤¿¡ °üÇÑ ºÎºÐÀÇ µÎ °¡Áö·Î ³ª´¶´Ù. ÀüÀÚÀÇ ¼³Á¤Àº º¸¾ÈÀ» À§Çؼ­ Á¢±Ù ±ÇÇÑÀ» ´ÙÀ½°ú °°ÀÌ ¼¼ °¡Áö·Î ±¸ºÐµÈ´Ù. switch security posture - mini internet subtree¿¡ ´ëÇؼ­¸¸ read-only ±ÇÇÑÀ¸·Î¸¸ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. - semi system subtree¿Í agent Åë°è¿¡ ´ëÇؼ­¸¸ read-only ±ÇÇÑÀ¸ ·Î Á¢±ÙÇÒ ¼ö ÀÖ´Ù. - very agent Åë°è¿¡ ´ëÇؼ­¸¸ read-only ±ÇÇÑÀ¸·Î Á¢±ÙÇÒ ¼ö ÀÖ´Ù. óÀ½ ¼³Ä¡(installconf)ÇÒ ¶§ ÀÌ ½ºÀ§Ä¡¿¡ µû¶ó¼­ Æнº¿öµå¸¦ Á¤ÇØ ÁÙ ¼ö ÀÖ´Ù. ±× ¿Ü ´Ù¸¥ ¼³Á¤¿¡ ´ëÇÑ Å°¿Í ÆĶó¹ÌÅÍ´Â ´ÙÀ½°ú °°´Ù. À̸¦ ¹ÙÅÁÀ¸·Î ¼³Á¤ÇÑ snmpd.conf ÆÄÀÏÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù. À̸¦ ¹ÙÅÁÀ¸·Î ¼³Á¤ÇÑ snmpd.conf ÆÄÀÏÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù. (3) snmpget SNMP ¿¡ÀÌÀüÆ®¿¡°Ô Get Request¸¦ Çؼ­ Response¸¦ ¹Þ¾Æ¿À´Â ÇÁ·Î±×·¥ÀÌ´Ù. »ç¿ë¹ý : snmpget host community variable COMMUNITY Argument snmpget ÇÁ·Î±×·¥Àº SNMPv1/SNMPv2c/SNMPv2u secÀ» ÀüºÎ Áö¿øÇϱ⠶§¹® ¿¡, À̵éÀ» argument¸¦ ÅëÇؼ­ ±¸ºÐÇÑ´Ù. - community ¹®ÀÚ¿­ÀÇ Ã¹ ÀÚ°¡ ¡°+¡±·Î ½ÃÀ۵Ǹé SNMPv2c (cmomunity-based SNMPv2)·Î ÀνÄÇÑ´Ù. - community ¹®ÀÚ¿­ÀÇ Ã¹ ÀÚ°¡ ¡°-¡±·Î ½ÃÀ۵Ǹé SNMPv2u(User-based - security model)·Î ÀνÄÇÑ´Ù. - ±× ¿Ü ´Ù¸¥ community ¹®ÀÚ¿­Àº ÀüºÎ SNMPv1·Î ÀνÄÇÑ´Ù. SNMPv2uÀÇ ÀüüÀûÀÎ community¹®ÀÚ¿­Àº ´ÙÀ½°ú °°´Ù. /userName/[authenticationKey]/[privacyKey]/[contextSelector] ¿©±â¼­ Å° °ªÀº ¹®ÀÚ¿­°ú hex Äڵ带 »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, hex Äڵ带 »ç¿ëÇÒ ¶§ ´Â ¹Ýµå½Ã ¸Ç ¾Õ¿¡ ¡®0x¡¯¸¦ Ãß°¡ÇØ¾ß ÇÑ´Ù. »ç¿ë ¿¹´Â ´ÙÀ½°ú °°´Ù. /joy : QoS = noAuth/noPriv, userName = "joe" /boneless/chicken/ranch : QoS = auth/priv, userName ="boneless", authKey ="chicken", privKey ="ranch" /maplesyrup/sugarbush// : QoS = auth/noPriv, context ="other", userName ="maplesyrup" authKey ="sugarbush" /glenn/0x4ca25023b00a6689ef21cb1b6fa9cb0e : QoS = auth/noPriv, context="", userName ="glenn" authKey ="0x4ca25023b00a6689ef21cb1b6fa9cb0e" +public : SNMPv2c public : SNMPv1 (4) snmpgetnext SNMP ¿¡ÀÌÀüÆ®¿¡°Ô Get Next Request¸¦ »ç¿ëÇÏ¿© ¿©·¯ °³ÀÇ Response¸¦ µÇ µ¹·Á ¹Þ´Â´Ù. »ç¿ë¹ý : snmpgetnext host community variable-name [variable-name] . . . (5) snmptrap SNMP Æ®·¦ ¸Þ½ÃÁö¸¦ ÁöÁ¤ÇÑ È£½ºÆ®¿¡ Àü¼ÛÇÑ´Ù. »ç¿ë¹ý : snmptrap host community trap-type specific-type device-description device description Æ®·¦ ¸Þ½ÃÁö¿¡ Àü´ÞÇÒ ÀåÄ¡¿¡ °üÇÑ ¼³¸íÀ¸·Î system. sysDescr.0¿¡ ÀúÀåµÇ´Â º¯¼ö °ªÀÌ´Ù. # snmptrap nic.andrew.cmu.edu public 0 0 ¡®SUN 3/60: SUNOS 4.0¡¯ # (nic.andrew.cmu.eduÀÇ ½Ã½ºÅÛ¿¡ coldStart Æ®·¦À» Àü¼ÛÇÑ´Ù) (6) snmptrapd ¿ÜºÎ¿¡¼­ Àü´ÞµÈ SNMP Æ®·¦ ¸Þ½ÃÁö¸¦ 162¹ø Æ÷Æ®¸¦ ÅëÇؼ­ ¹Þ´Â´Ù. ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù. - p : ¸Þ½ÃÁö¸¦ È­¸é¿¡ Ãâ·ÂÇÑ´Ù. - s : syslog¸¦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö¸¦ ÀúÀåÇÑ´Ù. ÀÌ·± syslog ¸Þ½ÃÁö´Â LOG_WARNING ·¹º§·Î Àü´ÞµÈ´Ù. - v 1 : SNMPv1 Æ®·¦ ¸Þ½ÃÁö¸¦ ¹Þ´Â´Ù. - d : ÆÐŶÀ» ´ýÇÁÇÏ¿© Ãâ·ÂÇÑ´Ù. snmptrapd¸¦ µ¿ÀÛ½ÃÅ°°í snmptrapÀ» »ç¿ëÇÏ¿© localhost·Î Æ®·¦ ¸Þ½ÃÁö¸¦ Àü¼Û ÇÑ ¿¹. snmpd.confÀÇ ¿¹ # snmpd.conf - created Mon Aug 30 16:26:04 KST 1999 # view configuration # viewName OID included/excluded # internet view all .1.3.6.1 included # internet view mini .1.3.6.1 included # for v1 public exclude exclude mib-2.ident.identInfo # and mib-2.host.hrSWRun in the mini view: view xmini .1.3.6.1 included view xmini .1.3.6.1.2.1.24.1 excluded view xmini .1.3.6.1.2.1.25.4 excluded # system, snmp, usecAgent, usecStats view semi .1.3.6.1.2.1.1 included view semi .1.3.6.1.2.1.11 included view semi .1.3.6.1.6.3.6.1.1 included view semi .1.3.6.1.6.3.6.1.2 included # . . . Áß·« # community configuration # commName readV writeV community public xmini - ## uncomment for private entry: # community private mini mini ## port to use (default is 161): # port: 161 ## the entry of system.Contact and system.Location: sysContact: Not Configured sysLocation: Not Configured ## the system name is per default determined from the hostname: # sysName: chappell ## trap sink address and community string. (passed to snmptrap(1)utility). ## authentraps contains the value of snmpEnableAuthenTraps; (default is `disabled¡¯). trap sink: localhost trap community: public snmpEnableAuthenTraps: disabled ## specify type and speed of interfaces: if the last char is an asterisk, any suffix will match. interface: lo0 24 20000000 interface: eth* 6 10000000 interface: sl* 28 28800 interface: ppp* 23 28800 SNMP ¶óÀ̺귯¸® È°¿ë CMU SNMP´Â ¼Ò½º¸¦ °ø°³Çϱ⠶§¹®¿¡ ¿¡ÀÌÀüÆ®»Ó¸¸ ¾Æ´Ï¶ó, °ø°³µÈ ¶óÀÌºê ·¯¸®¸¦ »ç¿ëÇÏ¿© ´Ù¾çÇÑ SNMP °ü·Ã ÇÁ·Î±×·¥À» Á¦ÀÛÇÒ ¼ö ÀÖ´Ù. SNMP ¶óÀÌ ºê·¯¸®´Â snmplib µð·ºÅ丮 ¹Ø¿¡ ÀÖÀ¸¸ç, º¸Åë ÀÌ ¶óÀ̺귯¸®¸¸ µû·Î ¹èÆ÷Çϱ⠵µ ÇÑ´Ù. ÆÄÀϵéÀº ´ÙÀ½°ú °°´Ù. (1) asn1.c ASN.1ÀÇ ¹®¹ý¿¡ ¸Â°Ô Á¤ÀÇµÈ µ¥ÀÌÅ͵éÀ» ³×Æ®¿öÅ©¸¦ ÅëÇØ Àü¼ÛÇϱâ À§ÇØ BER(Basic Encoding Rules)¿¡ ¸Â°Ô ÀÎÄÚµùÇÏ´Â ºÎºÐÀÌ´Ù. BERÀÇ Á¤È®ÇÑ ±Ô°Ý Àº ISO8825¿¡ ³ª¿Í ÀÖ´Ù. SMI¿¡ ´ëÇÑ Å±״ ´ÙÀ½°ú °°°í ¼Ò½º¸¦ »ìÆ캸¸é °¢ SMI¿¡ ´ëÇÑ ÀÎÄÚµù ÇÔ¼ö°¡ ±â¼úµÇ¾î À־ ÇÊ¿äÇÑ ÇÔ¼ö¸¦ ºÒ·¯ »ç¿ëÇÏ¸é µÈ ´Ù. (2) parse.c SNMP °ü·Ã ÇÁ·Î±×·¥À» °³¹ßÇÒ ¶§ °¡Àå ±î´Ù·Î¿î ºÎºÐÁßÀÇ Çϳª°¡ ASN.1 ¹® ¹ýÀ¸·Î ¾²¿©Áø MIB¸¦ Çؼ®ÇÏ´Â ÄÄÆÄÀÏ·¯(¾ö¹ÐÈ÷ ¸»Çϸé parser)ÀÇ Á¦ÀÛÀÌ´Ù. ¹°·Ð C¾ð¾î³ª ÆĽºÄ® °°Àº °í±Þ¾ð¾î¿¡ ºñÇÏ¸é ±¸¹®ÀÌ ´ÜÁ¶·Î¿î ÆíÀ̾ parsing¿¡ ´ëÇÑ °³³äÀÌ Àß ÀâÇôÀÖ´Ù¸é ºñ±³Àû ½±°Ô Á¦ÀÛÇÒ ¼ö ÀÖÁö¸¸ È¿°úÀûÀÎ parser¸¦ Á¦ÀÛÇϱâ À§Çؼ­´Â ¸¹Àº ³ëÇÏ¿ì°¡ ÇÊ¿äÇÏ´Ù. CMU SNMP¿¡¼­´Â ÀÌ·± ¾î·Á¿òÀ» parse.c ÆÄÀÏÀ» ÅëÇØ ½±°Ô ÇØ°áÇØ ÁØ´Ù. parse.cÆÄÀϾÈÀÇ parse() ÇÔ¼ö ´Â ´ÙÀ½ ±×¸²°ú °°Àº °úÁ¤À¸·Î MIB ÆÄÀÏÀ» ÄÄÆÄÀÏ ÇÑ´Ù. ¸ÕÀú MIB¿¡¼­ »ç¿ëµÇ´Â ¿¹¾à¾î¿Í SMIÀÇ ³»¿ëÀ» °¡Áö°í ½Éº¼ Å×À̺íÀ» ¸¸µé¾î ÃʱâÈ­¸¦ ÇÑ´Ù. ´ÙÀ½ ÄÄÆÄÀÏÇÒ MIB ¸ðµâÀ» ÀԷ¹ÞÀ¸¸é °¢°¢ÀÇ ±¸¹®À» ÅäÅ«À¸·Î ¸¸µé¾î Å×ÀÌºí °ú ºñ±³ÇÑ ÈÄ, ¹®¹ý¿¡ µû¸¥ Æ®¸®¸¦ ¸¸µé¸é µÈ´Ù. parse.c ÆÄÀÏ¿¡¼­´Â Å×½ºÆ® ¸ð µå¸¦ Áö¿øÇϱ⠶§¹®¿¡ À̸¦ »ç¿ëÇÏ¿© ¿©·¯ °¡Áö MIB ÆÄÀÏÀ» ÄÄÆÄÀÏ Çغ¼ ¼ö ÀÖ´Ù. Å×½ºÆ® ¸ðµå¸¦ »ç¿ëÇϱâ À§Çؼ­´Â #define ±¸¹®À» »ç¿ëÇÏ¿© TEST¸¦ ¼± ¾ðÇÏ°í parse.c ÆÄÀϸ¸ µû·Î ÄÄÆÄÀÏ ÇÏ¸é µÈ´Ù. º¯°æÇÑ parse.c ÆÄÀÏÀº ´ÙÀ½°ú °°´Ù. ÀÌ·¸°Ô ÆÄÀÏÀ» º¯°æÇÏ°í parse.c ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ÄÄÆÄÀÏ ÇÏÀÚ. # gcc -o parse parse.c ÄÄÆÄÀÏ ÈÄ mib.txt¸¦ º¹»çÇؿͼ­ parse¸¦ ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°ÀÌ mib.txt°¡ ÄÄÆÄ ÀÏ µÇ´Â °úÁ¤À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. MRTG MRTG´Â SNMP ¿¡ÀÌÀüÆ®°¡ žÀçµÈ ÀåÄ¡ÀÇ Æ®·¡ÇÈÀ» ¸ð´ÏÅ͸µÇÏ´Â ÅøÀÌ´Ù. MRTG´Â ÀåÄ¡¿¡ ÁÖ±âÀûÀ¸·Î SNMP Æú¸µÀ» ÇÏ¿© Æ®·¡ÇÈ Á¤º¸¸¦ ±×·¡ÇÁ·Î º¸ ¿©ÁÖ´Â html ÆäÀÌÁö¸¦ »ý¼ºÇÑ´Ù. ±×·¡ÇÁ´Â GD ¶óÀ̺귯¸®¸¦ ÅëÇØ PNG ¶Ç´Â GIF ÇüÅ·Π¹Ù²î°í, ÀÌ´Â ÀÏÁ¤ ½Ã°£¸¶´Ù °»½ÅµÈ´Ù. MRTG´Â Perl°ú C·Î ÀÛ¼º µÇ¾úÀ¸¸ç ¸®´ª½º¸¦ ºñ·ÔÇÑ UNIX¿Í À©µµ¿ìNT¿¡¼­ µ¿ÀÛÇÑ´Ù. MRTG´Â SNMP ¿¡ÀÌÀüÆ®¿¡¼­ ¹ÞÀº ¸ðµç µ¥ÀÌÅ͸¦ ·Î±×·Î ±â·ÏÇصα⠶§¹®¿¡ ÀÏ°£, ÁÖ°£, ¿ù°£, ¿¬°£ Æ®·¡ÇÈ°ú °ü·ÃµÈ Á¤º¸¸¦ °Ë»çÇØ º¼ ¼ö ÀÖ´Ù. ·Î±× ÆÄÀÏÀº ÀÚµ¿À¸·Î ÀúÀå µÇ¾î 2³â µ¿¾È º¸Á¸µÇ¸ç, ½Ã°£ÀÌ °æ°úµÇ¾îµµ ·Î±×ÆÄÀÏÀÇ Å©±â´Â Ä¿ÁöÁö ¾Ê´Â´Ù. MRTG´Â ÀÎÅÍÆäÀ̽ºÀÇ Æ®·¡ÇÈ Á¤º¸»Ó¸¸ ¾Æ´Ï¶ó SNMP ƯÁ¤º¯¼ö¿¡ ´ëÇؼ­µµ °¢°¢ÀÇ Object Identifier¸¦ ÁöÁ¤ÇØ ÁÖ¾î ¸ð´ÏÅ͸µÀÌ °¡´ÉÇÏ´Ù. º¯°æÇÑ parse.c ÆÄÀÏ ¿¹ #include #include #include #ifdef linux #include #include #endif #include #include ¡°parse.h¡± #define TEST /*TEST¸¦ ÷°¡ÇÑ´Ù.*/ /* A quoted string value-too long for a general ¡°token¡± */ char *quoted_string_buffer; /* Áß·« */ #ifdef TEST main(argc, argv) int argc; char *argv[]; { FILE *fp; struct node *nodes; struct tree *tp; fp = fopen(¡°mib.txt¡±, ¡°r¡±);/*mib.txt¸¦ ÄÄÆÄÀÏ ÇÏ´Â °æ¿ì*/ if (fp == NULL){ fprintf(stderr, ¡°open failed\n¡±); return 1; } nodes = parse(fp); tp = build_tree(nodes); print_subtree(tp, 0); fclose(fp); } #endif /* TEST */ MRTG ¼³Ä¡ ÇöÀç MRTGÀÇ ÃֽŠ¹öÀüÀº 2.8.8ÀÌ¸ç ´ÙÀ½ÀÇ site¿¡¼­ ´Ù¿î ¹ÞÀ» ¼ö ÀÖ´Ù. http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/pub/ ±×·¡ÇÁ¸¦ ½Ç½Ã°£À¸·Î ¹Ù²ãÁÖ±â À§Çؼ­´Â ¸ÕÀú GD ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÏ´Ù. ÀÌ ´Â ´ÙÀ½ site¿¡¼­ ¹ÞÀ» ¼ö ÀÖ´Ù. http://www.boutell.com PerlÀº 5.003 ÀÌ»óÀÇ ¹öÀüÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¸®´ª½ºÀÇ °æ¿ì ´ëºÎºÐ ±âº»À¸·Î ¼³Ä¡ µÇ¾î ÀÖÁö¸¸ NT´Â ±×·¸Áö ¾ÊÀ¸¹Ç·Î ´ÙÀ½ÀÇ site¿¡¼­ ´Ù¿î ¹Þ¾Æ¾ß ÇÑ´Ù. http://www.perl.com/perl/info/software.html ¼³Ä¡°úÁ¤Àº ´ÙÀ½°ú °°´Ù. - root·Î ·Î±×ÀÎ - tar -xvzf .../ mrtg-2.8.8.tar.gz (Àû´çÇÑ µð·ºÅ丮¿¡ ÇÁ·Î±×·¥ ¼Ò½º¸¦ ¼³Ä¡ÇÑ ´Ù.) - cd mrtg-.2.8.8 - ./configure (ÄÄÆÄÀÏÇϱâ À§ÇÑ ¼³Á¤À» ¼öÇàÇÑ´Ù.) - make (ÄÄÆÄÀÏ) ¾ÐÃàÀ» Ç®¸é ´ÙÀ½°ú °°Àº µð·ºÅ丮°¡ »ý±ä´Ù. make°¡ ¼º°øÀûÀ¸·Î ³¡³µÀ¸¸é run µð·ºÅ丮¿¡¼­ mrtg.cfg ÆÄÀÏÀ» ¸¸µé¾î¾ß ÇÑ ´Ù. doc µð·ºÅ丮¿¡ sample-mrtg.cfg°¡ ÀÖÀ¸¹Ç·Î À̸¦ ÂüÁ¶Çϰųª mrtg.cfg·Î º¹»çÇؼ­ ¸¸µé ¼ö ÀÖ´Ù. mrtg.cfgÀÇ ¼³Á¤ ÇÁ·Î±×·¥À» ½ÃÀÛÇϱâ Àü¿¡ ¼³Á¤ÇÒ »çÇ×Àº ´ÙÀ½°ú °°´Ù. - WorkDir : À¥ºê¶ó¿ìÀú¿¡°Ô º¸¿© ÁÙ html ÆÄÀÏ°ú log ÆÄÀÏÀÌ µé¾î°¥ µð·ºÅä ¸®¸¦ ¼³Á¤ÇÑ´Ù. httpdÀÇ DocumentRootÀÇ ÇÏÀ§ µð·ºÅ丮¿¡ ¸¸µç ´ÙÀ½ images µð·ºÅ丮ÀÇ ¸ðµç ÆÄÀÏÀ» º¹»çÇÑ´Ù. °¡·É ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ DocumentRoot°¡ /usr/local/etc/httpd/htdocs¶ó¸é - WorkDir: /usr/local/etc/httpd/htdocs/mrtg·Î µð·ºÅ丮¸¦ ¼³Á¤ÇÑ´Ù. - Target : MRTG°¡ ¸ð´ÏÅ͸µÇÒ ÀåÄ¡¸¦ ¼³Á¤ÇÑ´Ù. »ç¿ë Çü½ÄÀº ´ÙÀ½°ú °°´Ù. - Target : port : community@ Target Á¤º¸´Â cfgmaker¸¦ »ç¿ëÇؼ­ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. cfgmakerÀÇ »ç¿ë¹ýÀº ´Ù À½°ú °°´Ù. # cfgmaker @ community´Â ÀϹÝÀûÀ¸·Î publicÀ» »ç¿ëÇÏÁö¸¸ ´Ù¸¦ ¼öµµ ÀÖÀ¸¹Ç·Î ¿¡·¯°¡ ¹ß »ýÇÏ´Â °æ¿ì´Â °ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϱ⠹ٶõ´Ù. cfgmaker¸¦ ½ÇÇàÇÑ ¿¹´Â ´ÙÀ½°ú °°´Ù. ±âŸ ¼³Á¤¿¡ »ç¿ëµÇ´Â Å°¿Í ÆĶó¹ÌÅÍ´Â ´ÙÀ½°ú °°´Ù. ºÎ°¡ÀûÀ¸·Î ¼³¸íÇÏ´Â index¸¦ ¸¸µé°í ½Í´Ù¸é indexmaker¸¦ »ç¿ëÇÏ¿© ¸¸µé ¼ö ÀÖ´Ù. ±âº»ÀûÀÎ ¼³Á¤ÀÌ ³¡³­ mrtg.cfgÀÇ ¿¹¸¦ »ìÆ캸¸é ´ÙÀ½°ú °°´Ù. # Multi Router Traffic Grapher -- Example Configuration File # # * copy this file to ../run and call it mrtg.cfg # * consider using ../run/cfgmaker to build your initial mrtg.cfg file . . . Áß·« # Global Configuration # Where should the logfiles, and webpages be created? WorkDir:/usr/local/etchttpd/htdocs/mrtg ## Target ---------------------------------------- # * The most basic format is ¡°port:community@router¡± This will generate a traffic graph # for port ¡®port¡¯ of the router ¡®router¡¯ and it will use the community # ¡®community¡¯ for the snmp query. Target[210.119.30.147]: 2:public@210.119.30.147 MaxBytes[esc.cl.hangkong.ac.kr]: 1250000 Title[esc.cl.hangkong.ac.kr]: esc.cl.hangkong.ac.kr : eth0 PageTop[esc.cl.hangkong.ac.kr]:

Traffic Analysis for eth0 mrtgÀÇ ½ÇÇà mrtg.cfgÀÇ ¼³Á¤ÀÌ ³¡³µÀ¸¸é mrtg¸¦ ½ÇÇà½ÃÄÑ html ÆäÀÌÁö¸¦ ¸¸µç´Ù. ½ÇÇà ¹æ ¹ýÀº ´ÙÀ½°ú °°´Ù. # ./mrtg mrtg.cfg ½ÇÇàÀÌ ³¡³ª¸é WorkDir ¹Ø¿¡ ´ÙÀ½°ú °°Àº »õ·Î¿î html ÆÄÀÏÀÌ ¸¸µé¾îÁø °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ±×·¡ÇÁ´Â 5ºÐ °£°ÝÀ¸·Î »ý¼ºÇÑ ¡®Daily¡¯ ±×·¡ÇÁ¿Í, 30ºÐ °£°Ý À¸·Î »ý¼ºÇÑ ¡®Weekly¡¯ ±×·¡ÇÁ, µÎ ½Ã°£ °£°ÝÀ¸·Î »ý¼ºÇÑ ¡®Monthly¡¯±×·¡ ÇÁ, ÇÏ·ç °£°ÝÀ¸·Î »ý¼ºÇÑ ¡®Yearly¡¯ ±×·¡ÇÁ, ÀÌ·¸°Ô ³× °³°¡ ¸¸µé¾îÁø´Ù. ´Ù À½ È£¿¡´Â NMS½Ã½ºÅÛÀÇ º¸¾È°ú, ÀÎÁõ¿¡ °ü·ÃµÈ ¾Ë°í¸®ÁòÀ» ¼Ò°³ÇÏ°í È°¿ë¹ý À» ¾Ë¾Æº¸°Ú´Ù. À̱ÙÇü ±âÀÚ rilla@pserang.co.kr Á¦ ¸ñ:[9911]³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹ °ÉÀ½!(4) [260] 1999-11-01 16:33 ÀÎÅͳÝÀº °³¹æÀûÀÎ ±¸Á¶·Î µÇ¾î À־ º¸¾È¿¡ ¾àÇÑ °Ô ÈìÀÌ´Ù. ÀÏ·Ê·Î LAN ȯ°æÀÇ °æ¿ì LAN¿¡ ¿¬°áµÈ ¸ðµç »ç¿ëÀÚµéÀÌ ÇϳªÀÇ È¸¼±(bus)À» °øÀ¯Çϱ⠶§ ¹®¿¡ promiscuous ¸ðµå¿¡¼­ µ¿ÀÛÇÏ´Â analyzer ÇÁ·Î±×·¥À» »ç¿ëÇϸé e-¸ÞÀÏ Æнº¿öµå³ª PCÅë½Å ID µî ´Ù¸¥ »ç¶÷ÀÇ Åë½ÅÁ¤º¸¸¦ °£´ÜÈ÷ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. µû ¶ó¼­ ÃÖ±ÙÀÇ ³×Æ®¿öÅ© ÀÀ¿ëÇÁ·Î±×·¥µéÀº ÀÚüÀûÀ¸·Î º¸¾È±¸Á¶¸¦ °®Ãß°í ÀÖÀ¸ ¸ç, NMS¿¡µµ ´Ù¾çÇÑ º¸¾È ±¸Á¶°¡ µµÀԵǰí ÀÖ´Ù. security service ¸ÕÀú ³×Æ®¿öÅ©¿¡¼­ º¸¾ÈÀÌ ÇÊ¿äÇÑ ÀÌÀ¯¸¦ ±¸ºÐÇÏ¿© º¸¸é ´ÙÀ½°ú °°´Ù. ¡¤ ºñ¹Ð º¸Àå(Confidentiality) : ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ Á¤º¸¿Í ÀÌ Á¤º¸°¡ Àü¼ÛµÉ ¶§ Çã¶ô¹ÞÀº »ç¿ëÀÚ¸¸ Á¢±ÙÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. º¸Åë printing, displaying µî ±âÁ¸ÀÇ Á¤º¸¸¦ µå·¯³»´Â ¸ðµç È°µ¿¿¡ ÇØ´çµÈ´Ù ¡¤ ÀÎÁõ(Authentication) : ¸Þ½ÃÁö ¿øº»°ú À̸¦ Ç¥ÇöÇÑ ÀüÀÚ ¹®¼­°¡ ¿ÏÀüÈ÷ °° ´Ù´Â °ÍÀ» º¸ÁõÇÏ´Â °Í ¡¤ ¹«°á¼º(Integrity) : Çã¶ô ¹ÞÀº »ç¿ëÀÚ¸¸ ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ È¯°æÀ̳ª Àü¼ÛµÇ´Â Á¤º¸¸¦ º¯°æ½Ãų ¼ö ÀÖ°Ô ÇÏ´Â °Í ¡¤ ºÎÀιæÁö(Nonrepudiation) : ¼Û½Å´ÜÀ̳ª ¼ö½Å´ÜÀÌ Àü¼ÛµÈ ¸Þ½ÃÁö¿¡ ´ëÇؼ­ Àü¼ÛÇÑ »ç½ÇÀ» ºÎÀÎÇÏÁö ¸øÇÏ°Ô ¸·´Â °Í. ¡¤ Á¢±ÙÁ¦¾î(Access Control) : Åë½Å ȸ¼±À» ÅëÇØ ÄÄÇ»ÅÍ ½Ã½ºÅÛ°ú ÀÀ¿ë ÇÁ·Î ±×·¥¿¡ÀÇ Á¢±ÙÀ» Á¦ÇÑÇÏ´Â °Í ¡¤ À¯È¿¼º º¸Àå(Availability) : Çã°¡µÈ »ç¿ëÀÚ°¡ ÄÄÇ»ÅÍ ½Ã½ºÅÛÀ» »ç¿ëÇϱâ À§ ÇØ ÇÊ¿äÇÑ »çÇ× ³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹ °ÉÀ½!(4) NMSÀÇ º¸¾Èü°è ÀÎÅͳÝÀº °³¹æÇü ±¸Á¶À̱⠶§¹®¿¡ NMS¸¦ ±¸¼ºÇÒ ¶§´Â Á¤º¸ÀÇ ¾ÈÀüÇÑ °ü¸®¸¦ À§ÇÑ º¸¾È ¿ä¼Ò°¡ ¸ÕÀú °í·ÁµÇ¾î¾ß ÇÑ´Ù. À̹ø È£´Â ÀÎÅÍ³Ý º¸¾ÈÀÇ ±âº»ÀûÀÎ °³³äÀ» »ìÆ캸°í, NMS¿¡¼­ »ç¿ëµÇ´Â ¾Ïȣȭ ±â¹ý°ú, »ç¿ëÀÚ ÀÎÁõ ¾Ë°í¸®Áò µî À» »ìÆ캻´Ù. ¶Ç ³×Æ®¿öÅ© ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ³Î¸® ä¿ëµÇ°í ÀÖ´Â MD5 »ç¿ëÀÚ ÀÎÁõ ¾Ë°í¸®ÁòÀ» Á÷Á¢ ±¸ÇöÇØ º»´Ù. ³ëÁ¤¹Î Çѱ¹Ç×°ø´ëÇб³ Åë½ÅÁ¤º¸°øÇаú ´ëÇпø hmask@esc.cl.hangkong.ac.kr security attack Å©·¡Ä¿(cracker)°¡ ÄÄÇ»ÅÍ ½Ã½ºÅÛÀ̳ª ³×Æ®¿öÅ©¸¦ °ø°ÝÇÏ´Â À¯ÇüÀ» »ìÆ캸¸é ±×¸² 1°ú °°´Ù. ¡¤ Interruption(¹æÇØÇϱâ, attack of availability) : ½Ã½ºÅÛÀ» Æı«Çϰųª ³»¿ëÀ» ¼Õ»ó½ÃÅ°´Â °Í(Çϵåµð½ºÅ© ÆļÕ, ȸ¼± Àý´Ü, ±âŸ) ¡¤ Interception(°¡·Îä±â, attack of confidentiality) : Çã¶ô ¹ÞÁö ¾ÊÀº »ç¿ëÀÚ°¡ ½Ã½ºÅÛ¿¡ Á¢±ÙÇÏ¿© Á¤º¸¸¦ ¾ò¾î³»´Â °Í ¡¤ Modification(º¯Á¶, attack of integrity) : Çã¶ô ¹ÞÁö ¾ÊÀº »ç¿ëÀÚ°¡ ½Ã½ºÅÛÀÇ ³»¿ë°ú Àü¼ÛµÇ´Â Á¤º¸¸¦ ÀÓÀÇ·Î ¹Ù²Ù´Â °Í ¡¤ Fabrication(À§Á¶, attack of authentication) : Çã¶ô ¹ÞÁö ¾ÊÀº »ç¿ëÀÚ°¡ °ÅÁþ ÀÇ Á¤º¸¸¦ ²Ù¸ç¼­ Àü´ÞÇÏ´Â °Í ÀÌ·± °ø°ÝÀÇ À¯ÇüÀº È°µ¿ÇÏ´Â Á¤µµ¿¡ µû¶ó passive attack°ú active attackÀ¸·Î ³ª´¶´Ù(Ç¥ 1 ÂüÁ¶). NMS security model ´Ù¾çÇÑ ³×Æ®¿öÅ© °ø°Ý À¯ÇüÀ» ¸·±â À§ÇÑ NMSÀÇ º¸¾È ¸ðµ¨Àº ±×¸² 3°ú °°´Ù. NMS °³Ã¼µéÀº Á¤º¸¸¦ ÁÖ°í¹Þ±â À§Çؼ­ ±âÁ¸ÀÇ ¸Þ½ÃÁö¿¡ º¸¾È ÆĶó¹ÌÅ͸¦ Ãß °¡ÇÑ´Ù. ±× ´ÙÀ½ security º¯È¯±â°¡ ¸Þ½ÃÁö¸¦ º¸¾È ÆĶó¹ÌÅÍ¿¡ µû¶ó ´Ù¸¥ °³Ã¼ ´Â ¾Ë¾Æº¼ ¼ö ¾ø´Â ÇüÅ·Π¸Þ½ÃÁö¸¦ º¯È¯½ÃŲ ÈÄ ³×Æ®¿öÅ©¸¦ ÅëÇØ Àü¼ÛÇÏ°Ô µÈ ´Ù. NMS °³Ã¼°£ÀÇ º¸¾È ÆĶó¹ÌÅÍ´Â »çÀü¿¡ ÇùÀǸ¦ °ÅÃÄ °áÁ¤µÇ¸ç, ÀÌ ³»¿ëÀº ½Å·ÚÇÒ ¼ö ÀÖ´Â Á¦ 3ÀÚ¿¡ ÀÇÇØ °ü¸®µÈ´Ù. ¸Þ½ÃÁö ¾Ïȣȭ NMS¿¡¼­ »ç¿ëµÇ´Â ¸Þ½ÃÁö¸¦ ³×Æ®¿öÅ©·Î Àü¼ÛÇÒ ¶§ ´Ù¸¥ »ç¿ëÀÚ°¡ ¾Ë¾Æ º¼ ¼ö ¾øµµ·Ï ¾ÏȣȭÇؼ­ Àü¼ÛÇÑ´Ù. SNMP¿¡¼­ ¸Þ½ÃÁö ¾Ïȣȭ´Â SNMPv1 ´ÙÀ½ ¹öÀü ÀÎ SNMPparty ¹öÀüºÎÅÍ Ã¤¿ëµÇ¾ú´Ù. SNMP¿¡¼­ »ç¿ëÇÏ´Â ¾Ïȣȭ ¹æ½ÄÀº Å° »ý¼º ¹æ½Ä¿¡ µû¶ó ´ëĪÇü ¾Ïȣȭ ¹æ½Ä°ú ºñ´ëĪÇü ¾Ïȣȭ ¹æ½ÄÀÌ ÀÖ´Ù. ´ëĪÇü ¾Ïȣȭ ¹æ½Ä (symmetric encryption) ¾Ïȣȭ ÇÒ ¶§ »ç¿ëÇÑ Å°¿Í ¾ÏȣȭµÈ ÀڷḦ Çص¶ÇÒ ¶§ »ç¿ëÇÑ Å°°¡ µ¿ÀÏÇÑ ¹æ ½ÄÀÌ´Ù. ´ëĪÇü ¾Ïȣȭ ¹æ½ÄÀº °í´ë ·Î¸¶½Ã´ëÀÇ ½ÃÀúȲÁ¦°¡ »ç¿ëÇßÀ» Á¤µµ·Î ¿À·¡ ÀüºÎ ÅÍ »ç¿ëµÇ¾î ¿Ô´Ù. ¾ÏȣȭÀÇ ÇÙ½ÉÀÎ Å°´Â Åë½Å »ó´ë¸¸ ¾Ë ¼ö ÀÖ´Â ±âÈ£·Î »çÀü ¿¡ Á¤ÇØÁø´Ù. ¾ÏȣȭµÈ ¹®¼­¸¸ °¡Áö°í ¾ÏÈ£¸¦ Çص¶ÇÒ ¼ö ¾øµµ·Ï ¾Ïȣȭ ¾Ë°í¸® Áò ÀÚü°¡ °­·ÂÇØ¾ß Çϸç, Å°¸¦ ºñ¹Ð¸®¿¡ °ü¸®ÇÏ´Â °ÍÀÌ °¡Àå Áß¿äÇÏ´Ù. ¾Ïȣȭ ±â¹ý ġȯ (substitution, permutation) ´Ü¼øÈ÷ ¹®ÀÚ¿­ÀÇ ¼ø¼­¸¦ µÚÁ×¹ÚÁ× ¼¯¾îÁÖ´Â ¹æ¹ýÀ¸·Î, ¼¯ÀÎ ¼ø¼­°¡ Çص¶ ¹æ¹ý ÀÌ µÈ´Ù(±×¸² 4 ÂüÁ¶). ½ÇÁ¦ ¾ÏÈ£¹®¿¡¼­´Â ÀÔ·Â ºñÆ®º¸´Ù Ãâ·Â ºñÆ®°¡ ¸¹Àº È®Àåġȯ(extended permutation)°ú ÀÔ·ÂµÈ ºñÆ® Áß¿¡¼­ ¸î °³°¡ Á¦¿ÜµÇ´Â ¼±ÅÃġȯ(permuted choice)ÀÌ ¸¹ÀÌ »ç¿ëµÈ´Ù(±×¸² 5 ÂüÁ¶). ÀüÄ¡ (Transposition) ÁÖ¾îÁø ¹®ÀåÀ» Á÷Á¢ ¾ÏȣȭÇÏ´Â ¹æ¹ýÀ¸·Î ¿ì¼± ¹®ÀÚ¿­À» ÀÏÁ¤ÇÑ ´ÜÀ§ ºí·ÏÀ¸·Î ºÐÇÒÇÑ µÚ ±× ¼ø¼­¸¦ ¹Ù²ã ¾ÏȣȭÇÑ´Ù. ÀÌ ¾Ïȣȭ´Â ºí·ÏÀÇ Å©±â¿Í ¹Ù²Ù´Â ¼ø ¼­·Î ¾ÏÈ£ÀÇ ³­À̵µ°¡ °áÁ¤µÈ´Ù. ³­À̵µ¸¦ ³ôÀ̱â À§ÇØ Çà·ÄÀ» ´Ù½Ã ¿­(row)·Î ÀüÄ¡Çϱ⵵ ÇÑ´Ù(±×¸² 6 ÂüÁ¶). ´ëĪÇü ¾Ïȣȭ ¾Ë°í¸®Áò DES (Data Encryption Standard) IBM¿¡¼­ 1974³â¿¡ °³¹ßÇÑ ´ëĪÇü °ø°³ ¾ÏÈ£ ½Ã½ºÅÛÀ¸·Î ¾Ë°í¸®ÁòÀÇ °ø°³¸¦ ¿ø Ä¢À¸·Î ÇÑ´Ù. ÀÌ·Î ÀÎÇØ NMSÀÇ ¸Þ½ÃÁö ¾Ïȣȭ¿¡ ³Î¸® ä¿ëµÇ°í ÀÖ´Ù. ¾Ë°í¸® ÁòÀ» °ø°³ÇÑ´Ù Çصµ ¾ÈÁ¤¼ºÀº Å°¿¡ ÀÇÁ¸Çϱ⠶§¹®¿¡ Å°¸¦ ¸ð¸£¸é ¾ÏÈ£¹®¿¡¼­ Æò¹®À» À¯ÃßÇÒ ¼ö ¾ø´Ù(±×¸² 7 ÂüÁ¶). DES ¾Ë°í¸®ÁòÀº ÀÚ¸®¹Ù²Þ(permutation), ġȯ, modulo ¿¬»êÀ» »ç¿ëÇÏ¿© 64ºñÆ® ·Î ÀÌ·ç¾îÁø ºí·ÏÀ» ÇѲ¨¹ø¿¡ ¾ÏȣȭÇÏ´Â ¹æ½ÄÀÌ´Ù. 64ºñÆ® Áß ÃÖ»óÀ§ 8ºñÆ®´Â ¿¡·¯ ¹æÁö¸¦ À§ÇÑ Æи®Æ¼ °Ë»ç¸¦ À§ÇØ »ç¿ëµÇ¸ç 56ºñÆ®ÀÇ Å°¸¦ »ç¿ëÇÏ¿© ¾ÏÈ£ È­ÇÑ´Ù. ¾ÏÈ£¸¦ Ç®±â À§Çؼ­´Â Å° °ªÀ» ¾Ë¾Æ³»¾ß Çϸç ÀÌ Å° °ªÀ» ¾Ë¾Æ³»±â À§ Çؼ± ÀÌ·ÐÀûÀ¸·Î ÃÖ°í 256 ¸¸Å­ Á¶ÇÕÇØ¾ß °¡´ÉÇÏ´Ù. IDEA(International Data Encryption Algorithm) DES ÀÌÈÄ¿¡ ³ª¿Â ´ëĪÇü ¾Ïȣȭ ¾Ë°í¸®ÁòÀÌ´Ù. 64ºñÆ®·Î ÀÌ·ç¾îÁø ºí·ÏÀ» ÇÑ ²¨¹ø¿¡ ¾ÏȣȭÇÏ´Â ¹æ½ÄÀº DES¿Í °°Áö¸¸ 128ºñÆ®ÀÇ Å°¸¦ »ç¿ëÇÏ¿© DESº¸´Ù ¾ÈÁ¤¼ºÀÌ ÈξÀ ³ô¾ÆÁ³´Ù. NMS¿Í ÀüÀÚ¸ÞÀÏ µî¿¡¼­ »ç¿ëµÇ°í ÀÖ´Ù. RC2, RC5(Ron Rivest Crypto) Ron Rivest¿¡ ÀÇÇØ °³¹ßµÈ ´ëĪÇü ¾Ïȣȭ ¹æ½ÄÀÌ´Ù. °ø°³Å° ¾Ïȣȭ ¹æ½Ä(public-key encryption) Å°¸¦ ºñ¹Ð¸®¿¡ °ü¸®Çϱ⠾î·Á¿î ´ëĪÇü ¾ÏÈ£¹æ½ÄÀÇ ´ÜÁ¡À» ÇØ°áÇÑ ºñ´ëĪÇü ¾Ï È£¹æ½ÄÀÇ ´ëÇ¥ÀûÀÎ ¾Ë°í¸®ÁòÀÌ´Ù. °ø°³Å° ¹æ½ÄÀº ¸Þ½ÃÁö¸¦ ¾ÏȣȭÇÏ´Â Å°¿Í ¾ÏȣȭµÈ ¸Þ½ÃÁö¸¦ Çص¶ÇÏ´Â Å°°¡ ½Ö À¸·Î »ç¿ëµÈ´Ù. ¸Þ½ÃÁö¸¦ ¾ÏȣȭÇÏ´Â Å°´Â °ø°³(public)ÇÏ°í, ¸Þ½ÃÁö¸¦ Çص¶ÇÏ´Â Å°´Â ¼ö½ÅÀÚ°¡ ºñ¹Ð¸®¿¡ °ü¸®Çϱ⠶§¹®¿¡ ´ëĪÇü ¾ÏÈ£¹æ½Ä¿¡ ºñÇØ ¾ÈÀüÇÏ°Ô Å° ¸¦ °ü¸®ÇÒ ¼ö ÀÖ´Ù. °ø°³Å° ¾ÏÈ£ÀÇ ¿ø¸® Å° ½Ãµå(key seed)´Â °ø°³Å° ¾ÏÈ£ÀÇ °¡Àå Áß¿äÇÑ ¿ä¼Ò·Î ¾ÏȣȭŰ¿Í Çص¶Å° »ý ¼ºÀÇ ¸ðü°¡ µÈ´Ù. Å° ½Ãµå °ªÀ» ÇÔ¼ö F¿¡ ÀÔ·ÂÇÏ¸é °ø°³Å°°¡ »ý¼ºµÇ°í, ÇÔ¼ö G¿¡ ÀÔ·ÂÇϸé Çص¶Å°°¡ »ý¼ºµÈ´Ù. Å° ½Ãµå °ª¿¡ µû¶ó¼­ °ø°³ÇÏ´Â ¾ÏȣȭŰ¿Í Çص¶Å°´Â ´Ù¾çÇÏ°Ô º¯È­µÈ´Ù. ¼ö½ÅÀÚ´Â ¾ÏȣȭŰ·ÎºÎÅÍ Çص¶Å°¸¦ Á÷Á¢ ¾ò¾î³¾ ¼ö´Â ¾øÁö¸¸, ¾ÏȣȭŰ¿Í Çص¶Å° »çÀÌÀÇ ÇÔ¼ö °ü°è¸¦ ÀÌ¿ëÇؼ­ ´äÀ» ¾ò¾î³¾ ¼ö ÀÖ´Ù(±×¸² 9 ÂüÁ¶). DES µ¿ÀÛ ¼ø¼­¿Í Å° »ý¼º ¹æ¹ý DES µ¿ÀÛ ¼ø¼­ ¨ç 64ºñÆ® µ¥ÀÌÅ͸¦ ÀÔ·Â¹Þ¾Æ Ãʱâ ġȯ(Initial Permutation) °úÁ¤À» °ÅÃÄ Á¿ì 32ºñÆ®ÀÇ ³»¿ëÀ» ¹Ù²Û´Ù ¨è ¹Ù²ï 32ºñÆ®ÀÇ ³»¿ëÀº °¢°¢ L. R ·¹Áö½ºÅÍ¿¡ ºÐ¸®, ÀúÀåµÈ´Ù. ¨é R ·¹Áö½ºÅÍÀÇ 32ºñÆ®´Â È®ÀåÀüÄ¡¸¦ °ÅÃÄ 48ºñÆ®·Î ´Ã¾î³­´Ù. ¨ê È®ÀåµÈ 48ºñÆ®´Â Å° Á¦³Ê·¹ÀÌÅÍ¿¡¼­ »ý¼ºµÈ 16°¡Áö Å°ÀÇ ¼ø¼­¿¡ µû¶ó ¸ðµâ ·¯(modula) ¿¬»êÀÌ ÀÌ·ç¾îÁø´Ù. ¨ë 48ºñÆ®´Â 6ºñÆ®¾¿ ºÐ¸®µÇ¾î S-BoxÀÇ ¼±ÅÃġȯ ¿¬»ê¿¡ ÀÇÇØ 4ºñÆ®¾¿ Ãà¼Ò µÈ´Ù. ¨ì S-Box°¡ 8°³ ÀÖÀ¸¹Ç·Î ÃÖÁ¾°á°ú´Â 32(4¡¿8)ºñÆ®·Î Ãâ·ÂµÈ´Ù. Ãâ·Â °ªÀº ´Ù ½Ã ġȯÀ» °ÅÄ£ ÈÄ¿¡ L ·¹Áö½ºÅÍ¿Í ¸ðµâ·¯ ¿¬»ê °úÁ¤À» ÅëÇØ Àӽà ·¹Áö½ºÅÍ¿¡ ÀúÀåµÈ´Ù. ¨í ÃʱâÀÇ R·¹Áö½ºÅÍ °ªÀ» L ·¹Áö½ºÅÍ¿¡ ´ëÀÔÇÑ µÚ Àӽà ·¹Áö½ºÅÍÀÇ °ªÀ» R ·¹Áö½ºÅÍ·Î ¿Å±ä´Ù. ¨î ¨é¡­¨í ´Ü°èÀÇ °úÁ¤À» 15ȸ ¹Ýº¹(Àüü 16ȸ)ÇÑ´Ù. ¨ï ¸¶Áö¸·À¸·Î L, R ·¹Áö½ºÅÍÀÇ °ªÀ» ±³È¯ ÇÏ°í, Ãʱâ ġȯÀÇ ¿ª ġȯÀ» ½ÇÇàÇÏ¿© Ãâ·ÂÇÑ´Ù. Å° »ý¼º ¹æ¹ý ¨ç ÃʱâÀÇ Å°µµ 64ºñÆ®·Î ±¸¼ºµÈ´Ù. 64ºñÆ® ´Â 8ºñÆ®ÀÇ 8°³ ±×·ìÀ¸·Î ºÐÇҵǰí 8ºñ Æ®ÀÇ ¸¶Áö¸· ºñÆ®´Â Æи®Æ¼ºñÆ®·Î »ç¿ë µÇ¾î ¿¬»ê¿¡¼­ Á¦¿ÜµÈ´Ù. ¿©±â¿¡¼­´Â ¡®¼±ÅÃÀüÄ¡1¡¯ÀÌ »ç¿ëµÈ´Ù. ¨è 56ºñÆ®¸¸À¸·Î »õ·Ó°Ô ±¸¼ºµÈ Å°¸¦ 28ºñÆ®ÀÇ C, D ½¬ÇÁÆ® ·¹Áö½ºÅÍ¿¡ ÀúÀå ÇÑ´Ù. ¨é C, D ·¹Áö½ºÅÍÀÇ °ªÀ» °¢°¢ ºñÆ® ´ÜÀ§·Î ¾ÏȣȭÇϱâ À§ÇØ ÁÂÃøÀ¸·Î ·ÎÅ×ÀÌ ¼ÇÀ» ¼öÇàÇÑ´Ù. ¨ê 56ºñÆ®ÀÇ °á°ú¸¦ ¼±ÅÃÀüÄ¡¸¦ ¼öÇàÇÏ¿© 48ºñÆ®·Î ÁÙÀδÙ. ¨ë ÀÌ °úÁ¤À» 15ȸ ¹Ýº¹(Àüü16ȸ)ÇÑ´Ù. °ø°³Å° ¾Ïȣȭ ±â¹ý À¯ÇÑ °è»ê(Finite Arithmetic) À½¼ö¿Í ºÐ¼ö¸¦ Á¦¿ÜÇÑ 0°ú ¾ç¼ö¸¸À» »ç¿ëÇÏ´Â ¿¬»êÀ¸·Î ³ª¸ÓÁö(modular) ¿¬»ê ÀÌ »ç¿ëµÈ´Ù. ÀÌ ¿¬»êÀº ÀϹÝÀûÀ¸·Î mod ¿¬»êÀ¸·Î ºÒ¸®¸ç ¸ðµâ·¯ mÀ» »ç¿ëÇÏ ¿© 0ºÎÅÍ m-1±îÁöÀÇ Á¤¼ö¸¦ ¾ò´Â´Ù. À¯ÇÑ °è»êÀÇ »çÄ¢¿¬»êÀ» »ìÆ캸¸é, ¸ÕÀú µ¡¼ÀÀº a+b¸¦ ¿¬»êÇÑ °á°ú°¡ mº¸´Ù ÀÛÀ¸¸é º¸Åë µ¡¼ÀÀÇ °á°ú¿Í °°Áö¸¸, °á°ú °¡ mº¸´Ù Å©°Å³ª °°À¸¸é °á°ú °ª¿¡¼­ mÀ» »«´Ù. »¬¼À, °ö¼À ³ª´°¼À ¿¬»êµµ ÀÌ ¿Í µ¿ÀÏÇÏ´Ù. Áö¼öÇÔ¼ö¿Í Æ丣¸¶ÀÇ Á¤¸® (Fermat¡¯s Theory) Áö¼öÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ Ç¥ÇöµÈ´Ù. an= a * a * a * . . . . . . * a (n ȸ °ö¼À) Áö¼öÇÔ¼ö¿Í ¾Õ¿¡¼­ »ìÆ캸¾Ò´ø ¸ðµâ·¯ ¿¬»êÀ» °áÇÕÇϸé À¯ÇÑ °è»êÀÇ Áö¼öÇÔ¼ö °¡ µÈ´Ù. ¶ÇÇÑ ¿©±â¿¡ ¼Ò¼ö¸¦ ¸ðµâ·¯·Î »ç¿ëÇÏ¸é °ö¼À¿¡ ´ëÇÑ ¿ª¼ö°¡ Ç×»ó Á¸ ÀçÇÏ°Ô µÈ´Ù. µû¶ó¼­ Áö¼ö ÇÔ¼ö¿¡ ¸ðµâ·¯¸¦ ¼Ò¼ö·Î Á¤ÀÇÇÏ¸é °á°ú°¡ 1(°ö¼ÀÀÇ Ç×µî¿ø)ÀÌ µÇ´Â ¼ö°¡ ÇÑ °³ ÀÌ»ó Á¸ÀçÇÑ´Ù. Áö¼ö ÇÔ¼ö¿¡ ´ëÇÑ a¿Í ¸ðµâ·¯ p(prime number)´Â °íÁ¤µÇ¾î ÀÖÀ¸¸ç, nÀº µ¶¸³º¯¼öÀÌ´Ù. ¸ðµâ·¯´Â 7ÀÌ°í a°ªÀº 1¿¡¼­ 6±îÁö º¯ÇÑ´Ù. nÀÇ °ªÀÌ 0ÀÏ ¶§ anÀº ÀüºÎ 1ÀÌ°í, 6(mod-1)ÀÌ µÇ¾úÀ» ¶§ ´Ù½Ã anÀÌ ÀüºÎ 1ÀÌ µÈ´Ù. ÀÌ °æ¿ì¸¦ ÀϹÝÈ­ÇÏ¸é ´ÙÀ½ ½Ä°ú °°´Ù. a(n+(p-1)) = an*ap-1=an (p = prime number) ÀÌ°ÍÀ» a°¡ 0ÀÎ °æ¿ì¸¦ Á¦¿ÜÇÏ°í ¸ðµç a¿¡ ´ëÇؼ­ Ç¥ÇöÇϸé, ´ÙÀ½°ú °°Àº Æ丣 ¸¶ÀÇ Á¤¸®(Fermat¡¯s Theory)°¡ À¯µµµÈ´Ù. ap = a mod p ÀÌ·± Áö¼öÇÔ¼ö¿¡¼­ anÀÌ 1ÀÎ °æ¿ì¿Í p-1ÀÎ °æ¿ì¸¦ Á¦¿ÜÇÏ°í ³ª¸ÓÁö ¼ö´Â ³­¼ö ÇüÅ·Π¹è¿­µÈ´Ù. µû¶ó¼­ ¸ðµâ·¯·Î ¸Å¿ì Å« ¼ö¸¦ »ç¿ëÇؼ­ ¹è¿­ÀÇ randomness ¸¦ Áõ°¡½ÃÅ°¸é an°ªÀ¸·ÎºÎÅÍ nÀ» ±¸ÇϱⰡ ¸Å¿ì ¾î·Æ°Ô µÈ´Ù. °ø°³ Å° ¾ÏÈ£´Â ÀÌ·± Áö¼öÇÔ¼öÀÇ º¹ÀâÇÑ ¼ºÁúÀ» ÀÌ¿ëÇÑ´Ù. RSA ¾Ë°í¸®Áò °ø°³Å° ¹æ½ÄÀÇ ´ëÇ¥ÀûÀÎ ¾Ïȣȭ ¾Ë°í¸®ÁòÀº RSA(Ron Rivest, Adi Shamir, Len Adleman)´Ù. RSA´Â ³ª¸ÓÁö(mod)¿¬»ê°ú Áö¼ö¿¬»êÀÇ º¹À⼺¿¡ Âø¾ÈÇؼ­ ¸¸µé¾îÁ³À¸¸ç À̸¦ ½ÄÀ¸·Î Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù. C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n ¿©±â¼­ MÀº Æò¹® CÀÇ ¾ÏÈ£¹®À» ÀǹÌÇÑ´Ù. e´Â ¾Ïȣȭ¸¦ À§ÇÑ °ø°³Å°ÀÌ°í d´Â Çص¶À» À§ÇÑ ºñ¹ÐÅ°ÀÌ´Ù. nÀº ³ª¸ÓÁö ¿¬»êÀ» À§ÇÑ ¸ðµâ·¯(modular)·Î¼­ ¼­·Î ´Ù¸¥ µÎ ¼Ò¼öÀÇ °öÀ¸·Î Ç¥ÇöµÇ´Â ¼öÀÌ´Ù. ÀÓÀÇÀÇ µÎ ¼Ò¼ö¸¦ p, q¶ó°í Çϸé n=p ¡¿q°¡ ¼º¸³ÇÑ´Ù. ¾Ïȣȭ¸¦ À§ÇØ nÀº °ø°³µÈ´Ù. ¸Þ½ÃÁö Çص¶À» À§Çؼ± p, q°¡ ÇÊ¿äÇѵ¥ nÀ» Àμö ºÐÇØÇÏ¿© À̸¦ ã´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù. ÀÌ·¸°Ô RSA´Â ¸Å¿ì Å« ¼öÀÇ Àμö ºÐÇØ´Â ¾î·Æ´Ù´Â °Í¿¡ ±Ù°ÅÇÑ ¾ÏÈ£ ±â¹ýÀÌ´Ù. ¸Þ½ÃÁö ÀÎÁõ (Message Authentication) ¡®ÀÎÁõµÇ¾ú´Ù¡¯ ¶ó´Â ¸»Àº Àǽɽº·¯¿î ¼Ò½º¿¡¼­ Àü´ÞµÈ ¸Þ½ÃÁö°¡ ÁøÂ¥ÀÎ °ÍÀ¸ ·Î È®ÀεǾúÀ» ¶§ »ç¿ëµÇ´Â ¸»ÀÌ´Ù. ÀÎÁõÀ̶õ ¼­·Î ÁÖ°í¹ÞÀº µ¥ÀÌÅÍ°¡ È®½ÇÇÑ °¡¿¡ ´ëÇÑ ÀÏÁ¾ÀÇ º¸ÁõÀÌ´Ù. ¸Þ½ÃÁö ÀÎÁõÀº Àü¼ÛÁßÀÇ ¿¡·¯¿Í Å©·¡Ä¿¿¡ ÀÇÇÑ µ¥ ÀÌÅÍ º¯Á¶¸¦ °ËÃâÇϴµ¥ »ç¿ëµÈ´Ù. NMS´Â manager¿Í agent »çÀÌÀÇ ÁÖ°í¹Þ´Â °ü¸® ¸Þ½ÃÁö¿¡ ÀÎÁõÄڵ尡 »ðÀÔµÇ¾î ¸Þ½ÃÁöÀÇ ¹«°á¼º(integrity)À» º¸ÀåÇÑ´Ù(±× ¸² 10 ÂüÁ¶). ¸Þ½ÃÁö ÀÎÁõ ¹æ¹ý MAC(Message Authentication Code) ºñ¹ÐÅ°¸¦ »ç¿ëÇÏ¿© ÀÛ°í °íÁ¤µÈ ±æÀÌÀÇ ÀÎÁõÄڵ带 ¸¸µå´Â ¹æ½ÄÀÌ´Ù. ¼Û½ÅÀÚ¿Í ¼ö½ÅÀÚ´Â ¼­·Î °°Àº ºñ¹ÐÅ°¸¦ °øÀ¯ÇÏ°í ÀÖ´Ù. ¼Û½ÅÀÚ´Â ¸Þ½ÃÁö¸¦ Àü ¼ÛÇÒ ¶§¸¶´Ù ¸Þ½ÃÁö¿Í Å°¸¦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö ÀÎÁõÄÚµå(MAC)¸¦ ¸¸µé°í, ÀÌ ÀÎ ÁõÄڵ带 ¸Þ½ÃÁö ¿øº»¿¡ ºÙ¿©¼­ º¸³½´Ù. ¼ö½ÅÀÚ´Â ¹ÞÀº ¸Þ½ÃÁö¿¡¼­ ÀÎÁõÄÚµå ºÎºÐÀ» µû·Î ¶¼¾î³»°í, ¼ö½ÅÇÑ ¸Þ½ÃÁö ¿øº»À» ¼Û½ÅÀÚ¿Í µ¿ÀÏÇÑ ¹æ¹ýÀ» »ç¿ëÇÏ ¿© ÀÎÁõÄڵ带 ¸¸µé¾î³½´Ù. ¼ö½ÅÇÑ ÀÎÁõÄÚµå¿Í ¸¸µé¾î³½ ÀÎÁõÄڵ带 ºñ±³ÇÏ¿© ¸Þ½ÃÁöÀÇ ¹«°á¼ºÀ» È®ÀÎÇÑ´Ù. Message Digest(Oneway Hash function) ´ÙÀ½Àº ´Ü¹æÇâ Çؽ¬ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ¼Û½ÅÀÚ´Â Çؽ¬ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© °¡º¯±æÀÌÀÇ ¸Þ½ÃÁö MÀ» °íÁ¤µÈ ±æÀÌÀÇ Çؽ¬ÄÚµå H(M)·Î º¯È¯ÇÏ°í, ¿øº» ¸Þ½Ã Áö¿¡ ºÙ¿©¼­ Àü¼ÛÇÑ´Ù. ÀÌ·± ¹æ¹ýÀ» ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®¶ó°í ÇÑ´Ù. Simple Hash function °¡º¯ÀÇ ±æÀÌ¿¡¼­ ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®¸¦ ÃßÃâÇÏ´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀº XOR¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. °¡·É ÀÔ·ÂÀÌ nºñÆ® ÀÏ ¶§ÀÇ ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®´Â ±×¸² 11°ú °°´Ù. ¸Þ½ÃÁö ÀÎÁõ ¾Ë°í¸®Áò ¡¤MD5(Message Digest 5) MD5´Â Ron Rivest¿¡ ÀÇÇØ °³¹ßµÈ ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ® ¾Ë°í¸®ÁòÀ¸·Î, RFC1321 Ç¥ÁØÀÌ´Ù. MD5´Â NMS¿Í À¥ ºê¶ó¿ìÀú, ÀüÀÚ¸ÞÀÏ µî ³×Æ®¿öÅ©¸¦ »ç¿ëÇÏ´Â ÀÀ ¿ëÇÁ·Î±×·¥ÀÇ ¸Þ½ÃÁö ÀÎÁõ¿¡ »ç¿ëµÈ´Ù. MD5 ¾Ë°í¸®ÁòÀº ÀÓÀÇÀÇ ±æÀÌÀÇ ¸Þ½ÃÁö ¸¦ ÀÔ·Â¹Þ¾Æ 128ºñÆ®ÀÇ ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®¸¦ ¸¸µé¾î³»¸ç, ÀÌ ¶§ ÀÔ·ÂÀº 512ºñ Æ®(64byte) ´ÜÀ§·Î ÁøÇàµÈ´Ù. Àüü µ¿ÀÛÀº ±×¸² 12¿Í °°´Ù. ¨ç Append Padding bits ÀԷ¹ÞÀº kºñÆ®ÀÇ ¸Þ½ÃÁö¸¦ 512ºñÆ® ´ÜÀ§ÀÇ ºí·ÏÀ¸·Î ÀÚ¸¥´Ù. ¸¶Áö¸· ºí·ÏÀÇ °æ¿ì 64ºñÆ®°¡ ±æÀÌ Á¤º¸¿¡ »ç¿ëµÇ±â ¶§¹®¿¡ ¸Þ½ÃÁö ¿µ¿ªÀº 448¹ÙÀÌÆ®°¡ µÇ¾î ¾ß ÇÑ´Ù. ¸¶Áö¸· ºÎºÐÀÇ ±æÀÌ´Â ¸ðµâ·¯ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ±¸ÇØÁø´Ù(length = 448 mod 512). ±×¸®°í ¸ðÀÚ¶ó´Â ±æÀ̸¸Å­ Æеù(padding)µÇ¾î ä¿öÁø´Ù. ¨è Append Length ¸¶Áö¸· ºí·ÏÀÇ 64ºñÆ®¿¡ ¸Þ½ÃÁö¿øº»(original) kÀÇ ±æÀ̸¦ ä¿ö ³Ö´Â´Ù. ¸Þ½ÃÁö ±æÀÌ´Â ¸ðµâ·¯ ¿¬»êÀ» »ç¿ëÇÏ¿© k mod 264ÀÇ ±æÀ̸¸ ÀúÀåµÈ´Ù. ÀÌ ´Ü°è¸¦ Áö ³ª¸é 512ºñÆ® ´ÜÀ§ÀÇ ºí·ÏÀÌ »ý¼ºµÈ´Ù. (Y1, Y2, . . ., YL-1) ¨é Initialize MD buffer ÀÌ Çؽ¬ ÇÔ¼öÀÇ °á°ú´Â 128ºñÆ®·Î Ãâ·ÂµÈ´Ù. °á°ú ¹öÆÛ´Â ³× °³ÀÇ 32ºñÆ® ·¹Áö ½ºÅÍ(A, B, C, D)·Î Ç¥ÇöµÇ´Âµ¥ ÀÌ°ÍÀº ´ÙÀ½°ú °°ÀÌ 16Áø¼ö IV(Initial Value)·Î ÃʱâÈ­µÈ´Ù. A = 6 7 4 5 2 3 0 1 B = E F C D A B 8 9 C = 9 8 B A D C F E D = 1 0 3 2 5 4 7 6 À̸¦ word ´ÜÀ§·Î ¹Ù²Ù¸é ´ÙÀ½°ú °°´Ù. word A: 01 23 45 67 word B: 89 ab cd ef word C: fe dc ba 98 word D: 76 54 32 10 ¨ê 512ºñÆ® ´ÜÀ§ÀÇ ¸Þ½ÃÁö ó¸® °³º° 512ºñÆ®¿¡ °üÇÑ ¿¬»êÀº 32ºñÆ®¾¿, 64(16¡¿4)´Ü°è¸¦ °ÅÃÄ 512ºñÆ®¸¦ ó¸®ÇÑ ´Ù(±×¸² 13 ÂüÁ¶). F, G, H, I ÇÔ¼ö 32ºñÆ® ¿öµå ¼¼ °³¸¦ ÀÔ·Â¹Þ¾Æ ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®¸¦ ÇÏ´Â ÇÔ¼ö´Ù. 128ºñÆ®ÀÇ ABCD¹öÆÛ Áß¿¡¼­ ÇÑ ÇÔ¼ö¿¡ 96(32¡¿3)ºñÆ®°¡ »ç¿ëµÈ´Ù. °¢ ÇÔ¼ö´Â ´ÙÀ½°ú °° Àº ³í¸®¿¬»êÀ» ¼öÇàÇÑ´Ù. F(X, Y, Z) = (X and Y)or(not(X) and Z) [X, Y, Z = 32bit] G(X, Y, Z) = (X and Z) or (Y and not(Z)) H(X, Y, Z) = (X xor Y) xor Z I(X, Y, Z) = Y xor (X or not(Z)) Table T Çؽ¬ÇÔ¼öÀÇ randomness¸¦ Áõ°¡½ÃÅ°±â À§ÇØ 32ºñÆ®ÀÇ ·£´ý °ªÀ» »ç¿ëÇÑ´Ù. Àü ü°¡ 64´Ü°èÀ̹ǷΠ´ÙÀ½ ½ÄÀ» »ç¿ëÇÏ¿© 64°³ÀÇ Å×ÀÌºí °ªÀ» ¸¸µç´Ù(¸®½ºÆ® 3 ÂüÁ¶). T[i] = 232 * abs(sin(i)) Step form 512ºñÆ®¸¦ ó¸®ÇÏ´Â Àüü 64°úÁ¤ÀÇ °¢°¢ÀÇ ´Ü°è´Â ´ÙÀ½°ú °°Àº ÇüÅÂÀÌ´Ù(Ç¥ 4 ÂüÁ¶). a <- b + ((a + f(b,c,d) + X[k] + T[i]) <<< s ½ÇÁ¦ Äڵ忡¼­ À̵éÀÌ Á¤ÇØÁö´Â ÇüÅ´ ¸®½ºÆ® 4¿Í °°´Ù. ¨ë Output ¸ðµç LÀÇ 512ºñÆ® ºí·ÏÀÇ °è»êÀÌ ³¡³ª¸é 128ºñÆ®ÀÇ ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®°¡ ³ª¿Â ´Ù. Àüü ¾Ë°í¸®ÁòÀÇ sudo ÄÚµå MD5 ¾Ë°í¸®ÁòÀÇ ÀüüÀûÀÎ sudo Äڵ带 »ìÆ캸¸é ¸®½ºÆ® 5¿Í °°´Ù. MD5 GeneratorÀÇ ±¸Çö ¾Õ¼­ ¹è¿î MD5 ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ¿© ½ÇÁ¦·Î ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®¸¦ ¸¸µå´Â MD5 Generator ÇÁ·Î±×·¥À» ±¸ÇöÇØ º¸ÀÚ. ÇÁ·Î±×·¥Àº ºñÁÖ¾ó C++ ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© Á¦ÀÛÇß´Ù. µ¿ÀÛ¹æ½ÄÀº »ó´Ü¿¡ ¸Þ½ÃÁö ¿øº»À» ±âÀÔÇÏ°í ¡®º¯È¯½ÃÀÛ¡¯ ¹öÆ°À» ´©¸£¸é ÇÏ´Ü ¿¡ ¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ® µÈ °á°ú°¡ Ãâ·ÂµÈ´Ù. ½ÇÁ¦ ¼Ò½º´Â ¸®½ºÆ® 6°ú °°´Ù. MDStringÀÌ ±¸ÇöµÇ´Â ºÎºÐÀº Á¦°øµÇ´Â ¼Ò½º¸¦ Âü°íÇϱ⠹ٶõ´Ù. ´ÙÀ½ È£¿¡¼­ ´Â SNMPÀÇ ´ÙÀ½ ¹öÀüÀÎ SNMPv2¿Í RMON µî¿¡ °üÇØ »ìÆ캻´Ù. ¸®½ºÆ® 3 : Å×À̺íÀÇ ³»¿ë /* Round1 */ T[1] = 0xd76aa478 T[2] = 0xe8c7b756 T[3] = 0x242070db T[4] = 0xc1bdceee T[5] = 0x4787c62a T[6] = 0xa8304613 T[7] = 0xfd469501 T[8] = 0x698098d8 T[9] = 0x8b44f7af T[10] = 0x8b44f7af T[11] = 0xffff5bb1 T[12] = 0x895cd7be T[13] = 0x6b901122 T[14] = 0xfd987193 T[15] = 0xa679438e T[16] = 0x49b40821 /* Round2 */ T[17] = 0xf61e2562 T[18] = 0xc040b340 T[19] = 0x265e5a51 T[20] = 0xe9b6c7aa T[21] = 0xd62f105d T[22] = 0x2441453 T[23] = 0xd8a1e681 T[24] = 0xe7d3fbc8 T[25] = 0x21e1cde6 T[26] = 0xc33707d6 T[27] = 0xf4d50d87 T[28] = 0x455a14ed T[29] = 0xa9e3e905 T[30] = 0xfcefa3f8 T[31] = 0x676f02d9 T[32] = 0x8d2a4c8a /* Round3 */ T[33] = 0xfffa3942 T[34] = 0x8771f681 T[35] = 0x6d9d6122 T[36] = 0xfde5380c T[37] = 0xa4beea44 T[38] = 0x4bdecfa9 T[39] = 0xf6bb4b60 T[40] = 0xbebfbc70 T[41] = 0x289b7ec6 T[42] = 0xeaa127fa T[43] = 0xd4ef3085 T[44] = 0x4881d05 T[45] = 0xd9d4d039 T[46] = 0xe6db99e5 T[47] = 0x1fa27cf8 T[48] = 0xc4ac5665 /* Round4 */ T[49] = 0xf4292244 T[50] = 0x432aff97 T[51] = 0xab9423a7 T[52] = 0xfc93a039 T[53] = 0x655b59c3 T[54] = 0x8f0ccc92 T[55] = 0xffeff47d T[56] = 0x85845dd1 T[57] = 0x6fa87e4f T[58] = 0xfe2ce6e0 T[59] = 0xa3014314 T[60] = 0x4e0811a1 T[61] = 0xf7537e82 T[62] = 0xbd3af235 T[63] = 0x2ad7d2bb T[64] = 0xeb86d391 ¸®½ºÆ® 4 : ½ÇÁ¦ Äڵ忡¼­ Á¤ÇØÁø ÇüÅ /* F, G, H and I are basic MD5 functions.*/ #define F(x, y, z) (((x) & (y)) | ((~x) & (z))) #define G(x, y, z) (((x) & (z)) | ((y) & (~z))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) /* ROTATE_LEFT rotates x left n bits.*/ #define ROTATE_LEFT(x, n) (((x)<<(n))|((x)>>(32-(n)))) /* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. Rotation is separate from addition to prevent recomputation.*/ #define FF(a, b, c, d, x, s, ac) { \ (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define GG(a, b, c, d, x, s, ac) { \ (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define HH(a, b, c, d, x, s, ac) { \ (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define II(a, b, c, d, x, s, ac) { \ (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } ¸®½ºÆ® 5 : MD5 ¾Ë°í¸®ÁòÀÇ sudo ÄÚµå /* Process each 16-word block. */ For i = 0 to N/16-1 do /* Copy block i into X. */ For j = 0 to 15 do Set X[j] to M[i*16+j]. end /* of loop on j */ /* Save A as AA, B as BB, C as CC, and D as DD. */ AA = A, BB = B, CC = C, DD = D /* Round 1. */ /* Let [abcd k s i] denote the operation a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */ [ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16] /* Round 2. */ /* Let [abcd k s i] denote the operation a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */ [ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20] [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32] /* Round 3. */ /* Let [abcd k s t] denote the operation a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */ [ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36] [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40] [ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44] [ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48] /* Round 4. */ /* Let [abcd k s t] denote the operation a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */ [ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52] [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56] [ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60] [ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64] /* Then perform the following additions. (That is increment each of the four registers by the value it had before this block was started.) */ A=A + AA, B=B + BB, C=C + CC, D=D + DD end /* of loop on i */ ¸®½ºÆ® 6 : MD5 Generator ¼Ò½º CString m_Msg; //¸Þ½ÃÁö ¿øº» CString m_MD5; //¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ® void CMD5GeneratorDlg::OnButton1() { // TODO: Add your control notification handler code here char *source; unsigned char md_digest[16]; char buffer[100]; int k; source = (LPSTR)(LPCTSTR)m_Msg; MDString(source,md_digest); //¸Þ½ÃÁö ´ÙÀÌÁ¦½ºÆ®¸¦ ¼öÇàÇÏ´Â ÇÔ¼ö for(k=0; k<16;k++){ sprintf(buffer,¡±%02x ¡°,md_digest[k]); m_MD5 = m_MD5 + buffer; } UpdateData(FALSE); } Á¦ ¸ñ:[9912]³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹°ÉÀ½!(5) [265] 1999-12-02 18:14 Ç÷¯±×ÀÎ ÇÁ·Î±×·¡¹Ö(2) ºñÆ®¸Ê Ç÷¯±×ÀÎ ºä¾î Áö³­ È£¿¡¼­´Â Ç÷¯±×ÀÎÀÇ °³³ä, ÀÚ¹Ù / ActiveX¿ÍÀÇ Â÷ÀÌ, Ç÷¯±×Àο¡¼­ »ç¿ë µÇ´Â ÇÔ¼ö µîÀ» »ìÆ캸¾Ò´Ù. À̹ø È£ºÎÅÍ 2ȸ¿¡ °ÉÃÄ ºñÆ®¸Ê Ç÷¯±×ÀÎ ºä¾î¸¦ ¸¸µé¾îº¸±â·Î ÇÑ´Ù. ÀÌ ÀÛ¾÷À» ¸¶Ä¡¸é Ç÷¯±×ÀÎ ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ °³³äÀÌ ½± °Ô ¿Í´êÀ» °ÍÀÌ´Ù. ÇÁ·ÎÁ§Æ® »ý¼ººÎÅÍ Â÷±ÙÂ÷±Ù ¼³¸íÇسª°¥ °ÍÀ̹ǷΠºñÁÖ¾ó C++À» Á¢Çغ¸Áö ¾ÊÀº µ¶ÀÚµµ µÎ·Á¿öÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¼±Èñ´ö Çѱ¹ÀÚ¿ø¿¬±¸¼Ò sunhee@kis.kigam.re.kr ¾ÆÁ÷ ¿ì¸®³ª¶ó´Â Ç÷¯±×ÀÎ ÇÁ·Î±×·¡¹ÖÀÌ È®»êµÇÁö ¾Ê¾Æ¼­ Âü°í¹®ÇåÀ̳ª »ùÇà ÇÁ·Î±×·¥À» ã±â°¡ ±×¸® ½±Áö´Â ¾Ê´Ù. ÇÊÀÚµµ ¿¹Àü¿¡ ±×·¡ÇÈ Ç÷¯±×ÀÎ ºä¾î¸¦ ¸¸µé ¶§ ÀÏ¹Ý Ç÷¯±×ÀÎ(ex, ³ª¸ð hwp ºä¾î, tiff ºä¾î µî)ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ±¸Çö ÇÏ´Â ºÎºÐ¿¡¼­ ¾Ö¸¦ ¸ÔÀº ±â¾ïÀÌ ³­´Ù. ÀÌ ±Û¿¡ Æ÷ÇÔµÈ ¿©·¯ ¿¹Á¦µéÀÌ Ç÷¯±×ÀÎÀ» °³¹ßÇÏ°íÀÚ ÇÏ´Â µ¶Àڵ鿡°Ô Áö¸§±æ À» Á¦°øÇÒ ¼ö ÀÖ¾úÀ¸¸é ÇÏ´Â ¹Ù·¥ÀÌ´Ù. À¥¿¡¼­ÀÇ À̹ÌÁö Ç¥ÁØ À¥¿¡¼­ À̹ÌÁöÀÇ Ç¥ÁØÀº gif¿Í jpgÀÌ´Ù. À̸¦ Á¦¿ÜÇÑ tif, bmp, pcx µîÀÇ ±×·¡ÇÈ ÆÄÀÏÀº ´Ù¿î·Îµå¸¦ ¹Þ¾Æ¾ß Çϰųª ÇïÇÁ ¾ÖÇø®ÄÉÀ̼ÇÀ̶ó°í ºÒ¸®´Â ÀÏ¹Ý À©µµ ¿ì ÇÁ·Î±×·¥ÀÌ ·ÎµåµÇ¾î ±×¸²À» º¸¿©ÁØ´Ù. ÀÌ·± ÀÌÀ¯·Î À¥ÀÇ Ç¥ÁØ Æ÷¸ËÀÌ ¾Æ´Ñ ÆÄÀϵéÀ» º¸·Á°í ÇÏ¸é ¼ö¸¹Àº ¾ÖÇø®ÄÉÀ̼ÇÀÌ ½ÇÇàµÇ¾î ÀÖ´Â °ÍÀ» º¸°Ô µÈ´Ù. ÀÌ¿Í´Â ¹Ý´ë·Î À©µµ¿ìÀÇ Ç¥ÁØ À̹ÌÁö Æ÷¸ËÀº bmpÀÌ´Ù. ¹®Á¦´Â À¥ÀÇ À̹ÌÁö Ç¥ ÁØ°ú À©µµ¿ì À̹ÌÁö Ç¥ÁØÀÌ ¼­·Î ´Ù¸£´Ù´Âµ¥ ÀÖ´Ù. ÀÌÁ¦ ÀÌ·¯ÇÑ bmp ÆÄÀÏÀ» Áö¿øÇÏ´Â Ç÷¯±×ÀÎÀ» ¸¸µé¾î À¥ºê¶ó¿ìÀú¸¦ ºüÁ®³ª°¡ Áö ¾Ê°í bmp ±×¸²À» º¼ ¼ö ÀÖ´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¸ÀÚ. Ç÷¯±×ÀΠǥÁØ ÀÎÅÍÆäÀ̽º Ç÷¯±×ÀÎ ÇÁ·Î±×·¥Àº ´ëüÀûÀ¸·Î ´ÙÀ½°ú °°Àº ÀÎÅÍÆäÀ̽º¸¦ °®Ãß°í ÀÖ´Ù. ±×¸² 1¿¡¼­ º¸µíÀÌ ÀÏ´Ü Åø¹Ù°¡ ÇÊ¿äÇÏ´Ù. Åø¹Ù¿¡´Â À̹ÌÁö¸¦ ¼³¸íÇØÁÖ´Â ÅøÆÁ ÀÌ ÀÖ¾î¾ß ÇÏ°í ½ºÇÇµå ¸Þ´º¸¦ Áö¿øÇØÁÖ´Â Æ˾÷ ¸Þ´º ¿ª½Ã ÇÊ¿äÇÏ´Ù. ¿äÁò¿¡´Â ÀͽºÇ÷η¯ ½ºÅ¸ÀÏÀÎ Ç÷§ Åø¹Ù¸¦ ¸¸µé¾îÁÙ ÇÊ¿äµµ ÀÖ´Ù. À̸¦ Á¤¸®Çϸé ÃÖ¼ÒÇÑ Åø¹Ù, Æ˾÷ ¸Þ´º Á¤µµ´Â Ç÷¯±×ÀÎ ÀÎÅÍÆäÀ̽º¿¡ ÀÖ¾î¾ß ÇÏ°í ÀÌ¿Ü¿¡ Ŭ¶óÀ̾ðÆ® È­¸éÀ» Á» ´õ ¿¹»Ú°Ô ²Ù¹Ð ¼öµµ ÀÖ´Ù. ÀÌ°ÍÀº ¼øÀüÈ÷ À©µµ¿ì API ÇÁ·Î±×·¡¹Ö°ú °ü°èµÈ °ÍÀ̹ǷΠ±×¿Í °ü·ÃµÈ ÇÔ¼ö¸¦ ã¾Æ¼­ ÇÁ·Î±× ·¡¹ÖÀ» Çϱ⠹ٶõ´Ù. ÇÁ·ÎÁ§Æ® ±¸Á¶ ÀÌ·¯ÇÑ ºñÆ®¸Ê ºä¾î ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ­´Â Ç¥ 1°ú °°Àº ÆÄÀÏÀÌ »ç¿ëµÈ ´Ù. ÀÌ ¼Ò½º Áß¿¡¼­ °¡Àå Áß¿äÇÑ °ÍÀº PlugWnd.h, Plug Wnd.cpp ÆÄÀÏÀÌ´Ù. ÀÌ ÆÄÀÏ¿¡¼­ Ç÷¯±×Àο¡ ¾²ÀÏ Å¬·¡½º¿Í ÀڷᱸÁ¶, ¸â¹ö ÇÔ¼ö°¡ ¼±¾ðµÇ±â ¶§¹®ÀÌ´Ù. ÇÁ·ÎÁ§Æ® ¸¸µé±â File-New¸¦ ¼±ÅÃÇÏ¿© Win32 Dynamic-Link Library¸¦ ¼±ÅÃÇÑ´Ù. ÆÄÀϸíÀº WebBmpView·Î ÇÏ°í OK ¹öÆ°À» ´©¸£¸é ÆÄÀÏÀÌ Çϳªµµ ¾ø´Â ºó ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÈ´Ù. Ç÷¯±×ÀÎ ÇÁ·Î±×·¥Àº À©µµ¿ì API¸¦ ±âº»À¸·Î Çϱ⠶§¹®¿¡ Non-MFC ÇÁ·Î±×·¡¹ÖÀÌ ´õ È¿°úÀûÀÌ´Ù. ÇÁ·ÎÁ§Æ® °ü·Ã ÆÄÀÏ Ãß°¡ ÀÌÁ¦ Áö³­ È£¿¡¼­ ¼³¸íÇß´ø Ç÷¯±×ÀÎ SDKÀÇ Common Æú´õ¿¡ ÀÖ´Â npwin.cpp ÆÄÀÏÀ» ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÏÀÚ. Âü°í·Î ÇÁ·ÎÁ§Æ® Ãß°¡´Â ¡®Project¡¯ÀÇ ¡®add To Project¡¯ ¡æ ¡®Files¡¯¸¦ Â÷·Ê·Î ¼±ÅÃÇÏ¸é µÈ´Ù. ´ÙÀ½À¸·Î Include Æú´õ¸¦ ÇöÀç ÀÚ½ÅÀÌ ¸¸µç WebBmpView Æú´õ ¾È¿¡ ±×´ë·Î º¹»çÇÑ´Ù. ¶ÇÇÑ Examples\WinTemplates\Source¾ÈÀÇ WinTem p.c ÆÄÀÏÀ» WebBmp.cpp·Î ÀÌ ¸§À» ¹Ù²Ù¾î ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÑ´Ù. ´ÙÀ½¿¡´Â Examples\WinTemplates\Windows ¾ÈÀÇ resource.h, WinTemp.rc, WinTemp.def µî ¼¼ °³ÀÇ ÆÄÀÏÀ» Ãß°¡ÇÑ´Ù. WinTemp.rc´Â Web Bmp.rc·Î, Win Temp.def´Â WebBmp.def·Î À̸§À» ¹Ù²Ù¾î Ãß°¡ÇØ¾ß ÇÑ´Ù. ¸®¼Ò½º ÆÄÀÏ ¼öÁ¤ Ç÷¯±×ÀÎ SDK¿¡¼­ º¹»çÇÑ ¸®¼Ò½º ÆÄÀÏÀº »ùÇà ¸®¼Ò½ºÀ̱⠶§¹®¿¡ ÇÁ·ÎÁ§Æ®¿¡ ¸Â°Ô ¹Ù²Ù¾î¾ß ÇÑ´Ù. ¨ç ¹öÀü ¼³Á¤ ºñÁÖ¾ó ½ºÆ©µð¿À ÅëÇÕȯ°æ¿¡¼­ ¸®¼Ò½º ÅÇÀ» ´©¸£¸é ±âº»ÀûÀ¸·Î VersionÀ̶ó´Â °Í¸¸ ³ª¿Â´Ù. Version ºÎºÐÀº ½ÅÁßÇÏ°Ô ¼³Á¤ÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº ƯÈ÷ ÁÖÀÇÇؾßÇÒ ºÎºÐÀÌ´Ù(±×¸² 2 ÂüÁ¶). ¡¤ VersionÀÇ ¸®¼Ò½ºÀÇ ¾ð¾î ¼¼ÆÃÀº ¹Ýµå½Ã English(U.S)À̾î¾ß ÇÑ´Ù. ¡¤ VersionÀº Key¿Í Block Header µÎ°³·Î ºÐ¸®µÇ¾î ÀÖ´Ù. Block HeaderÀÇ Langauge ID´Â ¿µ¾î(¹Ì±¹), Code page´Â Windows, Multilingual·Î ÇÑ´Ù. ¡¤ FileExtents´Â Áö¿øÇÒ Ç÷¯±×ÀÎ È®ÀåÀÚ Å¸ÀÔÀÌ´Ù. bmp|bmp·Î ÇÑ´Ù. ¡¤ FileOpenNameÀº ¿ÀÇÂÇÒ ÆÄÀÏ È®ÀåÀÚÀÇ ¼³¸íÀ» ³ªÅ¸³½´Ù. ¹Ýµå½Ã À§¿¡¼­ ÀÛ ¼ºÇÑ File ExtensÀÇ °³¼ö¿Í ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. 2°³·Î Ç߱⠶§¹®¿¡ ¿©±â¼­µµ BMP Image(*.bmp)|BMP Image(*.bmp)\0\0·Î ÇÑ´Ù. ¡¤ MIMETypeÀº image/x-bmp|image/bmp·Î ÇÏÀÚ. bmp MIME ŸÀÔÀº ÀÌ·¸°Ô ÀâÇô Àֱ⠶§¹®¿¡ ±×´ë·Î ½á¾ß ÇÑ´Ù. ¨è Åø¹Ù ºñÆ®¸Ê ¸¸µé±â ¸®¼Ò½º ÅÇ¿¡¼­ ¡®Æ˾÷ ¸Þ´º / Insert¡¯¸¦ ¼±ÅÃÇÏ¸é ´ëÈ­»óÀÚ¿¡ BitmapÀÌ ³ªÅ¸ ³­´Ù. ÀÌ°ÍÀ» ¼±ÅÃÇÏ¸é ºñÆ®¸Ê À̹ÌÁö¸¦ ±×¸± ¼ö ÀÖ´Â ¿¡µðÅÍ°¡ ³ª¿Â´Ù. 48x16 ÀÇ À̹ÌÁö¸¦ ¸¸µç´Ù. Áï 16Çȼ¿Â¥¸® À̹ÌÁö 3°³¸¦ ¸¸µå´Â °ÍÀÌ´Ù. ID¸íÀº IDB_BIT MAP1À¸·Î ÇÑ´Ù. ¨é ´ÙÀ̾ó·Î±× ¸¸µé±â À̹ø¿¡´Â Dialog¸¦ ¼±ÅÃÇÏ¿© ´ëÈ­»óÀÚ¸¦ Çϳª ¸¸µé¾îº¸ÀÚ. ID¸íÀº IDD_About À¸·Î ÇÑ´Ù. ÀÏ´Ü µÎ°³ÀÇ ¹öÆ°ÀÌ ³ª¿À´Âµ¥ Cancel ¹öÆ°Àº ¾ø¾Ø´Ù. ±×¸®°í Edit ¹Ú½º µÎ °³¸¦ ³õ´Â´Ù. µÎ °³ÀÇ Edit ¹Ú½ºÀÇ ¼Ó¼º¿¡ ¸ðµÎ MultilineÀ» üũÇÏ°í ¾Æ·¡ Edit ¹Ú½º´Â Border ¼Ó¼ºÀ» üũÇÏ¿© ¿òÇ« µé¾î°¡°Ô ÇÑ´Ù(±×¸² 3 ÂüÁ¶). ¨ê Æ˾÷ ¸Þ´º ¸¸µé±â À̹ø¿¡´Â Menu¸¦ ¼±ÅÃÇÏ¿© »õ·Î¿î ¸Þ´º ¸®¼Ò½º¸¦ ¸¸µé°í, ID´Â CONTEXTMENU·Î ÇÑ´Ù. ¸Þ´º´Â Ç¥ 2¿Í °°ÀÌ ±¸¼ºÇÑ´Ù. Âü°í·Î Æ˾÷ ¼Ó¼ºÀ» üũÇÏ¸é ¼­ºê ¸Þ´º°¡ »ý¼ºµÈ´Ù. ¨ë ¸®¼Ò½º ½Éº¼ ¸¸µé±â ¸®¼Ò½º´Â °¢°¢ ID¶ó´Â °ÍÀ» °¡Áö°í ÀÖ´Ù. ÀÌ ID´Â ÀÚ½ÅÀ» ³ªÅ¸³»´Â ½Äº°ÀÚ¶ó ÇÒ ¼ö ÀÖ´Ù. Åø¹Ù ¹öÆ°¿¡ ÇØ´çÇÏ´Â ¸®¼Ò½º ½Éº¼µéÀ» ¸¸µé±â À§Çؼ­´Â ¸®¼Ò½º ÅÇ¿¡¼­ Æ˾÷ ¸Þ´º Áß Resource Symbols¸¦ ¼±ÅÃÇÏ¸é µÈ´Ù. À̸¦ ¼±ÅÃÇÏ¸é ±×¸² 4¿Í °°Àº È­¸éÀÌ ³ª¿Â´Ù. ¿©±â¿¡¼­ New¸¦ ´­·¯ »õ·Î¿î ¸®¼Ò½º ½Éº¼À» ¸¸µé¾î ÁÖ¸é µÈ´Ù. ¡¤ Åø¹Ù¿¡ ¾²ÀÏ ¼¼ °¡Áö ¹öÆ°ÀÇ ¸®¼Ò½º ½Éº¼À» ¸¸µç´Ù. IDB_SAVE : 101 IDB_GOTOURL : 102 IDB_ABOUT : 103 IDB_SEP : 105 ¡¤ Åø¹Ù¿¡ ´ëÇÑ ¸®¼Ò½º ½Éº¼À» ¸¸µç´Ù. ID_TOOLBAR : 200 ¨ì ½ºÆ®¸µ Å×ÀÌºí ¸¸µé±â Åø¹Ù¿¡´Â ÅøÆÁÀ̶ó´Â °ÍÀÌ ºÙ´Â´Ù. ÀÌ ÅøÆÁÀÇ ³»¿ëÀº Á÷Á¢ ÇÁ·Î±×·¥ Äڵ忡¼­ µµ ÇÒ ¼ö ÀÖÁö¸¸ ½ºÆ®¸µ Å×À̺í·Î ¸¸µé¸é ÀÌÈÄ ³»¿ëÀ» º¯°æÇÒ ¶§ ÀÌ ºÎºÐ¸¸ ¹Ù ²Ù¾î °£´ÜÈ÷ ó¸®ÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ ÀåÁ¡ÀÌ´Ù. ½ºÆ®¸µ Å×À̺íÀ» ¸¸µé±â À§Çؼ­ ´Â ÀÏ¹Ý ¸®¼Ò½º¸¦ ¸¸µé ¶§¿Í °°ÀÌ Æ˾÷ ¸Þ´º¿¡¼­ Insert¸¦ ´­·¯ String Table À» ¼±ÅÃÇÑ´Ù. ÅøÆÁ¿¡ µé¾î°¥ ³»¿ëÀº Åø¹Ù ¸®¼Ò½º ½Éº¼°ú ¿¬°áµÇ¾î¾ß ÇÑ´Ù. Åø¹Ù ¸®¼Ò½º ½Éº¼Àº ¾Õ¿¡¼­ IDB_SAVE, IDB_ GOTOURL, IDB_ABOUT ¼¼ °³¸¦ ¸¸µé¾ú´Ù. IDB _SEP´Â Åø¹Ù¿¡¼­ ¾²ÀÏ ºÐ¸®ÀÚ ¿ªÇÒÀ» Çϱ⠶§¹®¿¡ ÅøÆÁÀÌ ÇÊ¿ä ¾ø´Ù. ÀÌ ¼¼ °³ÀÇ ¸®¼Ò½º ½Éº¼¿¡ ½ºÆ®¸µÀ» ºÙ¿©ÁÖ¸é µÈ´Ù. ´ÙÀ½À¸·Î ½ºÆ®¸µ ±× ¸®µå¸¦ ´õºí Ŭ¸¯Çϸé ÇÁ¶óÆÛƼ È­¸éÀÌ ³ª¿À´Âµ¥ ¿©±â¿¡ Åø¹Ù ¹öÆ° ¸®¼Ò½º ½É º¼À» ¼±ÅÃÇÏ°í ÅøÆÁÀÇ ³»¿ëÀ» Àû¾îÁÖ¸é µÈ´Ù(±×¸² 5 ÂüÁ¶). ÀÌ·Î½á ¸®¼Ò½º ¼³Á¤ ÀÛ¾÷Àº ³¡³µ´Ù. ÄÚµù ·¹ÆÛ·±½º ºñÆ®¸Ê¿¡ ´ëÇؼ­´Â ÀÌ¹Ì ´Ù¸¥ Ã¥¿¡¼­µµ ¸¹ÀÌ ´Ù·ç¹Ç·Î ÀÚ¼¼ÇÑ ¼³¸íÀº ÇÇÇÏ°í ÁÖ·Î Ç÷¯±×ÀÎ ÀÎÅÍÆäÀ̽º¸¦ ±¸¼ºÇϱâ À§ÇÑ ÄÚµùÀ» ÁÖ·Î ¼³¸íÇÏ°Ú´Ù. Âü°í·Î À̹ø È£¿¡¼­´Â Jason SummersÀÇ ºñÆ®¸Ê 󸮷çƾÀ» »ç¿ëÇÏ¿´´Ù. Ç÷¯±×ÀÎ ÀνºÅϽº ó¸® Ŭ·¡½º(PlugWnd.h) ºñÆ®¸Ê 󸮸¦ À§ÇÑ Å¬·¡½º¸¦ ±¸¼ºÇÏ´Â ÆÄÀÏÀÌ´Ù. ÀÌ ÆÄÀÏ¿¡´Â ÀÚ·á ±¸Á¶ ¹× ¸â¹ö ÇÔ¼ö°¡ Æ÷ÇԵȴÙ. ¸â¹ö ÇÔ¼ö¿¡ ´ëÇÑ ¼³¸íÀº ÇÊ¿äÇÑ ºÎºÐ¸¸ ´ÙÀ½¿¡ ¼³¸íÇÏ ±â·Î ÇÏ°í ¿©±â¿¡¼­´Â ¸â¹ö º¯¼ö°¡ ¾î¶»°Ô »ç¿ëµÇ´ÂÁö¿¡ ´ëÇØ ¼³¸íÇÒ °ÍÀÌ´Ù. ¸®½ºÆ® 1À» Âü°íÇϱ⠹ٶõ´Ù. ÀÌÁ¦ºÎÅÍ »ìÆ캼 ºÎºÐÀº Ç÷¯±×ÀÎÀÇ »À´ë°¡ µÇ´Â ÀڷᱸÁ¶ÀÌ´Ù. ³ª¸ÓÁö ºÎºÐÀº ÇöÀç Ç÷¯±×ÀÎÀÇ »óȲ¿¡ ¸Â°Ô ¼±¾ðÇÏ¸é µÈ´Ù. NPWindow* fWindow; uint16 fMode; HWND fhWnd; // Ç÷¯±×ÀÎ ´ÙÅ¥¸ÕÆ® ÇÚµé WNDPROC fDefaultWindowProc; NPP instance; // Ç÷¯±×ÀÎ ÀνºÅϽº ÇÚµé ¨ç NPWindow Structure ºê¶ó¿ìÀú Ŭ¶óÀ̾ðÆ®ÀÇ Å©±â¿¡ °üÇÑ ÀڷᱸÁ¶À̸ç APIÀÇ Rect ŸÀÔ°ú À¯»çÇÏ ´Ù. typedef enum { NPWindowTypeWindow = 1, // À©µµ¿ì°¡ ÀÖ´Â Ç÷¯±×ÀÎ NPWindowTypeDrawable // À©µµ¿ì°¡ ¾ø´Â Ç÷¯±×ÀÎ } NPWindowType; typedef struct _NPWindow { void* window; // OS Ç÷§Æû ÇÚµé uint32 x; // left À§Ä¡ uint32 y; // top À§Ä¡ uint32 width; // À©µµ¿ìÀÇ width uint32 height; // À©µµ¿ìÀÇ height NPRect clipRect; #ifdef XP_UNIX void* ws_info; #endif NPWindowType type; // Ç÷¯±×ÀÎÀÌ À©µµ¿ì°¡ ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ ÁöÁ¤ÇÑ´Ù. } ¨è WNDPROC fDefaultWindowProc; À̺¥Æ® Çڵ鷯¸¦ ÁöÁ¤ÇÏ´Â Äݹé ÇÔ¼ö¸¦ ÀúÀåÇÑ´Ù. ¨é uint16 fMode; ÇöÀç Ç÷¯±×ÀÎÀÌ embed ¸ðµå·Î µÇ¾î ÀÖ´ÂÁö ¾Æ´Ï¸é Ç®¸ðµå(Áï, html¿¡ Æ÷Ç﵂ Áö ¾Ê°í ÆÄÀÏ ÀÚü°¡ Ç÷¯±×Àο¡ ½ÇÇàµÉ °æ¿ì)ÀÎÁö ÀúÀåÇÏ´Â º¯¼öÀÌ´Ù. NP_EMBED : embed ű׿¡ ÀÇÇØ Ç÷¯±×ÀÎÀÌ ·Îµå NP_FULL : ÆÄÀÏ ÀÚü°¡ Ç÷¯±×Àο¡ ·Îµå ¨ê HWND fhWnd; Ç÷¯±×ÀÎ ´ÙÅ¥¸ÕÆ®ÀÇ À©µµ¿ì ÇÚµé·Î À̺¥Æ® Äݹé ÇÔ¼ö¿¡¼­ À̺¥Æ®¸¦ ´Ù·ê ¶§ ¾²ÀδÙ. ¨ë NPP instance; Ç÷¯±×ÀÎ ÀνºÅϽº ÇÚµé. typedef struct _NPP { void* pdata; // Ç÷¯±×ÀÎ µ¥ÀÌÅÍ Æ÷ÀÎÅÍ void* ndata; // ³Ý½ºÄÉÀÌÇÁ µ¥ÀÌÅÍ Æ÷ÀÎÅÍ } NPP_t; typedef NPP_t* NPP; ÀÌ ÀڷᱸÁ¶¸¦ º¸¸é ¾Ë ¼ö ÀÖµíÀÌ Ç÷¯±×ÀÎ ÀνºÅϽº·Î ¼±¾ðÇÑ CPluginWindow Ŭ·¡½º ÀνºÅϽº¸¦ pdata¿¡ ³Ö¾îÁÖ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº NPP_New ÇÔ¼öÀÇ Ã³À½ ºÎºÐÀ» º¸¸é ¾Ë ¼ö ÀÖ´Ù. This = new CPluginWindow(mode, instance); instance->pdata = This; ¸®½ºÆ® 1 : Ç÷¯±×ÀÎ ÀνºÅϽº ó¸® Ŭ·¡½º #include #include // Åø¹Ù ÄÁÆ®·ÑÀ» Æ÷ÇÔÇϱâ À§ÇÑ Çì´õ ÆÄÀÏ #include ¡°npapi.h¡± // Ç÷¯±×ÀÎ API Çì´õ ÆÄÀÏ class CPluginWindow { public: NPWindow* fWindow; uint16 fMode; HWND fhWnd; // Ç÷¯±×ÀÎ ´ÙÅ¥¸ÕÆ® ÇÚµé WNDPROC fDefaultWindowProc; // ¸Þ½ÃÁö ó¸® Äݹé ÇÔ¼ö NPP instance; // Ç÷¯±×ÀÎ ÀνºÅϽº ÇÚµé char url[2048]; // ºñÆ®¸Ê ÆÄÀÏÀÇ URL int status; // ÇöÀç ºñÆ®¸Ê ÆÄÀÏÀÌ ·ÎµåµÇ¾ú´Â°¡ ¿©ºÎ (ST_LOADED : ·Îµå¿Ï·á, ST_NOTLOADED : ¾ÆÁ÷ ¾ÈµÊ HANDLE hdib; // ºñÆ®¸ÊÀ» ÀúÀåÇÑ ¸Þ¸ð¸® ÇÚµé int diballoc; // hdib¿¡ ÇÒ´çµÈ ¹ÙÀÌÆ® ¼ö int dibused; // DIB·Î Àоî¿Â ¹ÙÀÌÆ® ¼ö int streamend; // ½ºÆ®¸² »çÀÌÁî BITMAPFILEHEADER fileheader; int imgwidth,imgheight, imgbpp, imgcompr, palettesize; HWND hPluginWnd; // Ç÷¯±×ÀÎ À©µµ¿ì ÇÚµé HWND hToolbar; // Åø¹Ù À©µµ¿ì ÇÚµé HMENU hPopupMenu; // ¸Þ´º ÇÚµé }; Ç÷¯±×ÀÎ ÀνºÅϽº ÆÄÀÏ(webbmp.cpp) Ç÷¯±×ÀÎÀº ¸ÖƼ¾²·¹µå ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. Áï ¿©·¯ °³ÀÇ À¥ºê¶ó¿ìÀú¿¡¼­ °°Àº Ç÷¯±×ÀÎÀÌ ·ÎµåµÈ´Ù°í Çصµ ¸Å¹ø ÇÁ·Î¼¼½º°¡ »ý¼ºµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ¾²·¹µå°¡ ´Ã¾î³ª´Â °ÍÀÌ´Ù. µû¶ó¼­ NPP_Initialize´Â óÀ½À¸·Î Ç÷¯±×ÀÎÀÌ ·ÎµåµÉ ¶§ ½Ç ÇàÇÏ°í NPP_ShutdownÀº ¸ðµç Ç÷¯±×ÀÎÀÌ Á¾·áµÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. NPP_New ÇÔ¼ö´Â ¾²·¹µå°¡ »ý¼ºµÉ ¶§¸¶´Ù È£ÃâµÈ´Ù. ±×·¯¹Ç·Î À§¿¡¼­ ¸¸µç Ŭ ·¡½º¿¡ ÀνºÅϽº¸¦ ÇÒ´çÇϱâ À§Çؼ­´Â NPP_New¿¡¼­ »õ·Î¿î ÀνºÅϽº¸¦ ÇÒ´ç ÇØ¾ß ÇÑ´Ù. ¹Ý´ë·Î NPP_Destroy´Â ºê¶ó¿ìÀú°¡ Á¾·áµÉ ¶§¸¶´Ù »ý¼ºµÈ ¾²·¹µå¸¦ Á¾·áÇÑ´Ù. ±×·¯¹Ç·Î »ý¼ºµÈ Ŭ·¡½º ÀνºÅϽºµµ ¿©±â¿¡¼­ ÇØÁ¦½ÃÄÑÁÖ¾î¾ß ÇÑ´Ù. NPP_SetWindow ÇÔ¼ö´Â Ç÷¯±×ÀÎ »ý¼º½Ã Ç÷¯±×ÀÎ È­¸éÀ» ±×·ÁÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ¿©±â¿¡¼­ Åø¹Ù¸¦ »ý¼ºÇØÁÖ¸é µÈ´Ù. ºñÆ®¸Ê ÆÄÀÏÀ» ºê¶ó¿ìÀú¿¡¼­ º¸¿©ÁÖ±â À§Çؼ­´Â Ŭ¶óÀ̾ðÆ®¿¡ ÀÏ´Ü ÆÄÀÏ ³»¿ë ÀÌ ÀúÀåµÇ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ÆÄÀÏ ÀúÀå ±â´ÉÀº ´ÙÇàÈ÷ ºê¶ó¿ìÀú ±â´É¿¡ Æ÷Ç﵂ ¾î ÀÖ´Ù. ´ç¿¬È÷ Ç÷¯±×Àο¡¼­µµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ÆÄÀÏ·Î ÀúÀåÇϱâ À§Çؼ­´Â NPP_StreamAsFileÀ» ¾²¸é µÇ°í ½ºÆ®¸²¿¡ ÀúÀåÇØ ¾²·Á¸é NPP_NewStreamÀÌ ¶ó´Â ÇÔ¼ö¿¡¼­ ½ºÆ®¸²À» Àоî¿À°í NPP_Write ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ¸Þ¸ð¸®¿¡ ½ºÆ® ¸²À» ÀúÀåÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ÆÄÀÏ·Î ÀúÀåÇÏ´Â °Íº¸´Ù ½ºÆ®¸²À» ÀÌ¿ëÇØ Á÷Á¢ ¸Þ¸ð¸®¿¡ ÀúÀåÇϸé Á»´õ ºü¸¥ ¼Óµµ¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ÀúÀåµÈ ½ºÆ®¸²À» »èÁ¦Çϱâ À§Çؼ­´Â NPP_DestroyStreamÀ̶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ÀÌÁ¦ Ç÷¯±×ÀÎ ÀνºÅϽº ÆÄÀÏ¿¡ ¼­ »ç¿ëµÇ´Â ÇÔ¼öµéÀ» »ìÆ캸±â·Î ÇÏÀÚ. ¨ç NPP_Initialize : óÀ½À¸·Î ÇÁ·Î¼¼½º°¡ »ý¼ºµÇ¾úÀ» ¶§ È£ÃâÇÑ´Ù. ÀÌ ÆÄÀÏ¿¡¼­ ´Â ÇöÀç DLL ÀνºÅϽºÀÇ ÇÚµéÀ» ±¸ÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. DLL ÇÔ¼öÀÇ À̸§Àº DLLFILENAME¿¡¼­ Á¤ÀǵǾî ÀÖ´Ù. #define DLLFILENAME ¡°npbmpvw.dll¡± hInst=GetModuleHandle(DLLFILENAME); ¨è NPP_New : ¾²·¹µå°¡ »ý¼ºµÉ ¶§¸¶´Ù È£ÃâÇØ »õ·Î¿î Ŭ·¡½º ÀνºÅϽº¸¦ ¸¸ µé¾îÁØ´Ù. ÀÌ ÇÔ¼ö´Â ´«¿©°Ü º¼ ÇÊ¿ä°¡ ÀÖ´Ù. ¹Ù·Î ¿©±â¿¡¼­ embed ű×ÀÇ ÆÄ ¶ó¹ÌÅ͸¦ ó¸®ÇÑ´Ù. ÀÌ¿Í °°Àº űװ¡ µé¾î¿À¸é argc = 4 argn = { ¡°src¡±, ¡°height¡±, ¡°width¡±, ¡°loop¡±} argv = { ¡°movie.avi¡±, ¡°100¡±, ¡°100¡±, ¡°true¡±} ¿Í °°ÀÌ ÆĶó¹ÌÅÍ °ªÀÌ ¼³Á¤µÈ´Ù. ±×·¸±â ¶§¹®¿¡ ÇöÀç Ç÷¯±×Àο¡ ·ÎµåµÉ ÆÄÀÏ ¸íÀ» ±¸ÇÏ·Á¸é argv[0] ÇÏ¸é µÈ´Ù. ÀÏ´Ü ÀÌ ÇÔ¼ö¿¡¼­´Â °¢ ºê¶ó¿ìÀú¿¡ µû¸¥ Çà ·¯±×ÀÎ ÀνºÅϽº¸¦ »ý¼ºÇÏ°í Ç÷¯±×ÀΠŬ·¡½ºÀÇ ¸â¹ö º¯¼ö¸¦ ÃʱâÈ­ÇÑ´Ù(¸®½º Æ® 2 ÂüÁ¶). ¨é NPP_NewStream : ºñÆ®¸Ê ³»¿ëÀÇ ½ºÆ®¸²À» Àоî¿Â´Ù. ¶ÇÇÑ URLÀÇ Á¤º¸¸¦ Ç÷¯±×ÀΠŬ·¡½º CPluginWindowÀÇ URL¿¡ ÀúÀåÇÏ°í ¸¸¾à¿¡ ÀÌÀü¿¡ »ç¿ëÇÑ °´ ü°¡ ³²¾ÆÀÖÀ» °æ¿ì À̸¦ ¸Þ¸ð¸®¿¡¼­ Á¦°ÅÇÏ°í ½ºÆ®¸²À» Àд´Ù. NPError NPP_NewStream(NPP instance,NPMIMEType type,NPStream *stream, NPBool seekable,uint16 *stype) { .... Strncpy(This->url,stream->url,2048); if(This->hdib) { GlobalFree(This->hdib); This->hdib=NULL; This->diballoc=0; } This->status=ST_NOTLOADED; This->streamend=stream->end; ... } ¨ê NPP_Write : Àоî¿Â ½ºÆ®¸²ÀÇ ³»¿ëÀ» ¸Þ¸ð¸®·Î ÀúÀåÇÑ´Ù. À§ÀÇ NPP_NewStream ÇÔ¼ö°¡ ÇØ´ç URL¿¡¼­ ºñÆ®¸ÊÀÇ ½ºÆ®¸² Àб⸦ ÃʱâÈ­ÇÏ´Â ¹Ý¸é ÆÄÀÏÀÇ ¸ðµç ³»¿ëÀ» Àо Ç÷¯±×ÀÎ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºÇÏ´Â ºÎºÐÀÌ ¹Ù·Î ÀÌ ÇÔ¼ö°¡ ÇÏ´Â ÀÏÀÌ´Ù. ¨ë NPP_DestroyStream : ½ºÆ®¸²À» ÇØÁ¦ÇÑ´Ù. ¾²·¹µå°¡ Á¾·áµÉ ¶§¸¶´Ù È£ÃâµÈ ´Ù. ¨ì NPP_SetWindow : Ç÷¯±×ÀÎ È­¸éÀÌ »õ·Î »ý±â°Å³ª ¿òÁ÷ÀÏ ¶§, ¶Ç´Â Æı«µÉ ¶§ À©µµ¿ì¸¦ ´Ù½Ã ±×·ÁÁÖ´Â ÇÔ¼öÀÌ´Ù. ÀÌ ÇÔ¼ö¿¡¼­ °¡Àå Áß¿äÇÑ ºÎºÐÀº À©µµ¿ì ¸Þ½ÃÁö ºÎºÐÀ» ó¸®ÇÏ´Â Äݹé ÇÔ¼ö¸¦ ÁöÁ¤ÇØÁÖ´Â ºÎºÐÀÌ´Ù. ÀÌ ºÎºÐÀ» ¼³Á¤ÇØ ÁÖÁö ¾ÊÀ¸¸é Ç÷¯±×ÀÎÀº ¾î¶² ¸Þ½ÃÁö¿¡µµ ¹ÝÀÀÇÏÁö ¾Ê´Â´Ù. ÀÌ´Â À©µµ¿ì API·Î ÀÛ¼ºÇÒ ¶§¿Í ºñ½ÁÇÏ´Ù. À©µµ¿ì¿¡¼­ »ç¿ëÇÒ ¾ÆÀÌÄÜ, Ŭ·¡½º¸í, Å©±â µîÀ» ÁöÁ¤ÇÏ °í ¸Þ½ÃÁöó¸® ÇÔ¼ö¿Í Ç÷¯±×Àο¡¼­ »ç¿ëµÇ´Â Åø¹Ù ºÎºÐÀ» ³Ö¾îÁÖ¾î¾ß ÇÑ´Ù. NPError NPP_SetWindow(NPP instance, NPWindow* window) { ... // Á¦ÀÏ Áß¿äÇÑ ÇÔ¼ö. Ç÷¯±×Àο¡¼­ À̺¥Æ® 󸮸¦ À§ÇØ Äݹé ÇÔ¼ö¸¦ ÁöÁ¤ÇÑ ´Ù. // ÁöÁ¤µÈ Äݹé ÇÔ¼ö´Â PlugWindowProc ÇÔ¼öÀÌ´Ù. This->fDefaultWindowProc = (WNDPROC)SetWindowLong ((HWND)window->window, GWL_WNDPROC, (LONG)PluginWindowProc); ... // À©µµ¿ì °ø¿ë ÄÁÆ®·ÑÀ» ÃʱâÈ­ÇÑ´Ù. ÀÌ ¾È¿¡¼­ Åø¹Ù¸¦ »ý¼ºÇÑ´Ù. This->InitControl(This->fhWnd, This); return result; } ¸®½ºÆ® 2 : NPP_New ÇÔ¼ö NPError NPP_New(NPMIMEType pluginType,NPP instance, uint16 mode, int16 argc,char* argn[],char* argv[],NPSavedData* saved) { CPluginWindow* This; // »õ·Î¿î Ç÷¯±×ÀÎ ÀνºÅϽº¸¦ »ý¼ºÇÑ´Ù. This = new CPluginWindow(mode, instance); instance->pdata = This; // Ç÷¯±×ÀÎ ÀνºÅϽº ¸â¹ö º¯¼ö¿¡ ÃʱⰪÀ» ³Ö´Â´Ù. This->fWindow = NULL; This->fMode = mode; This->fhWnd = NULL; This->fDefaultWindowProc = NULL; This->instance = instance; This->hdib=(HANDLE)0; This->diballoc=0; This->dibused=0; This->status=ST_NOTLOADED; .... } À̺¥Æ® ó¸® Äݹé ÇÔ¼ö Ç÷¯±×Àεµ ÀÏ¹Ý ¾ÖÇø®ÄÉÀ̼Çó·³ ´ëºÎºÐÀÇ ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÀÛ ¾÷À» À§ÇØ ÇÊ¿äÇÑ °ÍÀÌ Äݹé ÇÔ¼öÀÌ´Ù. Äݹé ÇÔ¼ö¸¦ ÁöÁ¤ÇØÁÖ±â À§Çؼ­´Â ´ÙÀ½ °ú °°ÀÌ ¼±¾ðÇØ¾ß ÇÑ´Ù. LRESULT CALLBACK PluginWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); ÀÌ·¯ÇÑ Çü½ÄÀº ÀÌ¹Ì ¸¹ÀÌ º¸¾ÒÀ» °ÍÀÌ´Ù. ÀÌ´Â API·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§ À̺¥ Æ® Çڵ鷯¸¦ ¸¸µå´Â Çü½Ä°ú °°´Ù. ÀÌ ÇÔ¼ö´Â ½ÇÁ¦·Î »ç¿ëÀÚ°¡ Ç÷¯±×ÀÎ È­¸é¿¡ ¼­ ¸¶¿ì½º¸¦ ´©¸¥´ÙµçÁö Æ˾÷ ¸Þ´º, Åø¹Ù µîÀ» ¼±ÅÃÇÒ ¶§ÀÇ ¹ÝÀÀÀ» ó¸®ÇÏ´Â ·çƾÀÌ´Ù(¸®½ºÆ® 3 ÂüÁ¶). a¸®½ºÆ® 3 : À̺¥Æ® ó¸® Äݹé ÇÔ¼ö LRESULT CALLBACK PluginWindowProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { // ºñÆ®¸Ê ó¸® ÀνºÅϽº¸¦ ¾ò¾î¿Â´Ù. PluginWindowProcÀº ÀÏÁ¾ÀÇ ¿ÜºÎÇÔ¼öÀ̱⠶§¹®¿¡ ÇöÀç Ç÷¯±×ÀÎ ÇÚµéÀ» ¾ò¾î¿À±â // À§Çؼ­´Â ¹Ýµå½Ã GetPropÀ» ÀÌ¿ëÇØ¾ß ÇÑ´Ù. CPluginWindow* This = (CPluginWindow*) GetProp(hWnd, gInstanceLookupString); if(!This) return DefWindowProc (hWnd, Msg, wParam, lParam); switch(Msg) { // ¿À¸¥ÂÊ ¸¶¿ì½º ¹öÆ°À» ´©¸£¸é Æ˾÷ ¸Þ´º¸¦ ·ÎµåÇÑ´Ù. case WM_CONTEXTMENU: This->ContextMenu(This,LOWORD(lParam), HIWORD(lParam)); // Ç÷¯±×ÀÎ È­¸éÀ» ±×¸°´Ù. case WM_PAINT: { PAINTSTRUCT paintStruct; HDC hdc; RECT rect; HPEN oldpen; HBRUSH oldbrush; // Ç÷¯±×ÀÎ È­¸éÀÇ µð¹ÙÀ̽º ÄÁÅؽºÆ®¸¦ ¾ò¾î¿Â´Ù. hdc = BeginPaint( hWnd, &paintStruct ); GetClientRect(hWnd,&rect); oldpen=(HPEN)SelectObject(hdc, GetStockObject(NULL_PEN)); oldbrush=(HBRUSH)SelectObject (hdc,GetStockObject(WHITE_BRUSH)); Rectangle(hdc,rect.left,rect.top, rect.right+1,rect.bottom+1); // ºñÆ®¸ÊÀ» Ç÷¯±×ÀÎ È­¸é¿¡ ±×¸°´Ù. This->PaintBitmap(This, hdc, &rect); SelectObject(hdc,oldpen); SelectObject(hdc,oldbrush); // ¾ò¾î¿Â µð¹ÙÀ̽º ÄÁÅؽºÆ® ÇÚµéÀ» ÇØÁ¦ÇÑ´Ù. EndPaint( hWnd, &paintStruct ); } // È­¸é ¸®»çÀÌÁî½Ã¿¡ ¹ß»ýÇÏ´Â À̺¥Æ® case WM_SIZE : //ºê¶ó¿ìÀú »çÀÌÁî°¡ º¯ÇßÀ» °æ¿ì Ç÷¯±×ÀÎ Å©±âµµ º¯°æ½ÃŲ´Ù. pluginObj->OnSize(hWnd); break; // Åø¹Ù ¹öÆ°À» ´­·¶À» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ® case WM_COMMAND : { switch(LOWORD(wParam)){ // ºñÆ®¸Ê ÆÄÀÏ ÀúÀå ¹öÆ°À» ´­·¶À» ¶§ ¹ß»ýÇÏ´Â ÇÔ¼ö case IDB_SAVE : { This->SaveImage(This); break; } // About ´ëÈ­»óÀÚ ¹öÆ°À» ´­·¶À» ¶§ ¹ß»ýÇÏ´Â ÇÔ¼ö case IDB_ABOUT : { This->OnAbout(hWnd, This); break; } // URL À̵¿ ´ëÈ­»óÀÚ ¹öÆ°À» ´­·¶À» ¶§ ¹ß»ýÇÏ´Â ÇÔ¼ö case IDB_GOTOURL : { char url[100] = ¡°http://geophy.kigam.re.kr¡±; pluginObj->OnGotoURL(This, url); return 0; } default : break; } } // µðÆúÆ® ¸Þ½ÃÁö ó¸® ÇÔ¼ö default : return CallWindowProc(This->fDefaultWindowProc, hWnd, Msg, wParam, lParam); } // switch return 0; } ¸¶Ä¡¸ç À̹ø È£¿¡¼­´Â Webbmp.cpp ÆÄÀϱîÁö¸¸ »ìÆ캸¾Ò´Ù. ´ÙÀ½ È£¿¡¼­´Â Ç÷¯±×ÀÎ ÇÁ·Î±×·¥ÀÇ ÇÙ½ÉÀÎ PlugWnd.cpp ÆÄÀÏÀ» ºÐ¼®ÇÏ°í µð¹ö±×¿Í ½ÇÁ¦ ºê¶ó¿ìÀúÀÇ ¼³Á¤ µîÀ» »ìÆ캸µµ·Ï ÇÏ°Ú´Ù. ÀÌ ±ÛÀ» ÀÐ°í °ú¿¬ ÇÁ·Î±×·¥ÀÌ ¾î¶»°Ô µ¹¾Æ°¥±î ±Ã±ÝÇÑ µ¶ÀÚ´Â Æ÷ÇÔµÈ ¼Ò½º ÆÄ ÀÏÀ» ÅëÇØ ¸ÕÀú °æÇèÇغ¸±â ¹Ù¶õ´Ù. »ç¿ë¹ýÀº °£´ÜÇÏ´Ù. ÇÁ·ÎÁ§Æ®ÀÇ ¾ÐÃàÀ» Ç® °í ÄÄÆÄÀÏÀ» ÇÑ ´ÙÀ½ ³Ý½ºÄÉÀÌÇÁ Æú´õÀÇ Plugins¿¡ NPBmpVw.dll ÆÄÀÏ¿¡ ³Ö¾î µÎ°í ³Ý½ºÄÉÀÌÇÁ¸¦ ½ÇÇàÇÏ¸é µÈ´Ù. Ç÷¯±×ÀÎÀÇ ±â´ÉÀ» È®ÀÎÇغ¸°í ½Í´Ù¸é Ž»ö ±â¿¡¼­ ºñÆ®¸Ê ÆÄÀÏÀ» Çϳª ¼±ÅÃÇÑ ´ÙÀ½ ³Ý½ºÄÉÀÌÇÁ·Î µå·¡±×Çؼ­ ¿Å°Üº¸±â ¹Ù ¶õ´Ù. Ç÷¯±×ÀÎÀÇ ¸ÚÁø ±â´ÉÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Á¦ ¸ñ:[0001]³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹ °ÉÀ½!(6) [284] 2000-01-03 15:49 ³×Æ®¿öÅ© Á¤º¹ÀÇ Ã¹ °ÉÀ½!(6) Remote Monitoring MIB-II¿¡ ÀÇÇÑ SNMP °ü¸®Ã¼Á¦´Â ´ÜÀÏ ³×Æ®¿öÅ© °³Ã¼¸¦ °ü¸®ÇÏ´Â °³³äÀÌ´Ù. ÇÏÁö¸¸ ÀÎÅͳÝÀÇ È®Àå¿¡ µû¶ó ³×Æ®¿öÅ© °ü¸® °³³äÀº ÇϳªÀÇ ¼­ºê ³×Æ®¿öÅ© Àü ü¸¦ °ü¸®ÇÏ´Â RMON(¿ø°Ý ¸ð´ÏÅ͸µ)À¸·Î È®´ëµÇ°í ÀÖ´Ù. À̹ø È£¿¡¼­´Â RMONÀÇ °³³ä°ú À̸¦ ÀÌ¿ëÇÑ ³×Æ®¿öÅ© °ü¸® ¹æ¹ý µîÀ» »ìÆ캸ÀÚ. ³ëÁ¤¹Î Çѱ¹Ç×°ø´ëÇб³ Ç×°øÅë½ÅÁ¤º¸°øÇаú ´ëÇпø hmask@esc.cl.hangkong.ac.kr ³×Æ®¿öÅ© ¸ð´ÏÅ͸µ ³×Æ®¿öÅ© ÀÚ¿ø(Network Resource)À» ¾ÈÀüÇÏ°í È¿À²ÀûÀ¸·Î ÀÌ¿ëÇϱâ À§Çؼ­´Â ³×Æ®¿öÅ©ÀÇ »óŸ¦ ÃøÁ¤ÇÒ ¼ö ÀÖ´Â µµ±¸°¡ ÇÊ¿äÇÏ°í, ¿©±â¼­ ÃøÁ¤µÈ µ¥ÀÌÅ͸¦ È®ÀÎÇÏ°í ºÐ¼®ÇÏ¿© Àû´çÇÑ ³×Æ®¿öÅ© °ü¸®¸¦ ¼öÇàÇÏ´Â À¯´ÉÇÑ °ü¸®ÀÚ°¡ ÇÊ¿äÇÏ ´Ù. ³×Æ®¿öÅ©ÀÇ »óŸ¦ ºÐ¼®ÇÏ´Â ºÎºÐÀº °ü¸®ÀÚ(Manager)ÀÇ ¿ªÇÒÀÌ°í, À̺¸´Ù ¼±ÇàµÇ¾î¾ß ÇÒ ÀÏÀÌ °ü¸®ÇÏ°íÀÚ ÇÏ´Â ³×Æ®¿öÅ©ÀÇ Á¤º¸¸¦ ¾ò´Â ÀÏÀÏ °ÍÀÌ´Ù. ÀÌ ·± ³×Æ®¿öÅ© Á¤º¸¸¦ ¼öÁýÇÏ´Â ÀÏÀ» ÇÏ´Â µµ±¸¸¦ ¿¡ÀÌÀüÆ®(Agent)¶ó°í ºÎ¸¥´Ù. ¿¡ÀÌÀüÆ®´Â ³×Æ®¿öÅ©ÀÇ Ãæµ¹ Ƚ¼ö, ±æÀÌ ÃÊ°ú ÆÐŶ °³¼ö, CRC ¿¡·¯°¡ ³­ ÆÐŶ ÀÇ °³¼ö µî°ú °°Àº ³×Æ®¿öÅ©ÀÇ »óÅ Á¤º¸¸¦ ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ ¾ò¾î³»°í, ³×Æ® ¿öÅ©¿¡ µ¹¾Æ´Ù´Ï´Â ÆÐŶµéÀ» ºÐ¼®ÇÏ¿© ÆÐŶÀÇ °³¼ö, ±æÀ̺° ÆÐŶ ºÐÆ÷, È£½ºÆ® Åë°è Á¤º¸ µîÀ» ¼öÁýÇÑ´Ù. ±×¸®°í ¿¡ÀÌÀüÆ®°¡ ¼öÁýÇÑ ³×Æ®¿öÅ© Á¤º¸¸¦ ¹Þ¾Æ¼­ ³×Æ®¿öÅ© °ü¸®ÀÚ°¡ ºÐ¼®ÇÑ´Ù. ±âÁ¸ÀÇ MIB-II¸¦ »ç¿ëÇؼ­ ³×Æ®¿öÅ©¸¦ °¨µ¶ÇÏ´Â ¹æ¹ýÀº ±×¸² 1ó·³ ³×Æ®¿öÅ© ÀåÄ¡¿¡ ¿¡ÀÌÀüÆ®¸¦ ¼³Ä¡ÇÏ°í °ü¸®ÀÚ¿Í ÁÖ±âÀûÀ¸·Î Æú¸µÀ» »ç¿ëÇؼ­ Á¤º¸¸¦ ±³ ȯÇÑ´Ù. ÇÏÁö¸¸ ÀÌ·± ¹æ¹ýÀº °¢°¢ÀÇ ³×Æ®¿öÅ© ½Ã½ºÅÛ°ú ÀÏÀÏÀÌ Á¤º¸¸¦ ÁÖ°í¹Þ ±â ¶§¹®¿¡ ³×Æ®¿öÅ©ÀÇ ºÎÇÏ°¡ ³Ê¹« ¸¹°í, Àüü ³×Æ®¿öÅ© Á¤º¸¸¦ ¾òÀ» ¼öµµ ¾ø ´Ù. µû¶ó¼­ À̸¦ ±Øº¹Çϱâ À§ÇÑ ´Ù¸¥ ¹æ¾ÈÀÌ ÇÊ¿äÇÏ´Ù. RMONÀ̶õ? ÀϹÝÀûÀ¸·Î LANÀº ¸ðµç ÆÐŶÀ» ¹æ¼Û(broadcast)Çϱ⠶§¹®¿¡ ÇÑ ¼­ºê³×Æ®¿öÅ© ¿¡¼­ ¸ñÀûÁö ´Ù¸¥ ÁÖ¼ÒÀÇ ÆÐŶÀ» Àб⵵ ÇÑ´Ù. À̸¦ À§Çؼ­´Â ³×Æ®¿öÅ© Ä«µåÀÇ ¼³Á¤ ºÎºÐÀ» ¸ðµç ÆÐŶÀ» Àеµ·Ï "promiscuous" ¸ðµå·Î ¹Ù²Ù¸é, LANÀ» Áö³ª´Ù ´Ï´Â ¸ðµç ÆÐŶÀÇ ³»¿ëÀ» ÀоîµéÀδÙ. ¹Ú½º --------------------- promiscuous ¸ðµå¿Í ½ºÀ§Äª Çãºê LANÀÇ Æ¯¼º»ó ³×Æ®¿öÅ©ÀÇ °³Ã¼µéÀº ¸ðµç ÆÐŶÀ» ¹æ¼Û(broadcast)Çϱ⠶§¹®¿¡, ³×Æ®¿öÅ© Ä«µå¸¦ 'promiscuous' ¸ðµå·Î ¼³Á¤ÇØµÎ¸é ¼­ºê³×Æ®¿öÅ©¸¦ Áö³ª´Ù´Ï´Â ¸ðµç ÆÐŶÀ» °üÂûÇÒ ¼ö ÀÖ´Ù. ÀÌ·± ¾ÆÀ̵ð¾î¿¡¼­ Ãâ¹ßÇÑ ÇÁ·Î±×·¥µéÀÌ LAN AanalyzerÀε¥, À̸¦ ¿À¿ëÇÑ °ÍÀÌ 'sniffer'ÀÌ´Ù. ÇÏÁö¸¸ ½ºÀ§Äª Çãºê¸¦ »ç¿ëÇÏ¿© ³×Æ®¿öÅ©¸¦ ¿©·¯ ¼¼±×¸ÕÆ®·Î ÂÉ°³¸é MAC °è Ãþ¿¡¼­ ´Ù¸¥ ¼¼±×¸ÕÆ®ÀÇ ¸ñÀûÁö ÆÐŶÀº °É·¯ÁÖ±â(filtering) ¶§¹®¿¡, ¾î´À Á¤µµ À§ÇèÀº ¸·À» ¼ö ÀÖ´Ù. ------------------------------------ µû¶ó¼­ ÀÌ ¸ðµå¿¡¼­ µ¿ÀÛÇÏ´Â ¿¡ÀÌÀüÆ®´Â ÇÑ ¼­ºê³×Æ®¿öÅ©³»ÀÇ Àüü Æ®·¡ÇÈ°ú ¿¡·¯ Åë°è, Ãæµ¹ Ƚ¼ö, ÆÛÆ÷¸Õ½º Åë°è µîÀ» ÆľÇÇÒ ¼ö ÀÖÀ¸¸ç, »çÀü¿¡ ÀÔ·ÂµÈ °ü¸® ¼³Á¤¿¡ ÀÇÇØ ÆÐŶÀ» °É·¯³¾ ¼öµµ ÀÖ´Ù. ÀÌó·³ ¸Å´ÏÀú°¡ ¿¡ÀÌÀüÆ®¿Í µ¿ÀÏ ÇÑ ³×Æ®¿öÅ©¿¡ Á¸ÀçÇÏÁö ¾Ê´õ¶óµµ ¿¡ÀÌÀüÆ®¿¡°Ô ³×Æ®¿öÅ© Á¤º¸¸¦ ¿ä±¸Çϸé, ´Ù ¸¥ ³×Æ®¿öÅ©ÀÇ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Â °ÍÀ» RMON(Remote network MONitoring)À̶ó°í ÇÑ´Ù. ÇÑ ¼¼±×¸ÕÆ®ÀÇ ³×Æ®¿öÅ© Á¤º¸¸¦ ¼öÁýÇÏ´Â RMON ¿¡ÀÌÀüÆ®´Â RMON probe¶ó °í ºÎ¸£±âµµ ÇÑ´Ù. RMONÀÇ µ¿ÀÛ ¿ø¸® RMONÀ» ÀÌ¿ëÇÑ ³×Æ®¿öÅ© ±¸¼ºÀº ±×¸² 2¿Í °°´Ù. °ü¸®ÀÚ´Â Ethernet B¿¡ ÀÖÁö ¸¸ Ethernet AÀÇ ¸Á Á¤º¸¸¦ RMON ¿¡ÀÌÀüÆ®¸¦ ÅëÇØ ¾òÀ» ¼ö ÀÖ´Ù. RMON ¿¡ ÀÌÀüÆ®´Â ÇÑ ¼­ºê³×Æ®¿öÅ© Àüü¿¡¼­ ¹ß»ýÇÏ´Â Æ®·¡ÇÈÀ» ÆľÇÇÑ´Ù. Áï, Àüü ¹ß »ý Æ®·¡ÇÈ, ¼¼±×¸ÕÆ®¿¡ ¿¬°áµÈ °¢ È£½ºÆ®ÀÇ Æ®·¡ÇÈ, È£½ºÆ®µé°£ÀÇ Æ®·¡ÇÈ ¹ß»ý ÇöȲÀ» ¾Ë·ÁÁØ´Ù. ÀÌó·³ µ¿ÀÛÇϱâ À§Çؼ­ RMON ¿¡ÀÌÀüÆ®´Â Àüü Åë°è µ¥ÀÌÅÍ, ÀÌ·Â(history) µ¥ÀÌÅÍ, È£½ºÆ® °ü·Ã µ¥ÀÌÅÍ, È£½ºÆ® ¸ÅÆ®¸¯½º(matrix)¿Í »çÀü¿¡ ¹®Á¦ ¿¹Ãø ¹× Á¦°Å¸¦ À§Çؼ­ ƯÁ¤ ÆÐŶÀ» ÇÊÅ͸µ(filtering)ÇÏ´Â ±â´ÉÀÌ ÇÊ¿äÇÏ°í, ÀÓ°èÄ¡ (threshhold) ¼³Á¤°ú ÀÌ¿¡ µµ´ÞÇϸé ÀÚµ¿À¸·Î ¾Ë·ÁÁÖ´Â °æº¸(alarm) ±â´É, À̺¥ Æ®(event) ¹ß»ý ±â´ÉÀ» º¸À¯ÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. RMON MIB RMONÀº ³×Æ®¿öÅ© °ü¸®¸¦ À§ÇØ ¸¶·ÃµÈ ƯÁ¤ÇÑ ÇÁ·ÎÅäÄÝÀº ¾Æ´Ï´Ù. RMONÀº Àüü ³×Æ®¿öÅ© °ü¸®¸¦ À§ÇØ Á¤ÇسõÀº MIBÀ̸ç, RMON MIBÀÇ Á¤º¸ ±³È¯Àº SNMP¸¦ »ç¿ëÇÑ´Ù. RMONÀÇ Ç¥ÁØÀº RFC1757¿¡ Á¤ÀǵǾî ÀÖÀ¸¸ç, °ü·ÃµÈ RFC´Â Ç¥ 1°ú °°´Ù. RFC ¹øÈ£ Á¦¸ñ RFC 1271 Remote Monitoring(obsolete) RFC 1513 Token Ring Extensions to the Remote Network Monitoring MIB RFC 1757 Remote Network Monitoring MIB RFC 2021 Remote Network Monitoring MIB II RFC 2074 RMON Protocol Identifier RFC 2613 RMON Extensions for Switch Networks Ç¥ 1. RMON°ú °ü·ÃÇÑ RFC RMONÀÇ ¸ñÀû RMON MIB¿¡¼­´Â RMONÀÌ °®Ãß¾î¾ßÇÒ ¸ñÇ¥¸¦ ´ÙÀ½°ú °°ÀÌ Á¦½ÃÇÏ°í ÀÖ´Ù. Offline µ¿ÀÛ ÀÌ°ÍÀº RMON ¿¡ÀÌÀüÆ®°¡ °ü¸®ÀÚ¿ÍÀÇ Åë½Å¿¡ ¿µÇâÀ» ¹ÞÁö ¾Ê°í Á¤º¸¸¦ ¼öÁý Çϱâ À§ÇÑ °ÍÀ¸·Î µ¿ÀÛ¹æ½ÄÀº ±×¸² 3°ú °°´Ù. RMON Probe´Â ¼­ºê³×Æ®¿öÅ©ÀÇ Á¤º¸¸¦ ¼öÁýÇÏ°í, À̸¦ °ü¸®ÇÏ´Â ¸Å´ÏÀú´Â Àü È­ ¶óÀÎÀ» °ÅÃļ­ ´Ù¸¥ ³×Æ®¿öÅ©¿¡ ÀÖÀ¸¸ç ÀÌ µÑ »çÀÌÀÇ Á¤º¸ ±³È¯Àº ÇÊ¿äÇÒ ¶§¸¶´Ù ¼öÇàÇÑ´Ù. ÀÌ·¸°Ô Offline µ¿ÀÛÀ¸·Î Æú¸µ¿¡ ÀÇÇÑ ³×Æ®¿öÅ© ºÎÇϸ¦ ÁÙÀÏ ¼ö ÀÖ°í, ¸Å´ÏÀú°¡ °íÀåÀÏ ¶§µµ »ó°ü¾øÀÌ ³×Æ®¿öÅ© Á¤º¸¸¦ ¼öÁýÇÒ ¼ö ÀÖ´Ù. Proactive Monitoring ¸ð´ÏÅÍ°¡ ÃæºÐÇÑ ÀÚ¿øÀ» °¡Áö°í ÀÖ´Ù¸é, ¸ð´ÏÅÍ¿¡ ÁÖ¾îÁø ÀÚ¿ø¿¡ µû¶ó ÀÎÅÍ³Ý ÀÇ Æ¯Á¤ÇÑ ºÎºÐ¿¡ Àå¾Ö°¡ ¹ß»ýÇßÀ» ¶§ ³×Æ®¿öÅ©¸¦ Áø´ÜÇÏ°í ¼º´É ÀڷḦ °ü¸® Çؼ­ Àå¾Ö ¹× Àå¾Ö¿¡ ´ëÇÑ ±â·ÏÀ» °ü¸®ÀÚ¿¡°Ô º¸°íÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¹®Á¦ ¹ß°ß ¹× º¸°í ¸ð´ÏÅÍ´Â ³×Æ®¿öÅ© ÀÚ¿øÀÇ ¿À·ù³ª °ü¸®ÀÚ°¡ Á¤ÇÑ Æ¯Á¤ À̺¥Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì ¿¡ ±× À̺¥Æ®¸¦ ·Î±×·Î ³²±â°í, °ü¸®ÀÚ¿¡°Ô º¸°íÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ºÎ°¡°¡Ä¡ ÀÚ·á ¸ð´ÏÅÍ´Â ¼öÁýÇÑ ÀÚ·á¿¡ ÀǹÌÀÖ´Â °¡Ä¡¸¦ ºÎ¿©ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. Áï °üÂûÇÏ´Â ¼­ºê³×Æ®¿öÅ©ÀÇ °¡Àå ¸¹Àº Æ®·¡ÇÈ°ú ¿À·ù¸¦ ¹ß»ý½ÃÅ°´Â È£½ºÆ®µéÀ» ÁýÁß °üÂû ÇÑ´Ù. µû¶ó¼­ ³×Æ®¿öÅ©¿¡ ¿À·ù°¡ ¹ß»ýÇßÀ» ¶§, ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ¼¼¹Ð ÇÑ Á¤º¸¸¦ °ü¸®ÀÚ¿¡°Ô ÁÙ ¼ö ÀÖ´Ù. º¹¼öÀÇ °ü¸®ÀÚ º¸Åë ÀÎÅÍ³Ý °ü¸®´Â ¾ÈÁ¤¼ºÀ» À§Çؼ­ ¿©·¯ °³ÀÇ °ü¸®ÀÚ¸¦ »ç¿ëÇÑ´Ù. ¸ð´ÏÅÍ´Â ÀÌ·¸°Ô °ü¸®ÀÚµéÀÌ º¸³»´Â ¸í·ÉÀ» ¸ðµÎ ó¸®ÇØ¾ß ÇÑ´Ù. ÇÏÁö¸¸ À̶§ ¸ð´ÏÅÍÀÇ ½Ã½ºÅÛ ¿ë·®¿¡ µû¶ó¼­ °ü¸®ÀÚ ¸í·É´ë·Î ¼öÇàÇÏÁö ¸øÇÒ ¼öµµ ÀÖ´Ù. RMONÀÇ Å×ÀÌºí °ü¸® RMON MIB ±×·ìÀº ¸ðµÎ Å×À̺í ÇüÅÂÀÌ´Ù. ´ëºÎºÐÀÇ ±×·ìÀº ÇØ´ç °´Ã¼µéÀ» »ý ¼ºÇϴµ¥ ÇÊ¿äÇÑ °¢Á¾ ÀÚ·á(±â·Ï ½Ã°£ °£°Ý, È£½ºÆ® ±×·ìÀÇ È£½ºÆ® ¼ö, ÀÚ·áÀÇ »ý¼ºÀÎ µî)¸¦ °¡Áö°í ÀÖ´Â Á¦¾î Å×À̺í°ú ½ÇÁ¦ ÇÊ¿äÇÑ ÀڷḦ ¼öÁýÇÏ´Â µ¥ÀÌÅÍ Å×À̺í·Î ±¸¼ºµÈ´Ù. RMON¿¡¼­ »ç¿ëÇÏ´Â µ¥ÀÌÅÍÇü RMONÀº ¼öÁýÇÏ´Â µ¥ÀÌÅÍÀÇ ³»¿ëÀ» Ç¥½ÃÇϱâ À§Çؼ­ ±âº»ÀûÀÎ SNMPÀÇ µ¥ÀÌ ÅÍÇü ¿Ü¿¡ ¸®½ºÆ® 1°ú °°Àº µ¥ÀÌÅÍÇüÀ» Ãß°¡Çß´Ù. ¸®½ºÆ® 1. RMON¿¡ Ãß°¡µÈ µ¥ÀÌÅÍÇü --------------------------------------------------------------- -- textual conventions OwnerString ::= DisplayString -- By convention, objects with this syntax are declared as having -- SIZE (0..127) EntryStatus ::= INTEGER { valid(1), createRequest(2), underCreation(3), invalid(4) } -- The status of a table entry. --------------------------------------------------------------- ¸ÕÀú OwnerStringÀº µ¥ÀÌÅ͸¦ ¼öÁýÇÏ°í °ü¸®ÇÏ´Â °³Ã¼¸¦ ±â¼úÇϴµ¥ »ç¿ëµÇ´Â ¹®ÀÚ¿­·Î¼­ º¸Åë ÀüÈ­¹øÈ£, °ü¸® ½ºÅ×ÀÌ¼Ç À̸§, ÀüÀÚ¿ìÆíÁÖ¼Ò µîÀ¸·Î ³ªÅ¸³½ ´Ù. Á¦¾î Å×À̺íÀº ´Ü¼øÇÏ°Ô Å©±â¸¦ Á¦ÇÑÇϰųª ¼öÁýÇÒ ÀÚ·áÀÇ ÀÎÅÍÆäÀ̽º¸¦ Áö½Ã ÇÏ°í, Á¦¾î Å×À̺íÀ» Æ÷ÇÔÇؼ­ ÀÚ·á Å×À̺íÀ» ¸¸µé°í »èÁ¦ÇÒ ¼ö ÀÖ´Â "»óÅ (Status)" °´Ã¼¸¦ Á¤ÀÇÇÑ´Ù. ÀÌ°ÍÀº EntryStatus·Î ±¸¼ºµÇ´Âµ¥, ÀÌ »óÅ °´Ã¼¸¦ º¯°æÇؼ­ Å×À̺íÀ» ¸¸µé°Å³ª ¼öÁ¤ÇÏ°í ÀÚ·á ¼öÁý°ú »èÁ¦¸¦ ÇÒ ¼ö ÀÖ´Ù. °ü¸® Å×À̺íÀÇ »óÅ´ ǥ 2¿Í °°´Ù. »óÅ ¹øÈ£ ³»¿ë valid 1 Á¤»ó»óÅ·μ­, °ü¸®Å×À̺íÀÇ ³»¿ëÀ» ¼öÁ¤ÇÒ ¼ö ¾ø´Ù createRequest 2 Å×À̺íÀ» ¸¸µé±â À§ÇØ ¿ä±¸ÇÏ°í ÀÖ´Â »óÅ underCreation 3 Å×À̺íÀ» ¸¸µé°í ÀÖ´Â »óÅ·μ­, Å×À̺íÀÇ ³»¿ëÀ» ¼öÁ¤ ÇÒ ¼ö ÀÖ´Ù invalid 4 'underCreation'µ¿¾È¸¸ Á¸ÀçÇÏ´Â °³Ã¼µéÀÌ »ý¼ºÀÌ ³¡³­ ´Ù À½¿¡µµ °è¼Ó Á¸ÀçÇÏ´Â °æ¿ì Ç¥ 2. °ü¸®Å×À̺íÀÇ »óÅ RMON Å×À̺íÀÇ ±¸Á¶ RMON¿¡¼­ »ç¿ëÇÏ´Â Á¦¾î Å×À̺í°ú µ¥ÀÌÅÍ Å×À̺íÀÇ »ó°ü °ü°è¸¦ ¸®½ºÆ® 2ÀÇ ¿¹¸¦ ÅëÇØ »ìÆ캸ÀÚ. ¸ÕÀú rmonCtrlTableÀ̶õ À̸§À¸·Î Á¤ÇÑ Á¦¾î Å×À̺íÀº ´Ù À½ÀÇ °°ÀÌ ±¸¼ºµÈ´Ù. [1] rmonCtrlIndex : rmonCtrlTableÀÇ ÇàÀ» ±¸ºÐÇÏ´Â »öÀÎÀÌ´Ù [2] rmonCtrlParameter : Á¦¾î¸¦ ÀÇÇØ »ç¿ëµÇ´Â ÆĶó¹ÌÅÍ [3] rmonCtrlOwner : Å×À̺íÀÇ Á¦¾î ±ÇÇÑÀ» °¡Áø °³Ã¼ [4] rmonCtrlStatus : Å×À̺íÀÇ Á¦¾î »óÅ ¸®½ºÆ® 2. Á¦¾î Å×À̺í°ú µ¥ÀÌÅÍ Å×À̺íÀÇ »ó°ü °ü°è --------------------------------------------------------------- rmonCtrlTable OBJECT-TYPE SYNTAX SEQUENCE of rmonCtrlEntry ACCESS not-accessible STATUS mandatory DESCRIPTION " Á¦¾î Å×À̺íÀÔ´Ï´Ù." ::= { ex 1 } rmonCtrlEntry OBJECT-TYPE ACCESS not-accessible STATUS mandatory DESCRIPTION " µ¥ÀÌÅÍ Å×À̺íÀ» Á¦¾îÇÏ´Â ÆĶó¹ÌÅÍÀÇ ÁýÇÕ" INDEX { rmonCtrlIndex } ::= { rmonCtrlTable 1 } rmonCtrlEntry ::= SEQUENCE { rmonCtrlIndex INTEGER, rmonCtrlParameter Counter, rmonCtrlOwner OwnerString, rmonCtrlStatus EntryStatus } --------------------------------------------------------------- ±×¸®°í µ¥ÀÌÅÍ Å×À̺íÀÇ À̸§Àº rmonDataTable·Î Á¤ÇÏÀÚ. Å×À̺íÀÇ ±¸¼ºÀº ¸® ½ºÆ® 3°ú °°°í rmonDataCtrlIndex¿Í rmonDataIndex¸¦ »ç¿ëÇؼ­ Å×À̺íÀÇ °´ ü¸¦ ±¸ºÐÇÑ´Ù. ¸®½ºÆ® 3. µ¥ÀÌÅÍ Å×À̺íÀÇ ±¸¼º --------------------------------------------------------------- rmonDataTable OBJECT-TYPE SYNTAX SEQUENCE OF rmonDataEntry ACCESS not-accessible STATUS mandatory DESCRIPTION " µ¥ÀÌÅÍ Å×À̺í" ::= { ex1 2 } rmonDataEntry OBJECT-TYPE SYNTAX rmonDataEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "´ÜÀÏ µ¥ÀÌÅÍ Å×ÀÌºí ¿£Æ®¸®" INDEX { rmonDataCtrlIndex, rmonDataIndex } ::= { rmonDataTable 1 } rmonDataEntry ::= SEQUENCE { rmonDataCtrlIndex INTEGER, rmonDataIndex INTEGER, rmonDataValue Counter } --------------------------------------------------------------- [1] rmonDataCtrlIndex : µ¥ÀÌÅÍ Á¦¾î ÁýÇÕÀÇ »öÀÎ, Á¦¾î Å×À̺íÀÇ rmonCtrlIndex¿Í °°´Ù [2] rmonDataIndex : µ¥ÀÌÅÍÀÇ ÇàÀ» ±¸ºÐÇÏ´Â »öÀÎ [3] rmonDataValue : Å×À̺íÀÇ ½ÇÁ¦ µ¥ÀÌÅÍ °ª ½ÇÁ¦ °´Ã¼ÀÇ ³»¿ëÀ» Ãß°¡Çؼ­ µÎ Å×ÀÌºí »çÀÌÀÇ °ü°è¸¦ ³ªÅ¸³»¸é ±×¸² 4¿Í °° ´Ù. Á¦¾î Å×ÀÌºí¿¡´Â ¼¼ °³ÀÇ °ü¸®ÀÚ°¡ µî·ÏµÇ¾î ÀÖ´Ù. º¸Åë ù ¹ø° °ü¸®ÀÚÀÇ ÀÌ ¸§Àº ¿¡ÀÌÀüÆ® ÀÚ½ÅÀ» ³ªÅ¸³»¸ç 'monitor'·Î Ç¥½ÃÇÑ´Ù. µ¥ÀÌÅÍ Å×ÀÌºí¿¡´Â rmonDataValue°¡ rmonDataCtrlIndex¿Í rmonDataIndex·Î ±¸ºÐ Ç¥½ÃµÇ¾î ÀÖ´Ù. µ¥ÀÌÅÍ Å×À̺íÀÇ rmonDataCtrlIndex°ªÀº Á¦¾î Å×À̺íÀÇ rmonCtrlIndex¸¦ ÂüÁ¶ Çؼ­ ¸¸µé±â ¶§¹®¿¡ µÎ °³ÀÇ °ªÀÌ Ç×»ó ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. RMON MIB ±×·ì RFC1757¿¡´Â ±×¸² 5¿Í °°ÀÌ 9°³ÀÇ RMON MIB ±×·ìÀÌ Á¤ÀǵǾî ÀÖ´Ù. RMON ¿¡ÀÌÀüÆ®¸¦ ¼³°èÇÒ ¶§ 9°³ÀÇ ±×·ìÀ» ÀüºÎ ±¸ÇöÇÏ´Â °ÍÀÌ ¾î·Æ±â ¶§¹® ¿¡, ÀÌ Áß¿¡¼­ ÇÊ¿äÇÑ ±×·ì¸¸ ±¸ÇöÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ÇÏÁö¸¸ ÇÑ ±×·ìÀ» ±¸ ÇöÇÒ ¶§´Â ±× ±×·ì³»ÀÇ °´Ã¼¸¦ ¸ðµÎ ±¸ÇöÇØ¾ß ÇÑ´Ù. °¡·É Host GroupÀ» ±¸Çö ÇÏ·Á¸é ¹Ýµå½Ã ÀÌ¿Í °ü·ÃµÈ HostControlTable, HostTable, HostTimeTable ¸ð µÎ¸¦ ±¸ÇöÇØ¾ß ÇÑ´Ù. Åë°è(The Ethernet Statistics Group) ¡¤ RMON ¿¡ÀÌÀüÆ®°¡ °¢°¢ ¸ð´ÏÅ͸µ ÇÏ´Â ÀÎÅÍÆäÀ̽º(NIC)¿¡ ´ëÇؼ­ ÃøÁ¤ÇÑ Åë°èÀÚ·á ¸ðÀ½ÀÌ´Ù. ÇÑ ¼¼±×¸ÕÆ® ³»¿¡¼­ ¹ß»ýÇÑ ÆÐŶ/¹ÙÀÌÆ® ¼ö, ºê·Îµåij½ºÆ®/ ¸ÖƼij½ºÆ® ¼ö, Ãæµ¹(collision)¼ö ¹× ÆÐŶ ±æÀ̺° ¼ö, °¢Á¾ ¿À·ù(ÇÁ·¡±×¸ÕÆ®, CRC Alinment, jabber, ±æÀÌ ¹Ì´Þ, ±æÀÌ ÃÊ°ú)¿¡ ´ëÇÑ Åë°è¸¦ Á¦°øÇÑ´Ù. Åë°èÄ¡ ´Â À¯È¿ÇÑ entry°¡ »ý¼ºµÉ ¶§ 0À¸·Î ÃʱâÈ­µÇ°í free running counter ÇüŸ¦ ÃëÇÑ´Ù. ÀÌ Åë°è ±×·ìÀº ¿ÀÁ÷ ÀÌ´õ³Ý ÀÎÅÍÆäÀ̽º¿¡¸¸ Á¤ÀǵȴÙ. °¢°¢ ÀÌ´õ³Ý ÀÎ ÅÍÆäÀ̽º¿¡ ÇϳªÀÇ etherStatsEntry°¡ ´ëÀÀµÈ´Ù. ÀÌ·Â(The History Control Group) ¡¤ ÁÖ±âÀûÀ¸·Î Æ®·¡ÇÈ ¹× ¿À·ù µî¿¡ °üÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù. ÀÌ·ÂÀº µ¥ÀÌÅ͸¦ ÁÖ±âÀûÀ¸·Î ¼öÁýÇÏ´Â µ¿¾ÈÀÇ ´©ÀûµÈ ¼öÄ¡¸¦ Á¦°øÇÑ´Ù. ±× ¼öÄ¡´Â ´Ù¸¥ Åë°è Ä¡ ÀÇ °ªµé°ú ºñ½ÁÇÏ´Ù. Áï À̷¿¡¼­ÀÇ etherHistoryPkts¿Í Åë°è¿¡¼­ÀÇ etherStatsPkts´Â ºñ½ÁÇÑ °ªÀ» °®°ÔµÈ´Ù. ÀÌ ÀڷḦ ÅëÇØ ½Ã°£´ëº° ÀÌ¿ë ÇöȲ ¹× ´Ù¸¥ ¼¼±×¸ÕÆ®¿Í ºñ±³°¡ °¡´ÉÇÏ´Ù. ¡¤ ÀÌ·Â Á¤º¸¸¦ °ü¸®Çϱâ À§ÇÑ Á¦¾î Å×À̺í(historyControlTable), Á¦¾î °³Ã¼ (historyControlEntry)¿Í ÀÌ·Â Å×À̺í(etherHistoryTable), ÀÌ·Â °³Ã¼ (etherHistoryEntry)°¡ ¸®½ºÆ® 4¿Í °°ÀÌ Á¤ÀǵȴÙ. ¸®½ºÆ® 4. ÀÌ·Â Å×À̺í Á¤ÀÇ --------------------------------------------------------------- --ÀÌ·Â(history) Å×À̺í historyControlTable OBJECT-TYPE SYNTAX SEQUENCE OF HistoryControlEntry ACCESS not-accessible STATUS mandatory DESCRIPTION " ÀÌ·Â Á¤º¸¸¦ Á¦¾îÇÏ´Â Ç׸ñµé" ::= { history 1 } historyControlEntry OBJECT-TYPE SYNTAX HistoryControlEntry ACCESS not-accessible STATUS mandatory INDEX { historyControlIndex } ::= { historyControlTable 1 } HistoryControlEntry ::= SEQUENCE { historyControlIndex INTEGER (1..65535), --Á¦¾î »öÀÎ historyControlDataSource OBJECT IDENTIFIER, --»öÀÎ ¼Ò½º OID historyControlBucketsRequested INTEGER (1..65535), --¼öÁý Ƚ¼ö historyControlBucketsGranted INTEGER (1..65535), --»ùÇøµ °£°Ý historyControlInterval INTEGER (1..3600), --µ¥ÀÌÅÍ ¼öÁý °£°Ý historyControlOwner OwnerString, --¼ÒÀ¯ÁÖ historyControlStatus EntryStatus } --»óÅ --µ¥ÀÌÅÍ Å×À̺í etherHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF EtherHistoryEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of Ethernet history entries." ::= { history 2 } etherHistoryEntry OBJECT-TYPE SYNTAX EtherHistoryEntry ACCESS not-accessible STATUS mandatory INDEX { etherHistoryIndex , etherHistorySampleIndex } ::= { etherHistoryTable 1 } EtherHistoryEntry ::= SEQUENCE { etherHistoryIndex INTEGER (1..65535), etherHistorySampleIndex INTEGER (1..2147483647), etherHistoryIntervalStart TimeTicks, --ÀÌ·Â ÀÌ ½ÃÀÛµÈ ½Ã°£ etherHistoryDropEvents Counter, -- ¹ö·ÁÁø Ƚ¼ö etherHistoryOctets Counter, --ÀÌ·Â Àü ü ¹ÙÀÌÆ® ¼ö etherHistoryPkts Counter, --ÀÌ·Â ÆРŶ ¼ö etherHistoryBroadcastPkts Counter, --ºê·Îµå ij½ºÆ® ÆÐŶ ¼ö etherHistoryMulticastPkts Counter, --¸ÖƼij ½ºÆ® ÆÐŶ¼ö etherHistoryCRCAlignErrors Counter, -- CRC ¿¡·¯ Ƚ¼ö etherHistoryUndersizePkts Counter, -- ÃÖ¼Ò ±æÀÌ ¹Ì¸¸ÀÇ ÆÐŶ ¼ö etherHistoryOversizePkts Counter, -- ÃÖ´ë ±æÀ̸¦ ÃÊ°úÇÑ ÆÐŶ ¼ö etherHistoryFragments Counter, -- ÆÐŶ ºÐÇÒ È½¼ö etherHistoryJabbers Counter, -- À߸øµÈ ÆÐŶ ¼ö etherHistoryCollisions Counter, -- Ã浹Ƚ ¼ö etherHistoryUtilization INTEGER (0..10000) } --------------------------------------------------------------- ¡¤ º¸Åë ªÀº ÁÖ±â¿Í ±ä Áֱ⸦ °®´Â µÎ °³ÀÇ ÀÌ·Â Á¦¾î °³Ã¼(history control entries)¸¦ °®±â¸¦ ±ÇÀåÇÑ´Ù. ÀϹÝÀûÀ¸·Î 30ÃÊÀÇ ÂªÀº Æú¸µ(short term polling) ÁÖ±â¿Í 30ºÐÀÇ Æú¸µ(long term) Áֱ⸦ °®´Â´Ù. ¡¤ ÀÌ·ÂÀÇ È°¿ëµµ(utilization)À» ±¸ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù(96 : ÇÁ·¹ÀÓ °£°Ý (interframe gap), 64 : ºñÆ® ÃʱâÈ­(bit preamble)). Utilization = (Packet¡¿(96+64))+(Octets¡¿8) Interval¡¿10^{7 ¡¿ 100% °æº¸(The Alarm Group) ¡¤ ÁÖ±âÀûÀ¸·Î Åë°èÄ¡¸¦ È®ÀÎÇÑ ÈÄ, ¼³Á¤µÈ ÀÓ°è Ä¡¿¡ µµ´ÞÇϸé À̺¥Æ®¸¦ ¹ß»ý ½ÃÄÑ °ü¸®ÀÚ¿¡ º¸°íÇÑ´Ù. ÀÌ·± ±â·ÏÀº ¿¡ÀÌÀüÆ®°¡ º¸À¯ÇÏ°í ÀÖ´Ù. ±âÁØÄ¡´Â Àý ´ë°ª ¹× »ó´ë°ªÀ¸·Î Á¤ÇÒ ¼ö ÀÖ°í, °è¼ÓÀûÀÎ °æº¸ ¹ß»ýÀ» ¸·±â À§Çؼ­ »óÇÑÄ¡ ¿Í ÇÏÇÑÄ¡¸¦ ¼³Á¤Çؼ­ ³Ñ³ªµå´Â °æ¿ì¿¡¸¸ °æº¸°¡ ¹ß»ýÇÏ°Ô ÇÑ´Ù. ±×¸² 6À» Âü Á¶Çϱ⠹ٶõ´Ù. ¡¤ °æº¸ ±×·ìÀº À̺¥Æ® ±×·ìÀ» ±¸ÇöÇϱâ À§ÇÑ ÇÊ¿äÁ¶°ÇÀÌ´Ù. È£½ºÆ®(The Host Group) ¡¤ ¼Û½ÅÁö¿Í ¼ö½ÅÁö MAC ÁÖ¼Ò ¸®½ºÆ®¸¦ °ü¸®Çϸ鼭 »õ È£½ºÆ®¸¦ ¹ß°ßÇÑ´Ù. °¢°¢ÀÇ ÁÖ¼Ò¿¡ ´ëÇؼ­ Åë°èÄ¡¸¦ °¡Áö°í ÀÖÀ¸¸ç ¼¼±×¸ÕÆ®¿¡ ¿¬°áµÈ °¢ Àåºñ°¡ ¹ß»ý½ÃŲ Æ®·¡ÇÈ, ¿À·ù ¼ö¸¦ È£½ºÆ®º°·Î °ü¸®ÇÑ´Ù. HostControlTableÀº ±â´É (function)ÀÌ ¾î¶² ÀÎÅÍÆäÀ̽º¿¡¼­ ¼öÇàµÇ´ÂÁö¸¦ Á¦¾îÇÏ°í ÇØ´ç ÇÁ·Î¼¼½º¿¡ °ü ÇÑ Á¤º¸¸¦ À¯ÁöÇÑ´Ù. ±×¸®°í ÇϳªÀÇ ÀÎÅÍÆäÀ̽º´Â hostControlEntry¿¡ °¢°¢ ÇÒ ´çµÇ°í, ¼öÁýµÇ´Â Á¤º¸´Â hostTable°ú hostTimeTable¿¡ ÀúÀåµÈ´Ù. °¢ Å×À̺íÀÇ ±¸Á¶´Â ±×¸² 7°ú °°´Ù. ¡¤ hostTableÀº ÀÎÅÍÆäÀ̽º¿¡¼­ ¹ß°ßµÈ °¢°¢ÀÇ ÁÖ¼Ò¿¡ ´ëÇÑ °³Ã¼¸¦ °®°í ÀÖ°í, °¢°¢ÀÇ °³Ã¼ ´Â ÇØ´ç È£½ºÆ®¿¡ °üÇÑ Åë°è µ¥ÀÌÅ͸¦ °®°í ÀÖ´Ù. ÀÌ Å×À̺íÀº È£½ºÆ®ÀÇ MAC ÁÖ¼Ò°¡ Å°(key)°¡ µÈ´Ù. ¡¤ hostTimeTableÀº hostTable°ú µ¿ÀÏÇÑ ÇüÅÂÀÇ µ¥ÀÌÅÍ¿Í È£½ºÆ®¸¦ °¡Áö°í ÀÖ ¾î¾ß ÇÑ´Ù. ÇÏÁö¸¸ Å×À̺íÀÇ »öÀÎ Å°´Â È£½ºÆ® ÁÖ¼Ò°¡ ¾Æ´Ï°í hostTimeCreationOrder¸¦ ÀÌ¿ëÇϸç, ¹ß°ß µÈ ¼ø¼­´ë·Î ¿£Æ®¸®¸¦ Å×ÀÌºí¿¡ »ðÀÔÇÑ´Ù. MACÁÖ¼Ò¸¦ »ç¿ëÇÏÁö ¾Ê°í ¼ø¼­ °ª À» »ç¿ëÇϱ⠶§¹®¿¡ ´ÙÀ½ »öÀÎÀ» ¿¹»óÇÒ ¼ö ÀÖÀ¸¸ç »õ·Î¿î °³Ã¼°¡ Ãß°¡µÇ¾úÀ» ¶§ ½±°Ô ¹ß°ßÇÒ ¼ö ÀÖ´Â ÀÌÁ¡ÀÌ ÀÖ´Ù. »óÀ§ N°³ÀÇ È£½ºÆ®(The Host Top "N" Group) ¡¤ È£½ºÆ® Å×ÀÌºí¿¡¼­ ¹ß°ßµÈ È£½ºÆ® Áß¿¡¼­ ÀÏÁ¤½Ã°£ µ¿¾È °¡Àå ¸¹Àº Æ®·¡ÇÈ À» ¹ß»ý½ÃŲ È£½ºÆ®¸¦ ã¾Æ º¸°íÇÑ´Ù. °ü¸®ÀÚ´Â º¸°íÇÏ´Â ¹æ¹ýÀ» ¼³Á¤Çϱâ À§ Çؼ­ ¾ó¸¶³ª ¸¹Àº È£½ºÆ®¸¦ º¸°íÇÒ °ÍÀÎÁö, ¾ðÁ¦ »ùÇøµÀ» ½ÃÀÛÇÏ°í ³¡³¾ °ÍÀÎ Áö, ¿øÇÏ´Â Á¾·ùÀÇ ÀÚ·á(ÀÔ/Ãâ·Â ÆÐŶ, ¹ÙÀÌÆ®, ¿ÜºÎ ¿À·ù, ºê·Îµåij½ºÆ®/¸ÖƼij ½ºÆ® ÆÐŶ) µî°ú °°Àº ¿ä¼Ò¸¦ ¼±ÅÃÇÑ´Ù. º¸°íÇÒ Áغñ°¡ µÇ¸é hostTopNTable¿¡ ¿£Æ®¸®°¡ »ý¼ºµÈ´Ù. Æ®·¡ÇÈ ¸ÅÆ®¸¯½º(The Matrix Group) ¡¤ MAC ÁÖ¼Ò¸¦ ±âÁØÀ¸·Î ±×¸² 8°ú °°ÀÌ µÎ È£½ºÆ®°£¿¡ ¹ß»ýÇÑ Æ®·¡ÇÈ ¹× ¿À ·ù¿¡ ´ëÇÑ Á¤º¸¸¦ ¼öÁýÇÑ´Ù. ÀÌ Á¤º¸¸¦ ÀÌ¿ëÇؼ­ ƯÁ¤ È£½ºÆ®¿¡ °¡Àå ¸¹Àº »ç ¿ëÀÚ°¡ ´©±¸ÀÎÁö¸¦ ´ë·« ¾Ë ¼ö ÀÖ´Ù(2ȸ ¿¬Àç¿¡¼­ ¼Ò°³ÇÑ 'e-Watch' ÇÁ·Î±×·¥ À» »ç¿ëÇØ È£½ºÆ® ½ÖÀ» »ìÆ캻 °æ¿ì). ¡¤ ¸ÅÆ®¸¯½º ±×·ìÀº matrixControlTable, matrixSDTable°ú matrixDSTable·Î ±¸¼ºµÈ´Ù. ÀÌ Å×À̺íÀº µÎ È£½ºÆ® »çÀÌ¿¡¼­ Åë½ÅÇϴµ¥ ´ëÇÑ Åë°èÄ¡¸¦ ÀúÀåÇÑ ´Ù. ¸¸¾à ¼ö½ÅÇÑ ÆÐŶ¿¡ ÀÇÇØ »õ·Î¿î Åë½Å °ü°è°¡ ÀÎÁöµÇ¸é ¸ÅÆ®¸¯½º Å×ÀÌºí¿¡ »õ °³Ã¼¸¦ Ãß°¡ÇÑ´Ù. ¡¤ ¸ÅÆ®¸¯½º ±×·ì¿¡¼­ »ç¿ëÇÏ´Â Á¦¾î Å×À̺í°ú Á¤º¸ Å×À̺íÀÌ ¸®½ºÆ® 5¿Í °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù. ¸®½ºÆ® 5. ¸ÅÆ®¸¯½º ±×·ìÀÇ Á¦¾î ¹× Á¤º¸ Å×À̺í Á¤ÀÇ --------------------------------------------------------------- matrixControlTable OBJECT-TYPE SYNTAX SEQUENCE OF MatrixControlEntry ACCESS not-accessible STATUS mandatory ::= { matrix 1 } matrixControlEntry OBJECT-TYPE SYNTAX MatrixControlEntry ACCESS not-accessible STATUS mandatory INDEX { matrixControlIndex } ::= { matrixControlTable 1 } MatrixControlEntry ::= SEQUENCE { matrixControlIndex INTEGER (1..65535), matrixControlDataSource OBJECT IDENTIFIER, matrixControlTableSize INTEGER, --Å×À̺í Å©±â matrixControlLastDeleteTime TimeTicks, --Å×À̺íÀÌ »èÁ¦µÈ ½Ã°£ matrixControlOwner OwnerString, --Å×ÀÌºí ¼ÒÀ¯ÁÖ matrixControlStatus EntryStatus --Å×ÀÌºí »óÅ --------------------------------------------------------------- ÇÊÅÍ(The Filter Group) ¡¤ °ü¸®ÀÚ°¡ ƯÁ¤ÇÑ ÆÐŶÀÇ µ¿ÇâÀ» °¨½ÃÇϱâ À§Çؼ­ ÀÌ¿ëÇÑ´Ù. À̸¦ ÀÌ¿ëÇؼ­ ƯÁ¤ÆÐŶÀÇ ¹ß»ý ¿©ºÎ³ª ºóµµ¸¦ ¾Ë ¼ö ÀÖ°í, °æº¸¿Í »ç°Ç ±â´ÉÀ» ÀÌ¿ëÇؼ­ ÀÓ °èÄ¡¸¦ ÃÊ°úÇÏ´Â »ç°ÇÀÌ ¹ß»ýÇßÀ½À» ¾Ë ¼ö ÀÖ´Ù. ¡¤ ÇÊÅÍ¿¡´Â µÎ °¡Áö Á¾·ù°¡ ÀÖ´Ù. ¸ÕÀú µ¥ÀÌÅÍ ÇÊÅÍ(data filter)´Â ¼ö½ÅÇÏ´Â µ¥ÀÌÅ͸¦ ¹Ì¸® Á¤ÇÑ ÆÐÅÏ°ú ºñ±³ÇÑ´Ù. ±×¸®°í »óÅ ÇÊÅÍ(status filter)´Â ÆÐŶÀÇ »óÅÂ(valid, CRC, ±æÀÌ)¸¦ ºñ±³Çؼ­ ÆÐŶÀ» °É·¯³½´Ù. ¡¤ ÇÊÅ͸µ Á¤Ã¥¿¡ µû¶ó¼­ ÇÊÅÍ´Â ¿©·¯ °³ÀÇ Ã¤³ÎÀ» °¡Áö°Ô µÈ´Ù. ÇÑ Ã¤³Î¿¡ °ü °èµÈ °¢°¢ÀÇ ÇÊÅÍ´Â ±×¸² 9¿Í °°ÀÌ AND·Î ¹­°í, ÇÑ ÇÊÅÍ ³»ÀÇ ÇÊÅÍ ³»¿ëµéÀº OR·Î ÇÕ¼ºµÈ´Ù. ÆÐŶ ¼öÁý(The Packet Capture Group) ¡¤ ¸Á¿¡ ¹ß»ýÇÑ ÆÐŶÀ» ¼öÁýÇؼ­ °ü¸®ÀÚ°¡ ºÐ¼®ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. °ü¸®ÀÚ´Â ÇÊÅÍ ±×·ìÀ» µ¿ÀÏÇÏ°Ô ±¸ÇöÇÏ¿© ÆÐŶÀÇ ÀüºÎ ¶Ç´Â ÀÏÁ¤ÇÑ ±æÀ̸¸ º¸°üÇÏ°í ÀÐ À» ¼ö ÀÖµµ·Ï ÆÐŶ ¼öÁý ÇÊÅ͸µÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¡¤ ÆÐŶ ¼öÁý ±×·ìÀº ÇÊÅÍ ±×·ì°ú ÇÔ²² ±¸ÇöµÇ¾î¾ß ÇÑ´Ù. ¼öÁýµÈ ÆÐŶÀº captureBufferTable ³»ÀÇ ¿£Æ®¸®¿¡ ÀúÀåµÈ´Ù. À̺¥Æ®(The Event Group) ¡¤ À̺¥Æ® ±×·ìÀº À̺¥Æ®¸¦ »ý¼ºÇÏ°í ÅëÁöÇÑ´Ù. eventTableÀÇ °¢ ¿£Æ®¸®´Â ÀÌ º¥Æ®ÀÇ ÆĶó¹ÌÅ͸¦ ±â¼úÇÑ´Ù. Æ®·¦ ¹ß»ý ¹× ±â·Ï º¸°üÀº ¼±ÅÃÀûÀÌ´Ù. °æº¸¿Í ¿¬ °üµÇ¾î »ç°ÇÀÌ ¹ß»ýÇÏ¸é »ç°Ç ±â·Ï ¹× Æ®·¦ ¹ß»ýÀº °ü¸®ÀÚ°¡ »çÀü¿¡ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¿£Æ®¸®´Â MIB ÀÌ¿ÜÀÇ »óȲ¿¡ ÀÇÇØ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù. À̺¥Æ® ¹ß»ýÀÇ ¿¹ ´Â ±×¸² 10°ú °°´Ù. ¿¹¸¦ µé¾î ä³ÎÀÌ È°¼ºÈ­µÇ°Å³ª »ç¶óÁú ¶§µµ À̺¥Æ®°¡ ¹ß»ýÇÑ´Ù. À̺¥Æ®°¡ ¹ß »ýÇÏ¸é ±× °÷¿¡¼­ ·Î±×°¡ »ý¼ºµÇ±âµµ ÇÏ°í SNMP TRAPÀ» ÀÌ¿ëÇÏ¿© ÅëÁö ¸Þ ½ÃÁö°¡ Àü´ÞµÉ ¼öµµ ÀÖ´Ù. ÀÌ·± °æ¿ì eventCommunity °´Ã¼¿¡¼­ trap ¸Þ½ÃÁö ¸¦ À§ÇÑ community¸¦ Á¦°øÇÑ´Ù. Enterprise and specific trap field´Â À̺¥Æ®°¡ ¹ß»ýÇÏ´Â »óȲ¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. risingAlarm°ú fallingAlarm µÎ °³ÀÇ trapÀÌ Á¤ÀǵǾî ÀÖ´Ù. À̺¥Æ® Á¤ÀÇ ÇüÅ´ ¸®½ºÆ® 6°ú °°´Ù. ¸®½ºÆ® 6. À̺¥Æ® Á¤ÀÇ ÇüÅ --------------------------------------------------------------- eventTable OBJECT-TYPE SYNTAX SEQUENCE OF EventEntry ACCESS not-accessible STATUS mandatory ::= { event 1 } eventEntry OBJECT-TYPE SYNTAX EventEntry ACCESS not-accessible STATUS mandatory INDEX { eventIndex } ::= { eventTable 1 } EventEntry ::= SEQUENCE { eventIndex INTEGER (1..65535), eventDescription DisplayString (SIZE (0..127)), eventType INTEGER, //À̺¥Æ® Á¾·ù eventCommunity OCTET STRING (SIZE ( 0..127)), //À̺¥Æ®¿¡ »ç¿ë ÇÒ ¾ÏÈ£ eventLastTimeSent TimeTicks, //ÃÖ±Ù¿¡ À̺¥Æ®°¡ º¸ ³»Áø ½Ã°¢ eventOwner OwnerString, //À̺¥Æ® ¼ÒÀ¯ÁÖ eventStatus EntryStatus //À̺¥Æ® »óÅ } --------------------------------------------------------------- RMON µ¥ÀÌÅÍÀÇ È°¿ë RMONÀ» ÀÌ¿ëÇؼ­ ¼öÁýÇÑ ÀÚ·áµéÀº ´ÙÀ½ ¿ëµµ·Î È°¿ëµÉ ¼ö ÀÖ´Ù. Æ®·¡ÇÈ ÆÐÅÏ ºÐ¼® Åë°è, ÀÌ·Â(history), È£½ºÆ®, ¸ÅÆ®¸¯½º ±×·ì¿¡¼­ ¼öÁýÇÑ ÀڷḦ ÀÌ¿ëÇؼ­ ÁöÁ¤ ÇÑ ¼­ºê³×Æ®¿öÅ©¿¡ ´ëÇÑ Æ®·¡ÇÈ ÆÐÅÏÀ» ºÐ¼®ÇÒ ¼ö ÀÖ´Ù. À̸¦ »ç¿ëÇؼ­ ¿¡·¯°¡ ¹ß»ýÇÏ´Â ¿øÀÎÀ» À¯ÃßÇØ ³¾ ¼ö ÀÖÀ¸¸ç, ½Ã°£´ëº° Æ®·¡ÇÈ ºÐ¼®ÀÚ·á´Â ·Îµå ¹ë·± ½Ì µî¿¡ »ç¿ëµÉ ¼ö ÀÖ´Ù. Áö´ÉÇü RMON ¿¡ÀÌÀüÆ® RMON ¿¡ÀÌÀüÆ®°¡ ¿¡·¯³ª Ãæµ¹ µî ³×Æ®¿öÅ© ¼º´É¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ´Â ÀÚ ·á¸¦ »çÀü¿¡ ±â·ÏÇؼ­ ¹ß»ýÇÑ ¹®Á¦¿¡ ´ëÇØ ´Éµ¿ÀûÀ¸·Î ´ëóÇÏ°Ô ÇÑ´Ù. À̶§´Â °æº¸¿Í À̺¥Æ® ±â´ÉÀ» È°¿ëÇؼ­ ÀÓ°èÄ¡(threshold value)¸¦ »óȲ¿¡ ¸Â°Ô ¼³Á¤ÇØ ÁÖ´Â °ÍÀÌ ÁÁ´Ù. ³×Æ®¿öÅ© ±¸¼º º¯°æ ÀÚ·á Åë°è, ¸ÅÆ®¸¯½º ÀڷḦ »ç¿ëÇؼ­ Ãæµ¹ÀÌ ¸¹ÀÌ ³ª´Â ÀåÄ¡¸¦ Àç¹èÄ¡Çϰųª ³×Æ® ¿öÅ© ÀåºñÀÇ »ç¿ë·ü¿¡ µû¶ó ´ë¿ªÆøÀ» Á¶Á¤ÇÏ´Â ±Ù°Å·Î »ç¿ëµÉ ¼ö ÀÖ´Ù. Web-based RMON ¿ø°Å¸®¿¡ ÀÖ´Â ³×Æ®¿öÅ©ÀÇ Á¤º¸¸¦ ¼öÁýÇϱâ À§Çؼ­ RMONÀ» »ç¿ëÇÑ´Ù. ƯÁ¤ °ü¸® ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ¿¡ÀÌÀüÆ®·ÎºÎÅÍ Á¤º¸¸¦ ¾ò¾î¿Ã ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ °¢ PC¿¡ RMON °ü¸®ÀÚ¸¦ ¼³Ä¡ÇØ¾ß ÇÏ´Â ºÎ´ãÀÌ ÀÖ´Ù. ÀÎÅͳÝÀÌ ±¤¹üÀ§ÇÏ°Ô È°¿ëµÇ°í ÀÖ´Â ¿äÁò¿¡ À¥ ºê¶ó¿ìÀú°¡ ¼³Ä¡µÇÁö ¾ÊÀº PC ´Â °ÅÀÇ ¾ø´Ù. ÀÌ À¥ºê¶ó¿ìÀú¸¦ »ç¿ëÇÏ¿© RMON ¿¡ÀÌÀüÆ®ÀÇ Á¤º¸¸¦ ¾ò¾î¿Ã ¼ö ÀÖ´Ù¸é °¢ °ü¸®ÀÚµéÀÇ ºÎ´ãÀ» ´ú ¼ö ÀÖÀ» °ÍÀÌ´Ù. °ü¸®ÀÚ ±â´ÉÀ» ¼öÇàÇÏ´Â À¥»çÀÌÆ®¸¦ Á¢¼ÓÇϸé ÀÚ¹Ù ¾ÖÇø´À̳ª CGIÇÁ·Î±×·¡¹ÖÀ» ÀÌ¿ëÇÏ¿© ¼­¹ö·ÎºÎÅÍ ¿¡ÀÌÀüÆ®ÀÇ Á¤º¸¸¦ È­¸é¿¡ º¸¿©ÁØ´Ù. °ü¸®ÀÚ°¡ Á¢¼ÓÇÑ À¥ ¼­¹ö¿¡´Â ¿¡ÀÌÀüÆ®·Î ºÎÅÍ Á¤º¸¸¦ ¾ò¾î¿Í Á¦°øÇØ ÁÖ´Â ¼­¹ö ÇÁ·Î±×·¥ÀÌ ´ë¸ó ÇÁ·Î¼¼¼­·Î ¼öÇàµÇ°í ÀÖ¾î¾ß ÇÑ´Ù. ±×¸² 11Àº À¥À» ±â¹ÝÀ¸·Î Çؼ­ RMONÀÌ µ¿ÀÛÇÒ ¼ö ÀÖ´Â ±¸Á¶¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù. RMON Agent¿Í RMON MIB´Â ±âÁ¸ÀÇ °ü¸® ±¸Á¶¿Í µ¿ÀÏÇÏ´Ù. ÀÌ ±¸Á¶´Â ƯÁ¤ÇÑ RMON °ü¸® ¼ÒÇÁÆ®¿þ¾î°¡ ÇÊ¿ä¾ø°í À¥¼­¹ö¿Í °ü¸®ÀÚ ±â´É À» ÇÏ´Â CGI³ª ¾ÖÇø´ÀÌ ¼­¹ö¿¡¸¸ Á¸ÀçÇÏ¸é °¡´ÉÇÏ´Ù. °¢ PC¸¶´Ù °ü¸®ÀÚ ¼ÒÇÁ Æ®¿þ¾î¸¦ ¼³Ä¡ÇÏÁö ¾Ê°í À¥¼­¹ö¿¡ ÀÖ´Â ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°í °á°úÀÎ Åë°è ÀÚ·á ¸¸ ¹Þ¾Æ¼­ ºê¶ó¿ìÀú¿¡¼­ º¸¿©Áֱ⸸ ÇÏ¸é µÈ´Ù. ÀÌ°ÍÀº CGI, Java, ActiveX µî À» ÀÌ¿ëÇؼ­ ±¸ÇöÇÒ ¼ö ÀÖ´Ù. RMON °ü·Ã ¶óÀ̺귯¸® libpcap ¶óÀ̺귯¸® ½Ã½ºÅÛ°ú µ¶¸³ÀûÀÎ »ç¿ëÀÚ ·¹º§ÀÇ ÆÐŶ ĸÃÄ(capture) ¶óÀ̺귯¸®·Î¼­ ´ÙÀ½ »ç ÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. ftp://ftp.ee.lbl.gov/libpcap-0.4.tar.Z ÀÌ°ÍÀº BSD ÆÐŶ ĸÃÄ ±¸Á¶¸¦ ±â¹ÝÀ¸·Î ¸¸µé¾î Á³´Ù. ethernet, PPP µî ´Ù¾ç ÇÑ ³×Æ®¿öÅ©¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼Ò½º°¡ ÀÖÀ¸¸ç, promiscuous ¸ðµå·Î µ¿ÀÛÇؼ­ ³×Æ®¿öÅ© ¸ð´ÏÅ͸µÀ» ÇÏ´Â ±¸Á¶µµ ¾Ë ¼ö ÀÖ´Ù(pcap_snoop.c). libpcap ¶óÀ̺귯¸®´Â 4.4BSD, BSD/386, NetBSD, FreeBSD, DEC OSF/1, Linux, Solaris, SUNOS µî ´ëºÎºÐÀÇ UNIX ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. BPF(BSD Packet Filter), tcpdump BSD ±â¹ÝÀÇ ÆÐŶ ÇÊÅͷμ­ libpcap ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. µ¿ÀÛ ±¸Á¶´Â ±×¸² 12¿Í °°ÀÌ Kernel ·¹º§¿¡¼­ ÈÄÅ·À» »ç¿ëÇؼ­ ÇÁ·ÎÅäÄÝ ½ºÅðú´Â º°µµ·Î Áö³ª´Ù´Ï´Â ÆÐŶÀ» ÀоîµéÀδÙ. ÁÖ¾îÁø ÀÎÅÍÆäÀ̽º¿¡¼­ Multiple processµµ ¸ð´ÏÅ͸µ ÇÒ ¼ö ÀÖÀ¸¸ç, °¢ ÇÁ·Î¼¼¼­´Â Àڱ⸸ÀÇ ÇÊÅ͸¦ Á¤ÀÇÇÑ´Ù. ±×¸² 12´Â Network Monitor¿Í RARP daemonÀ» °°Àº ³×Æ®¿öÅ© »ó¿¡¼­ ¸ð´ÏÅÍ ¸µ ÇÏ´Â °ÍÀ» ³ªÅ¸³½´Ù. ÇöÀç BPFÀÇ ±â´ÉÀº tcpdump ÇÁ·Î±×·¥ ¾È¿¡ ³»ÀåµÇ¾î ÀÖ´Ù(tcpdump.2.2.1). ÇÁ ·Î±×·¥Àº ´ÙÀ½ »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. ftp://ftp.ee.lbl.gov/bpf À§ »çÀÌÆ®¿¡¼­´Â À̸¦ »ç¿ëÇÑ paperµµ ±¸ÇÒ ¼ö ÀÖ´Ù. ftp://ftp.ee.lbl.gov/bpf/bpf-usenix93.ps ftp://ftp.ee.lbl.gov/bpf/bro-usenix98-revised.ps Beholder RFC1271ÀÇ RMON Ãʱ⠸ðµ¨À» ±¸ÇöÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. ¼Ò½º¸¦ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç UNIX, Linux µî¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Beholder´Â ´ÙÀ½ »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. ftp://dnpap.et.tudelft.nl/pub/btng ÀÌ¿Ü¿¡µµ »ó¿ë Á¦Ç°À¸·Î RMON1°ú RMON2¸¦ Áö¿øÇÏ´Â ÇÁ·Î±×·¥µéÀÌ Ãâ½ÃµÇ ¾î ÀÖ´Ù. RMON mailing list RMON ¸ÞÀϸµ ¸®½ºÆ®´Â ´ÙÀ½°ú °°´Ù. rmonmib@cisco.com ÀÌ»óÀ¸·Î 6ȸ¿¡ °ÉÄ£ NMS ¿¬À縦 ¸¶Ä¡µµ·Ï ÇÏ°Ú´Ù. Áö±Ý±îÁö ¼Ò°³ÇÑ ³»¿ëÀ» ½ÇÁ¦ ³×Æ®¿öÅ© °ü¸®¿¡ »ç¿ëÇØ º¸±â ¹Ù¶ó¸ç, º» ÇÊÀÚ°¡ ¼Ò°³ÇÑ °Í ¿Ü¿¡µµ TMN µî Åë½Å¸Á °ü¸®¿¡ »ç¿ëµÇ´Â °³³äµéÀÌ ¸¹ÀÌ ÀÖÀ¸´Ï Âü°íÇϱ⠹ٶõ´Ù.