ÖÐÎÄ
½»Á÷»ú
Ô°ÇøÍø½»Á÷»ú
Êý¾ÝÖÐÐÄÓëÔÆÅÌËã½»Á÷»ú
ÐÐÒµ¾«Ñ¡½»Á÷ϵÁÐ
¹¤Òµ½»Á÷»ú
Åä¼þ
ËùÓÐÊÖÒÕ½â¾ö¼Æ»®
·ÓÉÆ÷
»ã¾Û·ÓÉÆ÷
ÐÐÒµ¾«Ñ¡Â·ÓÉÆ÷ϵÁÐ
ËùÓÐÊÖÒÕ½â¾ö¼Æ»®
ÎÞÏß
·Å×°ÐÍÎÞÏß½ÓÈëµã
Ç½ÃæÐÍÎÞÏß½ÓÈëµã
ÖÇ·ÖÎÞÏß½ÓÈëµã
ÊÒÍâÎÞÏß½ÓÈëµã
³¡¾°»¯ÎÞÏß
ÎÞÏß¿ØÖÆÆ÷
ÐÐÒµ¾«Ñ¡ÎÞÏßϵÁÐ
ÎÞÏß¹ÜÀíÓëÓ¦ÓÃ
ÔÆ×ÀÃæ
ÔÆÖÕ¶ËϵÁÐ
ÔÆÖ÷»úϵÁÐ
ÔÆ×ÀÃæÈí¼þϵÁÐ
Åä¼þϵÁÐ
·þÎñ²úÆ·
Çå¾²
´óÊý¾ÝÇ徲ƽ̨
ÏÂÒ»´ú·À»ðǽ
Çå¾²Íø¹Ø
¼ì²â¹ÜÀíÇå¾²
ËùÓÐÊÖÒÕ½â¾ö¼Æ»®
Èí¼þ
Éí·Ý¹ÜÀí
·þÎñ²úÆ·
»ù´¡Î¬»¤·þÎñ
ÔËά¹ÜÀí·þÎñ
Çå¾²·þÎñ
±¸¼þÓëÀ©ÈÝ·þÎñ
ÅàѵÓëÈÏÖ¤·þÎñ
¡¾ÍøÂçÔËά×Ô¶¯»¯¡¿OpenConfigÏÖÒѳÉÎªÍøÂç×Ô¶¯»¯ÊÖÒÕµÄÉú³¤Ç÷ÊÆ£¬97¹ú¼ÊµÄÊý¾ÝÖÐÐĽ»Á÷»úÖ§³Ö Netconf YANG ºÍ OpenConfig YANG£¬¿É×ÊÖúÆóҵʵÏÖÊý¾ÝÖÐÐÄÖÇÄÜÔËά¡£
Ê×ÏÈ£¬ÈÃÎÒÃÇÉèÏëÒ»¸ö³¡¾°£º
ÓÉÓÚÓªÒµ±¬·¢±ä»»£¬ÐèҪΪһ¸ö POD ÄÚÀïµÄ¼¸Ê®Ì¨½»Á÷»úÐÞ¸Ä QoS ÉèÖá£×÷ÎªÍøÂçÔËάְԱ£¬Ó¦¸ÃÔõÑù´¦Öóͷ£ÕâÏîÊÂÇéÄØ£¿
ÈôÊÇÐèÒª±ä»»µÄ¹¤¾ßÊÇÕû¸öÊý¾ÝÖÐÐŲ̀ÉõÖÁ¼¸Ç§Ì¨½»Á÷»ú£¬ÓÖ¸ÃÔõÑù´¦Öóͷ£ÕâÏîÊÂÇéÄØ£¿
µ±Ï£¬»¥ÁªÍøÐÐÒµÒѾÆÕ±é½ÓÄÉ DevOps µÄÏÏû³Á÷³Ì¡£¿¿ÈËÁ¦È¥Ò»Ì¨×°±¸Ò»Ì¨×°±¸µÄ¸ü¸ÄÉèÖã¬ÒѾ²»ÔÙÊÇ׼ȷµÄÍ·ÄÔ·½·¨¡£Ôµ¹ÊÔÓɲ»µ«½öÊÇÆÌÕÅʱ¼ä —— ÒªÖªµÀ£¬ÈËÈôÊÇÒª³¤Ê±¼ä¼á³Ö×¢ÖØÁ¦¼¯ÖУ¬´óÄÔÐèÒªãýÃð´ó×ÚµÄÄÜÁ¿£¬ºÜÄѰü¹Ü²»·ºÆðÒÅ©»òÕß¹ýʧ¡£¶ø»úеȴ²»»á¡£
Òò´Ë£¬×¼È·µÄÒªÁìÊÇʹÓà DevOps µÄÁ÷³Ì£¬ÈûúеÀ´Íê³ÉÕâÏîÊÂÇé¡£ÀýÈç½ÓÄÉ»ùÓÚ Python µÄ SSH ¿â Paramiko »ò Netmiko£¬ÒÔ¼° Ansible »ò SaltStack µÈ×Ô¶¯»¯¹¤¾ß±àдÔËά¾ç±¾¡£
Netmiko ¿âºÍ Ansible µÈÔËά¹¤¾ßËäÈ»¿ÉÒÔͨ¹ý³ÌÐò»¯µÄ¾ç±¾¶ÔÍøÂç×°±¸ÊµÏÖÅúÁ¿¹ÜÀí£¬µ«ÈÔÈ»ÐèÒªÔËά¹¤³Ìʦ¶ÔÍøÂç×°±¸µÄ CLI ºÜÊìϤ£¬Ô¤ÏÈÔھ籾Öн¨ÉèÐèÒª±»Ö´ÐÐµÄ Command ÁÐ±í¡£
CLI
CLI ×î´óµÄÎÊÌâ¾ÍÊÇÔÚ²î±ð³§É̵Ä×°±¸Ö®¼ä£¬ÉõÖÁÔÚ²î±ð°æ±¾Ö®¼ä±£´æ½Ï´ó²î±ð¡£ºÃ±ÈÔÚij C ³§É̽»Á÷»úÉÏÉèÖñßÑØ¶Ë¿Ú£¬²î±ðµÄ OS °æ±¾ÏÂÁî²¢²»Ïàͬ£º
¶ø¹ØÓÚÁíһЩ³§ÉÌ£¬ÉèÖÃÏÂÁîÔò²î±ð¸ü´ó¡£ÀýÈçÔÚij E Æ·ÅÆ ½»Á÷»úÉÏÉèÖñßÑØ¶Ë¿ÚµÄÏÂÁîΪ£º
ÕâÒâζ×Å£ºÈôÊÇ×°±¸°æ±¾Éý¼¶£¬¾Í¿ÉÄÜÐèÒª¸ü¸ÄÔËά¾ç±¾µÄ´úÂ롣ΪÁË×èÖ¹³§Ḛ́󶨣¬ÍøÂçÄÚͨ³£Ò²»áͬʱ±£´æ¶à¸ö³§É̵Ä×°±¸£¬ÏìÓ¦µØ£¬Ò²¿ÉÄÜÐèҪ׼±¸¶àÖÖÔËά¾ç±¾»òÕßÈÃÔËά¾ç±¾±äµÃºÜÖØ´ó —— ÏÈÅжÏ×°±¸ÐͺźͰ汾ºÅ£¬ÔÙÔËÐÐÏìÓ¦µÄ Command-list¡£
ÒÔÊÇ CLI ²¢²»ÊÊÊÊÓÃÀ´×÷ΪһÖÖ API¡£ËäÈ»½ÓÄÉ×Ô¶¯»¯¹¤¾ß´¦Öóͷ£ Commands ¿ÉÒÔ½ÚÔ¼ÍøÂçÔËάְԱµÄÊÂÇéÁ¿£¬¿ÉÊÇÊÖÒÕÃż÷ºÍά»¤±¾Ç®¶¼½ÏÁ¿¸ß¡£SNMP ËÆºõÊÇÒ»ÖÖ¸üºÃµÄÑ¡Ôñ¡£
SNMP
¡ø SNMP Overview
SNMP µÄÀúÊ·ºÜÓÆ¾Ã£¬µÚ 1 ¸öÓëÖ®Ïà¹ØµÄ RFC 1065 Ðû²¼ÓÚ 1988 Ä꣬¾à½ñÒÑÓÐ 30 Äê¡£ÔÚ SNMP ¼Ü¹¹ÖУ¬Ò»¸öÍøÂç×°±¸ÒÔÊØ»¤Àú³ÌµÄ·½·¨ÔËÐÐ SNMP Agent£¬¶ø NMS£¨ÍøÂç¹ÜÀíϵͳ£©ºÍÍøÂçÔËάְԱËùʹÓõÄÖÖÖÖ SNMP ¹ÜÀí¹¤¾ßÔò³ÆÎª SNMP Manager¡£SNMP Agent Äܹ»ÏìÓ¦À´×Ô SNMP Manager µÄÖÖÖÖÇëÇóÐÅÏ¢¡£
SNMP Agent »áά»¤Ò»¸ö MIB£¨¹ÜÀíÐÅÏ¢¿â£©£¬ÄÚÀïÉúÑÄ×Å´ó×ÚµÄ OID £¨¹¤¾ß±êʶ·û£©¡£Ò»¸ö OID ÊÇÒ»¶ÔΨһµÄ Key-Value£¬SNMP Manager Ïò SNMP Agent ÅÌÎÊ»òÐÞ¸ÄÈô¸É Key Ëù¶ÔÓ¦µÄ Value£¬¾Í¿ÉÒÔʵÏÖÐÅÏ¢ÊÕÂÞ»òÕßÍøÂç×°±¸µÄÉèÖÃÐ޸ġ£
¡ø MIB-Example
ÉÏͼÊÇÒ»¸ö MIB ʾÀý£¬Çë×¢ÖØ±ê»ÆÉ«µÄ²¿·Ö¡£OID 1.3.6.1.2.1.2.2.1.5 ÓÃÀ´ÒÔ bps Ϊµ¥Î»ÆÀ¹À½Ó¿ÚÁ÷Á¿£¬ËüÊôÓÚ RFC 1213 ±ê×¼ MIB£¬Ãû³ÆÎª ifSpeed£¬Ö»¶Á¡£ÓÉÓÚÕâ¸ö MIB ²¢²»ÊÇÎÒ´ÓÕýÔÚÔËÐеÄ×°±¸ÉÏÈ¡ÏÂÀ´µÄ£¬ÒÔÊÇÄ¿½ñµÄ Value Ϊ¿Õ¡£
ÐèÒª×¢ÖØµÄÊÇ£¬SNMP Manager ²àµÄ MIB ²¢²»ÊDZØÐèµÄ¡£ÈôÊÇʹÓÃÊý×Ö OID 1.3.6.1.2.1.2.2.1.5£¬SNMP Manager ¿ÉÒÔÖ±½Ó´Ó SNMP Agent get ½Ó¿ÚÁ÷Á¿´ø¿í£¬¶ø²»ÐèҪװÖÃÍêÕûµÄ MIB¡£
ÏÖÔÚ SNMP ÔÚÍøÂç¼à¿ØÁìÓòÒѾ±»ÆÕ±éʹÓã¬Ê¹Óà Zabbix¡¢Nagios¡¢Cacti µÈ¿ªÔ´µÄ SNMP ¹ÜÀí¹¤¾ßÊÕÂÞÍøÂç×°±¸½Ó¿ÚÁ÷Á¿´ø¿íºÍÆäËû×°±¸ÐÅÏ¢£¬Í¬Ê±Ò²Óдó×ڵĻùÓÚ Python µÄ SNMP ¿âÓÃÀ´ÊµÏÖÔËά¿ª·¢£¬ÀýÈç PySNMP¡¢ EasySNMP¡¢ Net-SNMPµÈµÈ£¬²¢ÇÒËüÃǶ¼¿ÉÒÔ¼¯³Éµ½ Ansible ºÍ SaltStack µÈ×Ô¶¯»¯ÔËά¹¤¾ßÉÏ¡£
¿´ÉÏÈ¥»¹²»´í£¬µ«ÏÖʵÉÏ SNMP ÈÔÈ»²»ÊÇÒ»¸öºÏÊ浀 API£¬ÓÉÓÚËü±£´æ¼¸¸öÎÊÌ⣺
¡ðÔ¶¹ÅÀÏ£¬²¢·¢ÐÔÄÜÇ·ºÃ
¡ð»ùÓÚ UDP ÐÒé´«Ê䣬½ÏÁ¿²»¿É¿¿¡£ËäÈ»ÔÚÓ¦ÓòãÓÐ Response »úÖÆ°ü¹Ü¶ª°üÖ®ºóµÄÖØ¸´ get/ set£¬µ«¼ÛÇ®¾ÍÊÇÐÔÄܺÍÔËÐÐʱ¼ä¶¼Êܵ½Ó°Ïì
¡ðÖÂÃüµÄÎÊÌâÊÇ£¬¸÷³§É̶¼´ó×ÚµÄʹÓÃ˽ÓÐ MIB£¬È´²»±£´æÒ»¸ö¿ÉÒÔ×Ô¶¯·¢Ã÷ÍøÂç×°±¸Ä¿½ñËù½ÓÄÉµÄ MIB µÄ»úÖÆ¡£ÍøÂçÔËάְԱ±ØÐè»®·ÖÏò×°±¸³§ÉÌË÷È¡ÍøÂç×°±¸µÄ MIB£¬ãýÃð´ó×ÚµÄʱ¼äÕûÀí×Ô¼ºÐèÒªµÄ OID£¬ÔÙÊÖ¹¤µ¼Èëµ½×Ô¶¯»¯ÔËάƽ̨»òÕ߾籾µ±ÖÐ
ÒÔÊÇ SNMP ÈÔȻֻÊÊÊÊÓÃÀ´×öÐÅÏ¢ÊÕÂÞ£¬Ìṩ¸æ¾¯ºÍ¿ÉÊÓ»¯±¨±í£¬µ«×Ô¶¯»¯ÔËάµÄ API ÔòÐèҪ˼Á¿ÆäËûµÄÑ¡Ïî¡£Õ¾ÔÚÍøÂçÔËάְԱµÄ½Ç¶È£¬Õâ¸ö API Ó¦¸ÃÖª×ãÒÔÏÂÒªÇó£º
¡ðÈÝÒ×ʹÓà —— Usability ÊÇËùÓвúÆ·µÄ½¹µã¼ÛÖµ
¡ðÐèÒªÄܹ»ÇåÎúµØÇø·Ö“ÉèÖÃÊý¾Ý”£¬“×°±¸ÔËÐÐ״̬Êý¾Ý”ºÍ“ͳ¼ÆÊý¾Ý”
¡ðÐèÒªÄܹ»»®·Ö´Ó¸÷¸öÍøÂç×°±¸»ñÈ¡ÉÏÊö 3 ÖÖÊý¾Ý£¬²¢ÇÒ¿ÉÒÔÀû±ãµØ±ÈÕÕ²î±ð×°±¸µÄÊý¾Ý
¡ð¿ÉÒÔÈÃÍøÂçÔËάְԱͳһµØ¹ÜÀíÕû¸öÍøÂçµÄËùÓÐ×°±¸£¬¶ø²»ÊÇһ̨һ̨µÄµ¥¶À¹ÜÀí
¡ð¶Ô²î±ð³§É̵Ä×°±¸¶¼Äܹ»Ê¹ÓÃͳһÖÖÉèÖÃÒªÁì
¡ðÉèÖñ任¶ÔÍøÂçÓªÒµµÄÓ°ÏìÒª¾¡¿ÉÄܵÄС
¡ðÄܹ»Ìṩһ¸ö±ê×¼»¯µÄ£¬¶Ô×°±¸ Pulling ºÍ Pushing ÉèÖÃÎļþµÄÁ÷³Ì£¬ÒÔÖª×ã¶Ô×°±¸ÉèÖõı¸·ÝºÍ»Ö¸´µÄÓªÒµÐèÇó
¡ðÄܹ»ºÜÀû±ãµØ£¬Ò»Á¬µØ£¬¼ì²é×°±¸ÉèÖÃÎļþµÄÒ»ÖÂÐÔ
¡ðÄܹ»Ìṩ»ùÓÚÎı¾µÄÉèÖ÷½·¨£¬²¢ÇÒ²»»áµ¼ÖÂÉèÖõÄÂÒÐò£¬ÀýÈç²»¿É½ÁÂÒ ACL ¹æÔòµÄ˳Ðò
Äܹ»Öª×ãÕâЩҪÇóµÄÍøÂç×°±¸µÄ±±Ïò API ½Ó¿Ú¾ÍÊÇ Netconf¡£
Netconf
Netconf ÊÇ IETF Ðû²¼µÄ±ê×¼ÐÒ飬ËüµÄÈ«³ÆÊÇ Network Configuration Protocal¡£´ÓÃû×־ͿÉÒÔ¿´³öÀ´£¬Netconf µÄ×÷ÓÃÊÇ»ùÓÚÍøÂçÀ´×°ÖᢲÙ×÷ºÍɾ³ý×°±¸µÄÉèÖá£ÔÚ Netconf µÄ¼Ü¹¹ÖУ¬ÍøÂç×°±¸³äµ± Netconf Server µÄ½ÇÉ«£¬¶øÔËάְԱµÄÕâÒ»²àÔòÊÇ Netconf Client¡£±ðµÄ£¬ºÍ OSI ±ê׼ģ×ÓÒ»Ñù£¬Netconf Ò²ÊÇ·Ö²ã½á¹¹¡£
¡ø Netconf 4 Layers
ËüÓÐ 4 ¸öÌõÀí£¬´Óϵ½ÉÏÒÀ´ÎΪ£º
• Çå¾²´«Êä²ã
Çå¾²´«Êä²ãÔÚ Netconf Client ºÍ Netconf Server Ö®¼äÌṩÇå¾²µÄ¶Ëµ½¶ËÅþÁ¬¡£Óë SNMP ½ÓÄÉ·ÇÃæÏòÅþÁ¬µÄ UDP ÐÒé²î±ð£¬Netconf ½ÓÄÉÃæÏòÅþÁ¬µÄ TCP ÐÒ飬ͨ³£ÊÇ SSH ÐÒ飬°ü¹ÜÅþÁ¬µÄ¿É¿¿ÐÔºÍÇå¾²ÐÔ¡£
• ÐÂÎŲã
ÐÂÎŲãÒ²³ÆÎª RPC£¨Ô¶³ÌÀú³ÌŲÓ㩲㡣Netconf Server£¨ÍøÂç×°±¸£©ÉÏÃæ°²ÅÅÁË Netconf Ó¦Óã¬Netconf Client ÐèҪŲÓà Server ÉϵÄÓ¦ÓÃËùÌṩµÄº¯Êý/ÒªÁ죬µ«ÓÉÓÚ Client ºÍ Server ²»ÔÚͳһ¸öÄÚ´æ¿Õ¼ä£¬ÎÞ·¨Ö±½ÓŲÓã¬ÒÔÊÇÐèҪͨ¹ýÍøÂçÀ´±í´ïŲÓõÄÓïÒ壬²¢×ª´ïŲÓõÄÊý¾Ý¡£Õâ¸öÀú³Ì£¬³ÆÎª RPC¡£ËüÌṩÁËÒ»¸ö¼òÆÓµÄ£¬ÓëÇå¾²´«Êä²ãÎ޹صĻúÖÆÀ´·â×°²Ù×÷²ãºÍÄÚÈݲãµÄÊý¾Ý£º
¡ðRPC ŲÓ㺠<rpc> ÔªËØËù·â×°µÄÐÂÎÅ
¡ðRPC Ч¹û£º <rpc-reply> ÔªËØËù·â×°µÄÐÂÎÅ
¡ðÊÂÎñ֪ͨ£º <notification> ÔªËØËù·â×°µÄÐÂÎÅ
• ²Ù×÷²ã
²Ù×÷²ã½ç˵ÁËÈçͼËùʾµÄ 9 ÖÖ»ù´¡²Ù×÷¼¯£¬ÆäÖУº
<get>¡¢ <get-config> ÓÃÀ´¶Ô×°±¸¾ÙÐÐȡֵ²Ù×÷
<edit-config>¡¢ <copy-config>¡¢ <delete-config> ÓÃÓÚÉèÖÃ×°±¸²ÎÊý
<lock> ºÍ <unlock> ÊÇÔÚ¶Ô×°±¸¾ÙÐвÙ×÷ʱ£¬Îª±ÜÃâ²¢·¢±¬·¢ÔÓÂÒµÄËøÐÐΪ
<close-session> ºÍ <kill-session> ÓÃÓÚ¿¢ÊÂÒ»¸ö»á»°²Ù×÷
• ÄÚÈݲã
¹ËÃû˼Ò壬ÄÚÈݲã¾ÍÊÇÓÃÀ´±í´ïÉèÖÃÊý¾ÝºÍ״̬Êý¾Ý£¬ÍøÂçÔËάְԱֻÐèÒª¹Ø×¢Êý¾Ý×Ô¼º£¬¶ø²»ÐèҪȥ¹Ø×¢×°±¸µÄÏà¹ØÏÂÁî¡£»ù´¡ÍøÂç×°±¸ÔÚÄÚÈݲãËù½ÓÄɵÄÊý¾ÝÃûÌÃͨ³£ÊÇ XML£¬µ«Ò²Óг§É̵ÄÊý¾ÝÃûÌýÓÄÉÁË JSON¡£
ËäÈ»ÍøÂçÔËάְԱ²»ÔÙÐèÒª¹Ø×¢×°±¸µÄÏà¹ØÏÂÁîÁË£¬µ«ÈÔÈ»ÎÞ·¨Ö±½ÓʹÓà Netconf ÉèÖÃ×°±¸£¬»¹ÐèҪ˼Á¿ÉèÖýṹ¡£
ʲô½Ð“ÉèÖýṹ”ÄØ£¿
ÈôÊÇÎÒÃÇÏÖÔÚÒª½«½»Á÷»úµÄ 10# ¶Ë¿Ú»®Èë VLAN 20¡£97¹ú¼Ê½»Á÷»úÐèÒªÔÚÎïÀí¶Ë¿ÚģʽÏÂÉèÖãº
¶øÄ³ H Æ·ÅÆ½»Á÷»úÈ´ÐèÒªÔÚ VLAN Âß¼¶Ë¿ÚģʽÏÂÉèÖãº
´ÓÉÏÃæÁ½¸öÉèÖÃʾÀý¿ÉÒÔ·¢Ã÷97¹ú¼Ê½»Á÷»úºÍ H Æ·ÅÆ½»Á÷»úµÄÉèÖýṹÓÐÏÔ×Ųî±ð£¬ÒÔÊÇÎÞ·¨Ö±½ÓʹÓà XML »òÕß JSON ÐÞ¸ÄËüÃǵÄ×°±¸ÉèÖá£
ΪÏàʶ¾öÉèÖýṹµÄÎÊÌ⣬ÐèÒª½« XML ºÍ JSON Êý¾ÝÃûÌÃÁýͳ³ÉÒ»¸öͳһµÄ±ê×¼µÄÄ£×Ó£¬Õâ¾ÍÊÇ YANG¡£YANG µÄÈ«³ÆÊÇ Yet Another Next Generation£¬Ã»ÓÐÊʵ±µÄÖÐÎÄÀ´·ÒëËü¡£Í¨Ë׵Ľ²£¬YANG ÊDZí´ï Netconf Ëù²Ù×÷µÄÉèÖÃÊý¾ÝºÍ״̬Êý¾ÝµÄÄ£°å£¬ËüÐÎòʲô²ÅÊÇÇкÏ×°±¸ÆÚÍûµÄÊý¾Ý¡£ÓÐÁË YANG Model£¬ÉèÖýṹ¾Í½»¸øËüÐÐÖ¹Öã¬ÍøÂçÔËάְԱ¾ÍÖ»ÐèÒª×öÒ»¸öÍêÐÎÌî¿Õ¼´¿É¡£
Ìî¿ÕµÄÎÊÌâ»òÐíÊÇÕâÑù×ӵģº
Ìî¿ÕÌâµÄÃÕµ×»òÐíÊÇÕâÑù×ӵģº
Õâ¸öÀú³ÌÔÚÂß¼ÉÏ£¬ÓëÏò SNMP µÄ OID Ìî³ä/¶ÁÈ¡ Value ²îδ¼¸¡£
Netconf ºÍ YANG Model µÄ·ºÆð£¬ÎªÍøÂç×Ô¶¯»¯´øÀ´Á˼«´óµÄ±ãµ±¡£ÅäºÏ×Ô¶¯»¯µÄ³ÌÐò£¬¿ÉÒÔʵÏÖ¶¯Ì¬ÏòÍøÂç×°±¸Ï·¢ÉèÖ㬽«Êý¾ÝÃæºÍ¿ØÖÆÃæÊèÉ¢£¬×é³ÉÈí¼þ½ç˵µÄÍøÂç¡£ÊÂʵÉÏ£¬Netconf Ò²ÊÇ OpenDayLight µÈ¿ªÔ´ SDN Controller ËùÆÕ±éʹÓõÄÄÏÏò½Ó¿ÚÖ®Ò»¡£ ±ðµÄ£¬Ansible Ò²¼¯³ÉÁË Netconf µÄ Module£¬²¢ÇÒ¿ÉÒÔͨ¹ý Python À´À©Õ¹ ncclient ºÍ nxpy µÈ¿â£¬ÊµÏÖ¹¦Ð§À©Õ¹¡£
µ« Netconf ¾ÍÊÇÎÒÃÇÔÚѰÕÒµÄÀíÏëµÄ API Âð£¿
Õ¾ÔÚÍøÂçÔËάÕߵĽǶȣ¬ÃÕµ×È´ÊÇ·ñ¶¨µÄ¡£
Ôµ¹ÊÔÓÉÔÚÓÚÐí¶à³§ÉÌËäȻ֧³Ö Netconf£¬µ«ÓÐһЩ Key-Value È´±£´æ²î±ð¡£ºÃ±ÈΪÁ˱í´ï“¶Ë¿Ú”£¬ÓÐЩ³§ÉÌÓà intf ×÷Ϊ Key£¬µ«ÁíÍâһЩ³§ÉÌÈ´Óà interface ×÷Ϊ Key¡£ÁíÒ»¸öÀý×Ó¾ÍÊÇ Uptime£¬×°±¸ÔËÐÐʱ¼ä£¬¸÷¼Ò³§É̵Ä×°±¸·µ»ØµÄʱ¼äÃûÌøüÊÇÎ廨°ËÃÅ¡£ÕâÎªÍøÂçÔËάְԱ´¦Öóͷ£Êý¾ÝµÄÊÂÇéÔì³ÉÁ˺ܴóµÄƶÀ§£¬²»µÃ²»ãýÃð´ó×ÚµÄʱ¼äºÍ¾«ÉñÈ¥ÔĶÁ×°±¸³§ÉÌµÄ Netconf Îĵµ£¬È¥±àд´ó×ÚµÄÕýÔò±í´ïʽ¡£
ÉÐÓУ¬ËäÈ»Ö÷Á÷µÄ SDN Controller µÄÄÏÏò½Ó¿Ú¶¼Ö§³Ö Netconf£¬¿ÉÊÇÔÚÏÖʵ°²ÅÅʱ£¬È´ÎÞ·¨Óüòµ¥µÄ Controller È¥¿ØÖƶ೧É̵ÄÍøÂç×°±¸¡£Í¨³£¶¼ÊǸ÷¸ö³§ÉÌʹÓÃ×Ô¼ºµÄ SDN Controller ¿ØÖÆ×Ô¼ºµÄ×°±¸£¬È»ºóÔÙÓà REST API ÓëÓû§µÄ SDN Controller ¶Ô½Ó¡£
¡ø ¶à¿ØÖÆÆ÷¼Ü¹¹
ÉÏÎÄËùÌáµ½µÄÍøÂçÔËάְԱËùÌåÌùµÄ 9 ´óÎÊÌ⣬Netconf ÏÕЩ¶¼ÄÜÖª×㣬µ«¾àÀëÍêȫ֪×ãÉÐÓÐһЩ²î±ð¡£
ÓÐÒ»¸ö½â¾ö²½·¥£¬¾ÍÊÇʹÓà NAPALM¡£
NAPALM
NAPALM ÊÇÒ»¸ö Python ¿â£¬ËüµÄÈ«³ÆÊÇ Network Automation and Programmability Abstraction Layer with Multivendor support£¬¶à³§ÉÌÖ§³ÖµÄÍøÂç×Ô¶¯»¯ºÍ¿É±à³ÌÁýͳ²ã¡£
ÏÖÔÚ Ansible ¼¯³ÉÁË 3 ¸ö NAPALM Ä£¿é£¬»®·ÖÊÇ£º
¡ðnapalm_parse_yang£ºÓÃÓÚ´Ó×°±¸»òÎļþÖÐÆÊÎöÉèÖÃ/״̬Êý¾Ý
¡ðnapalm_diff_yang£ºÓÃÓÚ½ÏÁ¿ 2 ¸ö YANG ¹¤¾ßµÄ²î±ð
¡ðnapalm_translate_yang£ºÓÃÓÚ½« YANG ¹¤¾ßתÒë³É×°±¸ÔʼµÄÉèÖÃ
´Ó×°±¸È¡³öÔʼÉèÖÃÊý¾Ý/״̬Êý¾ÝÖ®ºó£¬¿ÉÒÔʹÓà NAPALM ½«Æä·Òë³É±ê×¼ÃûÌÃµÄ NAPALM Êý¾Ý¡£·´Ö®£¬Ò²¿ÉÒÔ½«±ê×¼ÃûÌÃµÄ NAPALM Êý¾Ý·Òë³É×°±¸ÔʼÉèÖÃÊý¾Ý£¬²¢ Push µ½ÍøÂç×°±¸ÄÚÀÒÔÐÞ¸Ä×°±¸µÄÉèÖÃÎļþ¡£
¡ø Netconf & NAPALM
¶Áµ½ÕâÀҲÐíÄúÒѾ²Âµ½ÎÒ½«ÒªËµÊ²Ã´ÁË……
Êǵģ¬NAPALM Õվɲ»¿É³¹µ×½â¾öÍøÂç×Ô¶¯»¯ËùÃæÁÙµÄÎÊÌâ¡£
ÓÉÓÚ¸÷³§ÉÌ Netconf µÄÊý¾Ý±í´ï±£´æÐí¶à²î±ð£¬ÒÔÊÇ NAPALM ±ØÐèÒªÒÀÀµµÚÈý·½µÄ Module À´Íê³ÉÔʼÊý¾ÝµÄÆÊÎöºÍ·Òë¡£ÈôÊÇÒªÆÊÎö³§ÉÌ A µÄij¸ö OS ϵͳµÄÉèÖ㬾ÍÐèÒªÒ»¸ö OSA_Module£»ÈôÊÇÒªÆÊÎö³§ÉÌ B µÄij¸ö OS ϵͳµÄÉèÖã¬ÔòÐèÒª OSB_Module¡£ÒÔÊÇÏÖÔÚ NAPALM Ö§³ÖµÄ OS ÀàÐÍ»¹½ÏÁ¿ÉÙ£¬½öÏÞÓÚij¼¸¸öÍâÑóÆ·ÅÆ³§ÉÌµÄ OS ϵͳ¡£
×ÝÈ»ÊÇÕ⼸¸öÍâÑóÆ·ÅÆ³§ÉÌ£¬NAPALM ÏÖÔÚÒ²ÎÞ·¨ÊµÏÖÍêÕûµÄ¹¦Ð§¼¯¡£ÒÔÊÇ Google µÈÍøÂç×°±¸µÄ´óÓû§Ò»Ö±ÔÚÖÂÁ¦ÓÚÍÆ¹ãÒ»¸öÄܹ»Ìæ»» Netconf µÄ±ê×¼»¯½Ó¿Ú£º OpenConfig¡£
OpenConfig
IETF ÒѾΪ Netconf ºÍ YANG Model Ðû²¼ÁËÐí¶à RFC£¬´Ó 2006 ÄêµÄ Netconf RFC 4741£¬2010 ÄêµÄ YANG Model RFC 6020£¬µ½ÏÖÔÚÒѾÁè¼Ý 10 Äê¡£¶ø×îеÄÒ»¸ö RFC ÔÚʲôʱ¼äÄØ£¿¾ÍÔÚ¼¸Ìì֮ǰµÄ 2018 Äê 4 Ô 3 ÈÕ£¬3 ¼Ò×°±¸³§ÉÌÍŽáÌá½»ÁËÒ»¸ö OSPF YANG Model µÄ²Ý°¸ —— ±ê×¼»¯µÄÏ£ÍûÌ«ÂýÁË¡£
Ò²Ðí£¬Õâ¾ÍÊÇÎÊÌâËùÔÚ —— Netconf ±ê×¼ÊÇÓÉÍøÂç×°±¸³§ÉÌÍÆ¶¯µÄ£¬ÄÚÚ§Ì«´ó¡£¸÷¸ö×°±¸³§É̶¼Ï£ÍûÔÚÈí¼þ½çËµÍøÂçµÄʱ´ú¼ÌÐø¼á³ÖÓ²¼þ×°±¸µÄÖ÷ÒªÐÔ£¬²¢ÇÒÄܹ»ÌåÏÖ×Ô¼º¹«Ë¾²úÆ·µÄ²î±ð»¯ÓÅÊÆ¡£
¿ÉÊÇ´ÓÍøÂçÔËάÕߵĽǶÈ˼Á¿£¬ÕâÏÔÈ»²»¶ÔÀí£¬ÓÉÓÚ×°±¸³§ÉÌËùÍÆ¶¯µÄ Netconf ±ê×¼²¢²»ÊÇËûÃÇÕæÕýÏëÒªµÄ¡£ÒÔÊÇ Google£¬AT&T£¬British Telecom£¬Facebook£¬Apple£¬Microsoft µÈ»¥ÁªÍø·þÎñÌṩÉ̽¨ÉèÁË OpenConfig ÊÂÇé×飬ϣÍûÌṩһÆäÖÐÁ¢ÓÚ×°±¸³§É̵ıê×¼ API¡£ÏÖÔÚº£ÄÚµÄÌÚѶ¡¢°Ù¶ÈºÍ°¢ÀïµÈ»¥ÁªÍø·þÎñÌṩÉÌÒ²ÒѾ¼ÓÈëÁË OpenConfig ÊÂÇé×é¡£
OpenConfig ÑØÓÃÁË Netconf µÄÐÒé¿ò¼Ü£¬¿ÉÊÇËü²»Ì«¹Ø×¢µ×²ãµÄÊý¾Ý´«Ê䣬¶øÊǸü¹Ø×¢ÉϲãµÄÊý¾Ý±í´ïºÍÊý¾Ý½¨Ä£¡£ÕâÒâζ×Å£º²»¹ÜÊÇ A ³§ÕÕ¾É B ³§£¬ËùÓеÄÊý¾Ý¶¼±ØÐèÇÐºÏ OpenConfig YANG Model£¬²¢ÇÒ Key-Value ¶¼±ØÐèÊÇ OpenConfig Ëù»®¶¨µÄ±ê×¼ÃûÌã¡
OpenConfig µÄÁíÍâÒ»¸ö½¹µãÒªµãÊÇ£ºËäÈ»ÍøÂç×°±¸¿ÉÄÜÖ§³Ö¸»ºñµÄ¹¦Ð§ÌØÕ÷£¬ÉõÖÁÊÇ×°±¸³§ÉÌ˽ÓеĹ¦Ð§ÌØÕ÷£¬¿ÉÊÇ OpenConfig Ö»ÌåÌùÓ뻥ÁªÍøÐÐÒµÓû§Í¨ÓõÄÔËάÊÂÇéºÍÍøÂçÉè¼ÆÊÂÇéÏà¹ØµÄ¹¦Ð§£¬ÀýÈç BGP¡¢OpenFlow¡¢Telemetry µÈµÈ¡£OpenConfig ²»»áΪװ±¸³§É̵Ä˽ÓÐÌØÕ÷½ç˵ YANG Model£¬Ò²²»»áΪװ±¸³§ÉÌËùÌØÓÐµÄ Key-Value ×ö½ç˵£¬ÒÔÊDz»»á·ºÆð²»¼æÈݵÄÇéÐΡ£
µ«·´¹ýÀ´½²£¬OpenConfig Ò²²»»áΪÁ˼æÈÝijЩװ±¸³§É̶øÈà YANG Model ¹ýÓÚ¼òÆÓ£¬ÒÔÊÇ×°±¸³§ÉÌÐèÒªÈÃ×Ô¼ºµÄ¹¦Ð§Öª×ã OpenConfig YANG Model µÄÒªÇ󣬾߱¸ Model Ëù½ç˵µÄËùÓÐµÄ Key£¬²¢ÇÒÄܹ»ÎªËùÓÐµÄ Key Ìṩ¶ÔÓ¦µÄ Value¡£
ÔÚ Key-Value ÃûÌÃÀο¿Ö®ºó£¬ÍøÂçÔËάְԱ¶ÔÊý¾ÝµÄÆÊÎöÊÂÇé¾ÍºÜÊÇÀû±ãÁË¡£Ö»ÒªÍøÂç×°±¸Ö§³Ö±ê×¼µÄ OpenConfig YANG£¬NAPALM ¾Í¿ÉÒÔ¶ÔÔʼÊý¾Ý¾ÙÐÐÆÊÎö£¬²»ÔÙÒÀÀµµÚÈý·½ Module ¾Í¿ÉÒÔ¹ÜÀí¶à³§É̶à OS µÄÍøÂ磬½ø¶øÊµÏÖÕæÕýµÄÍøÂç×Ô¶¯»¯¡£
¡ø OpenConfig & NAPALM
ʹÓà OpenConfig µÄÁíÒ»¸öÀûÒæ¾ÍÊÇ¿ÉÒÔ¼ò»¯ SDN ÍøÂç¼Ü¹¹£¬Óû§Ê¹ÓÃÒ»¸ö¿ØÖÆÆ÷¼¯Èº¾Í¿ÉÒÔͬʱ¿ØÖƶà¸ö³§É̵ÄÍøÂç×°±¸£¬²»ÔÙÐèҪʹÓÃ×°±¸³§É̵ÄÉÌÓÿØÖÆÆ÷×öÖм̡£
¡ø µ¥¿ØÖÆÆ÷¼Ü¹¹
OpenConfig ÊÂÇé×éÔÚ 2015 ÄêÒѾÏò IETF Ìá½»ÁË 2 ¸ö YANG ±ê×¼²Ý°¸£¬ËäÈ»ÏÖÔÚ»¹Ã»Óбê×¼µÄ RFC Ðû²¼£¬¿ÉÊÇËüÏÖÒѳÉÎªÍøÂç×Ô¶¯»¯ÊÖÒÕµÄÉú³¤Ç÷ÊÆ£¬Òò´Ë¸÷´óÍøÂç×°±¸³§É̶¼×îÏÈÁË OpenConfig µÄ¿ª·¢ÊÂÇé¡£97¹ú¼ÊµÄÊý¾ÝÖÐÐĽ»Á÷»úÖ§³Ö Netconf YANG ºÍ OpenConfig YANG£¬ÏÖÔÚÕýÔÚº£ÄÚÅäºÏ¹«ÓÐÔÆÌṩÉ̾ÙÐбê×¼»¯ SDN µÄ²âÊÔÊÂÇé¡£
±¾ÆÚ×÷Õߣº³Â³Ì
97¹ú¼ÊÍøÂ绥ÁªÍøÏµÍ³²¿ÐÐÒµ×Éѯ
ÍùÆÚ¾«²Ê»ØÊ×
¡ñ¡¾µÚÒ»ÆÚ¡¿Ç³Ì¸ÎïÁªÍøÊÖÒÕ֮ͨѶÐÒéµÄ·×Õù
¡ñ¡¾µÚ¶þÆÚ¡¿ÔõÑùͨ¹ýÍøÂçÒ£²â£¨Network Telemetry£©ÊÖÒÕʵÏÖϸÄå»¯ÍøÂçÔËά£¿
Ïà¹Ø±êÇ©£º
µãÔÞ
ÄúµÄÐÕÃû
ÄúµÄÊÖ»úºÅ*
ÄúµÄÓÊÏä
¹«Ë¾Ãû³Æ
97¹ú¼ÊÍøÂçÒÔÌ«²Ê¹â½â¾ö¼Æ»®ÔÚÖйúÒÔ̫ȫ¹âÍøÂçÊг¡ÅÅÃûµÚÒ»£¬·þÎñÖÆÔìÒµ¡¢½ÌÓý¡¢Ò½ÁƵÈ30Íò¼äÈëÊÒ³¡¾°¡£¼Æ»®Í¨¹ý²Ê¹âÊÖÒÕ¡¢ÎÞÔ´»ã¾ÛºÍÖÇÄÜÔËά£¬ÎªÆóÒµÌṩÎȹ̿ɿ¿¡¢ÎÞаÀ©Õ¹µÄÍøÂç»ù´¡ÉèÊ©£¬Ö§³Ö°ì¹«¡¢Éú²ú¡¢Wi-Fi 7µÈ¶à³¡¾°ÐèÇó£¬ÖúÁ¦ÆóÒµÖÇÄÜÖÆÔìÓëÊý×Ö»¯×ªÐÍ¡£
#ÖÆÔìÒµ
#È«³¡¾°
#½»Á÷»ú
#Ô°ÇøÍø
97¹ú¼ÊÍøÂçÍÆ³öRG-CMG6000¡°Öǻ۸硱ϵÁÐÖÇÄÜÇå¾²Íø¹Ø£¬½ÓÄÉ7ºÏ1¸ß¶È¼¯³ÉÉè¼Æ£¬ÕûºÏ·ÓÉ¡¢·À»ðǽ¡¢VPN¡¢ÐÐΪ¹ÜÀíµÈ½¹µã¹¦Ð§¡£¼Æ»®Ö§³Ö»ùÓÚ7000+Ó¦ÓÃÌØÕ÷µÄ¾«×¼ÐÐΪ¹Ü¿Ø¡¢»á»°ÓëÁ÷Á¿Ë«ÖظºÔØÆ½ºâÊÖÒÕ£¬²¢Í¨¹ýINC-EMBƽ̨ʵÏÖͳһÄɹܣ¬Îª½ÌÓý¡¢Ò½ÁƼ°ÖÐСÆóÒµÌṩ¸ü¸ßЧ¡¢¸ü¿É¿¿µÄÒ»Õ¾Ê½ÍøÂç³ö¿Ú½â¾ö¼Æ»®¡£
#Çå¾²
97¹ú¼ÊÍøÂ缫¼òÒÔÌ«²Ê¹â4.0½â¾ö¼Æ»®Õë¶ÔУ԰¹âÍøÂçÔËÎ¬ÍÆ³öÁ¢Òì¹ÜÀíģʽ£¬Í¨¹ýUNCÍ³Ò»ÍøÂçÖÐÐÄʵÏÖ×°±¸¼´²å¼´ÓÃÉÏÏß¡¢¹âÁ´Â·Ãë¼¶¹ÊÕÏÕï¶Ï¡¢¾«×¼¸æ¾¯Ñ¹ËõºÍÖÇÄܾöÒéÖ§³Ö£¬ÓÐÓýâ¾ö¸ßÐ£ÍøÂçÔËάÖÐ×°±¸ÉÏÏßЧÂʵ͡¢¹ÊÕ϶¨Î»ÄÑ¡¢¸æ¾¯ÈßÓ༰Êý¾ÝÖ§³Öȱ·¦µÈ½¹µãÎÊÌ⣬ÖúÁ¦½ÌÓýÐÐÒµÊý×Ö»¯×ªÐÍ£¬ÌáÉýÔËάЧÂÊ90%ÒÔÉÏ¡£
#½»Á÷»ú
#ÆÕ½Ì
#¸ßÖ°½Ì
#½ÌÑ§Íø
97¹ú¼ÊÍøÂçÍÆ³ö¼«¼òÒÔÌ«²Ê¹â¼Æ»®£¬½ÓÄÉ160G¸ßÃܲʹâÊÖÒÕ£¬ÊµÏÖÈ«Á´Â·µ¥Ð¾´«ÊäÓë¹âÁ´Â·¿ÉÊÓ»¯¹ÜÀí¡£¼Æ»®º¸Ç¿òʽ½¹µã½»Á÷»ú¡¢³¬¾ÛºÏ²Ê¹â½»Á÷»ú¼°ÎÞԴ͸Ã÷»ã¾Û×°±¸£¬Ö§³ÖÍòÕ×ÈëÊÒ£¬¼ò»¯²¼Ï߼ܹ¹£¬ÌáÉý°²ÅÅЧÂÊÓëÍøÂç¿É¿¿ÐÔ£¬ÊÊÓÃÓڸߴø¿í¡¢¸ßÃܶÈÔ°ÇøÍøÂ糡¾°£¬ÖúÁ¦ÆóÒµ¹âÍøÂ罨Éè¸ü¼òÆÓ¸ßЧ¡£
#½»Á÷»ú