ÍþÁ®Ï£¶û¹ÙÍø

ÐÂÒ»´ú¿ªÔ´ÍøÂç²Ù×÷ϵͳSONiC Ö®Ò»

0. ÒýÑÔ

ÍøÂçÉ豸ÖÎÀíµÄÒ»´ó°ÃÄÕÀ´×ÔÓÚ²î±ð³§É̵ÄÉ豸ʹÓòî±ðµÄ²Ù×÷ϵͳ, £¬ÕâЩϵͳÃüÁÑù²»Í³Ò» £¬ ¶ÔЭÒéµÄÖ§³Öˮƽ·×ÆçÖÂ,ÉõÖÁÔÚϵͳÂß¼­ÉÏÒ²·×ÆçÖÂ. ±ÊÕßËùÖÎÀíµÄÍøÂçÓÐÊ®¼¸¸öÆ·ÅƵÄϵͳ, £¬ÔÚϵͳÉý¼¶ £¬°æ±¾ÖÎÀí £¬ ©¶´ÓëÄþ¾²ÖÎÀíÉ϶¼Òª»¨·Ñ½Ï¶àµÄʱ¼äºÍ¾«Á¦¡£

SONiC µÄ·ºÆ𠣬½ÏºÃµØ»º½âÁËÕâЩʹ¿à, ËüµÄͳһϵͳ¡¢²»å´»úÉý¼¶¡¢¸ß¶È¶¨ÖÆ»¯µÈµÈÌØÐÔ, ×ÊÖú±ÊÕß½ÚÔ¼ÁË´ó×ÚµÄʱ¼äºÍ¾«Á¦ ¡£

ÕýÎÄ¿ªÊ¼Ç° £¬ ÇëÔÊÐíÎÒ½éÉÜһϿªÔ´¡¢¿ª·ÅÍøÂçºÍ SDN¡£ºóÐøµÄÎÄÕÂÖлá¶ÔÆä¿´·¨Óн϶àµÄÒýÓà £¬ÕÆÎÕÕâЩ¿´·¨ £¬ ÎÒÃÇÉÏÊÖ SONiC µÄËٶȾͿìÁËÐí¶à¡£

1.¿ªÔ´¡¢¿ª·ÅÍøÂçºÍ SDN ¿´·¨

ʲôÊÇ¿ªÔ´ £¬Ê²Ã´ÊÇ¿ª·ÅÐÍÍøÂç £¬Ê²Ã´ÊÇÈí¼þ½ç˵ÍøÂç £¬ËûÃÇÓÖÓÐÈçºÎµÄ¹Øϵ £¬ÓÐÄÄЩ²î±ðÄØ£¿ÎÒÃÇÏÈÀ´¿´Ò»ÏÂÏÂÃæµÄÕâ¸öͼ£º

Ó¢¹ú¡¤ÍþÁ®Ï£¶û(williamhill)ΨһÖÐÎĹٷ½ÍøÕ¾

¿ÉÒÔ¿´³ö £¬ËüÃÇÈýÕß»¥Îª¹Øϵ £¬¿ÉÊÇÓÖÓÐÐí¶àÏàͬºÍ²î±ðµã¡£ÎÒÃÇÏÈÀ´Á˽âһϿ´·¨°É¡£

1.1.SDN (SoftWare-Defined Networking, Èí¼þ½ç˵ÍøÂç)?[1]

SDN (Èí¼þ½ç˵ÍøÂç, SoftWare-Defined Networking )ͨ³£±»ÈÏΪÊÇÒ»ÖÖ½«¿ØÖÆƽÃæÓëÍøÂçÄڵİüת·¢(Êý¾Ý)ƽÃæ½âñîµÄÌåϵ½á¹¹¡£ÔÚÕâÖÖÇé¿öÏ £¬¿ÉÒÔ´ÓÖÐÐÄλÖýøÐÐÍøÂçÅäÖúÍÖÎÀí £¬¶ø²»ÊÇͨ¹ýÍøÂçÁ¬½Óÿ¸öÌض¨µÄ½»»»»ú»òЧÀÍÆ÷¡£ÕâʹµÃÆóÒµºÍЧÀÍÌṩÉÌÄܹ»¿ìËÙÏìÓ¦ÒµÎñÐèÇóµÄ±ä¸ï¡£

SDN µÄÖ÷Òª×é³É²¿·ÖÖ®Ò»ÊÇSDN¿ØÖÆÆ÷¡£Ëüͨ¹ýÓ¦ÓóÌÐò±à³Ì½Ó¿Ú (api) ÓëÓ¦ÓóÌÐòͨÐÅ¡£Óë´Ëͬʱ £¬Ëü»¹Ê¹ÓÃOpenFlow µÈ½Ó¿ÚÓë½»»»»ú»ò·ÓÉÆ÷ͨÐÅ¡£ÒòΪ OpenFlow ЭÒéÊÇÍøÂçÖÐÆձ鱣´æµÄ¿ªÔ´×é¼þµÄÒ»¸öÀý×Ó £¬ËùÒÔÓÐЩÈËÈÏΪ SDN ºÍ¿ªÔ´Èí¼þÊÇÒ»ÑùµÄ¡£Êµ¼ÊÉÏ £¬´ó´ó¶¼ SDN ¼Ü¹¹ÈÔÈ»ÔÚµÚÈý·½»òÉÌÒµÓ²¼þÉÏʹÓñÕÔ´Èí¼þ»ò¿ªÔ´Èí¼þ¡£

1.2.¿ªÔ´ (Open Sources)??[2]

¡°¿ªÔ´¡±Õâ¸öÊõÓïÖ¸µÄÊÇÈËÃÇ¿ÉÒÔÐ޸ĺ͹²ÏíµÄ¹¤¾ß £¬ÒòΪËüµÄÉè¼ÆÊǹûÕæ¿É»á¼ûµÄ¡£Õâ¸öÊõÓïÆðÔ´ÓÚÈí¼þ¿ª·¢ÖÐ £¬Ö¸´´Á¢ÅÌËã»ú³ÌÐòµÄÌض¨ÒªÁ졣ȻÏÖÔÚÌì £¬¡°¿ªÔ´¡±´ú±íÁ˸ü¹ã·ºµÄ¼ÛÖµ £¬ÎÒÃdzÆ֮Ϊ¡°¿ªÔ´·½·¨¡±¡£¿ªÔ´·½·¨¿ÉÒÔÊÇÏîÄ¿¡¢²úÆ·»ò¼Æ»® £¬¾ß±¸ÒÔÏÂÔ­Ôò £¬¿ª·ÅµÄ½»Á÷¡¢Ð­×÷¼ÓÈë¡¢¿ìËÙµÄÔ­ÐÍÉè¼Æ¡¢Í¸Ã÷µÄ¡¢¿É±»ÖÎÀíµÄºÍÃæÏòÉçÇøµÄ¿ª·¢Àú³Ì¡£

1.3.¿ªÔ´Èí¼þ (Open Source Software)?[3]

¿ªÔ´Èí¼þ¼´ÊÇ¿ª·ÅÔ´´úÂëµÄÈí¼þ £¬ÊÇÈκÎÈ˶¼¿ÉÒÔ¼ì²é¡¢Ð޸ĺÍÔöÇ¿Ô´´úÂëµÄÈí¼þ¡£¡°Ô´´úÂ롱ÊÇ´ó´ó¶¼ÅÌËã»úÓû§´Óδ¼û¹ýµÄÈí¼þµÄ×é³É£»ËüÊÇÅÌËã»ú³ÌÐòÔ±¿ÉÒÔÀûÓõĴúÂë £¬ÒԸıäÈí¼þ(³ÌÐò»òÓ¦ÓóÌÐò)µÄÊÂÇé·½·¨¡£¿ÉÒÔ»á¼ûÅÌËã»ú³ÌÐòÔ´´úÂëµÄ³ÌÐòÔ±¿ÉÒÔͨ¹ýÌí¼ÓÌØÐÔ»òÐÞ¸´²»¿ÉÕý³£ÊÂÇéµÄ²¿·ÖÀ´¸ïгÌÐò¡£¡°¿ªÔ´Èí¼þ¡±ÊÇÏà¹ØÓÚ¡°±ÕÔ´Èí¼þ¡±¶øÑ﵀ £¬ÓÐЩÈí¼þµÄÔ´´úÂëÖ»Óд´Á¢ËüµÄ¸öÈË¡¢ÍŶӻò×éÖ¯²Å»ªÐÞ¸Ä £¬²¢ÇÒ¼á³Ö¶ÔËüµÄ¶ÀÍÌ¿ØÖÆ¡£ÈËÃdzÆÕâÖÖÈí¼þΪ¡°×¨Óеġ±»ò¡°±ÕÔ´µÄ¡±Èí¼þ¡£

¿ÉÊÇÏÖÔÚÎÒÃÇÔÚ»¥ÁªÍøÁìÓòÌýµ½µÄ´ó´ó¶¼ Open Source ¶àÖ¸¿ªÔ´Èí¼þ £¬ÆäʵÒѾ­Ô¶Ô¶ËõСÁË Open Source µÄ¿´·¨ÁË¡£

ÔÚÁ˽⿪·ÅÐÍÍøÂç֮ǰ £¬ÐèÒªÁ˽âһϿª·ÅÐÍÍøÂçÊÇÈçºÎÀ´µÄ £¬ÆðÔ´À´×ÔÓÚÒ»¸ö¿ª·ÅÅÌËãÏîÄ¿¡£

1.4. ¿ª·ÅÅÌËãÏîÄ¿ (Open Compute Project)?[4]

¿ª·ÅÅÌËãÏîÄ¿ (OCP £¬Open Compute Project) £¬¿ª·ÅÅÌËãÏîÄ¿ (OCP) ÊÇÒ»¸öЭ×÷ÉçÇø £¬×¨×¢ÓÚÖØÐÂÉè¼ÆÓ²¼þ¼¼Êõ £¬ÒÔÓÐЧµØÖ§³Ö¶ÔÅÌËãÐÍ»ù´¡ÉèÊ©²»¾øÔö³¤µÄÐèÇó¡£ ¹ÊÊÂÔ´ÓÚ2009Äê £¬Facebook ΪÊý°ÙÍòÈËÌṩһÖÖеÄЧÀÍ £¬ÕâÖÖЧÀÍÊÇÒ»¸ö·ÖÏíÕÕƬºÍÊÓƵµÄÉ罻ƽ̨ £¬Æ½Ì¨³ÊÖ¸Êý¼¶Ôö³¤¡£Õ¹ÍûδÀ´ £¬¸Ã¹«Ë¾Òâʶµ½ £¬Ëü±ØÐëÖØп¼ÂÇÆä»ù´¡ÉèÊ©µÄ±¾Ç® £¬Í¨¹ý¿ØÖƱ¾Ç®ºÍÄÜÔ´ÏûºÄÀ´³ÐÔØ´ó×ÚÓ¿ÈëµÄÐÂÓû§ºÍÊý¾Ý¡£¾ÍÔÚÄÇʱ £¬Facebook Æô¶¯ÁËÒ»¸öÏîÄ¿ £¬Éè¼ÆÊÀ½çÉÏ×î½ÚÄܵÄÊý¾ÝÖÐÐÄ £¬ÒÔ¾¡¿ÉÄܵ͵ı¾Ç®´¦ÀíÇ°ËùδÓйæÄ£µÄÊý¾Ý¡£Ò»¸öÓɹ¤³Ìʦ×é³ÉµÄСÍŶӻ¨ÁËÁ½Äêʱ¼äÖØпªÊ¼Éè¼ÆºÍ½¨ÔìÊý¾ÝÖÐÐÄ £¬Éæ¼°ÄÚÈÝ°üÀ¨£ºÈí¼þ¡¢Ð§ÀÍÆ÷¡¢»ú¼Ü¡¢µçÔ´ºÍÀäȴϵͳ¡£Ä¿Ç°Õâ¸öÊý¾ÝÖÐÐÄ×ÅÂäÔÚ¶íÀÕ¸ÔÖݵÄÆÕÁÖά¶û¡£Óë¸Ã¹«Ë¾Ö®Ç°µÄÉèÊ©Ïà±È £¬Õâ¸öȫеÄÊý¾ÝÖÐÐĽÚÄÜÂÊÌá¸ßÁË38% £¬ÔËÓª±¾Ç®½µµÍÁË24% £¬Óë´Ëͬʱ´øÀ´Á˸ü´óµÄÁ¢Òì¡£ 2011Äê £¬Facebook Óë Intel ºÍ Rackspace¡¢¸ßÊ¢ºÍ Andy Bechtolsheim ÅäºÏÌᳫÁË¿ª·ÅÅÌËãÏîÄ¿ £¬²¢½¨Á¢ÁË¿ª·ÅÅÌËãÏîÄ¿»ù½ð»á¡£ÎåÃû³ÉԱϣÍûÔÚÓ²¼þÁìÓòÌᳫһ³¡Ô˶¯ £¬¾ÍÏñÎÒÃÇÔÚ¿ªÔ´Èí¼þÖп´µ½µÄÄÇÖÖ´´Á¢Á¦ºÍЭ×÷ £¬Õâ¾ÍÊÇÕýÔÚ±¬·¢µÄÊÂÇé¡£

1.5.¿ª·ÅÐÍÍøÂç (Open Networking)??[5]

1.5.1.ʲôÊÇ¿ª·ÅÐÍÍøÂç?

¿ª·ÅÐÍÍøÂçµÄ»ù±¾ÐèÒª¼¸¸öÌõ¼þ £¬Ê×ÏÈÊǽ¨Á¢ÔÚ¿ª·Å±ê×¼Ö®ÉÏ £¬Í¨³£ÎÒÃdz£Ìýµ½µÄ¿ª·Å±ê×¼ÀýÈç OpenFlow ЭÒéµÈ £¬ÔÙÓоÍÊÇÄܹ»Ö§³Ö¿ª·ÅÍøÂçµÄÓ²¼þ £¬ÎÒÃdzÆ֮Ϊ¡°ÂãÉ豸¡± £¬ÔÙÆä´Î¾ÍÊÇ¿ÉÒÔ×ÔÓÉÑ¡Ôñ×ÔÖ÷×°ÖõÄÍøÂç²Ù×÷ϵͳ £¬Ö»Óо߱¸ÕâЩ²Å»ªÍ»ÆÆÈí¼þºÍÓ²¼þÔÚÍøÂç²ãÃæµÄ¹ÌÓÐÌØÐÔ £¬Ê¹ÎÒÃÇÄܹ»Äõ½Ò»¸ö¿É½»¸¶µÄ¡¢Áé»îµÄ¡¢¿ÉÉìËõµÄ¡¢¿É±à³ÌµÄÒÔ¼°ÊÊÓ¦ÖÖÖÖÐèÇóµÄÍøÂç¡£

1.5.2.¿ª·ÅÐÍÍøÂç¼òÊ·?[6]

ÎÒÃÇ°Ñ¿ª·ÅÐÍÍøÂç½ç˵Ϊ´Ó2013Ä꿪ʼ £¬ÎªÊ²Ã´¿ª·ÅÐÍÍøÂç½ç˵Ϊ´Ó2013¿ªÊ¼£¿ÔÚ»¥ÁªÍøÉÏÒ»Ö±±£´æ×ÅijÖÖˮƽµÄ¿ª·ÅÐÍÍøÂç £¬Õâ´ÎÎÒÃÇ¿ÉÒÔ°ÑÖصã·ÅÔÚ £¬Ê²Ã´Ê±ºò¿ª·ÅÐÍÍøÂçÓ²¼þºÍÈí¼þ³ÉΪÖ÷Á÷ºÍÒ×ÓÚʹÓà £¬Ê²Ã´Ê±ºò¿ª·ÅÐÍÍøÂç×°ÖÃÇé¿öµÄ½ç˵ºÍÐû²¼¡£Ê×ÏÈÎÒÃÇÀ´¿´Ò»Ï¿ª·ÅÐÍÍøÂçÖбȽÏÖصãµÄ½ç˵£º

1.5.3. ¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿ö (ONIE)??[7]

¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿ö, ONIE ¨C Open Network Install Environment
ÇáÁ¿¼¶ Linux Çé¿ö £¬ÔÊÐí×°Öá¢Ð¶ÔØ¡¢µ÷ÊÔµÄÍøÂç²Ù×÷ϵͳ £¬¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿öʹµÃ¿ª·ÅÐÍÍøÂç³ÉΪ¿ÉÄÜ¡£
ÎÒÃÇͨ¹ýÒ»¸öÀý×ÓÀ´±ÈÕÕһϿª·ÅÐÔÍøÂç×°ÖÃÇé¿öÔÚ½ç˵ǰºóÎÒÃǵÄʹÓÃÉÏÓкβî±ð¡£
¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿öδ½ç˵ǰ £¬ÎÒÃǶÔÍøÂçÉ豸װÖõ÷ÊÔ¿ÉÄܵİ취£º
1)? ¿ª´ò½»»»»úÒƳý CF/SD¿¨
2)? ÔÚ CF/SD ¿¨ÉÏÖÆ×÷¾µÏñÎļþ
3)? °Ñ CF/SD ¿¨·Å»Ø½»»»»ú
4)? Æô¶¯½»»»»ú½øÈë¶Ô»°Ä£Ê½
5)? ¹ÒÔØ CF/SD¿¨
6)? ¿½±´/½âѹ¾µÏñÔÚ CF/SD/¿¨ÉÏ
7)? ÉèÖÃÆô¶¯²ÎÊý
8)? Éú´æºÍÖØÖÃеľµÏñ

¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿ö½ç˵ºó £¬ÎÒÃǶÔÍøÂçÉ豸װÖõ÷ÊÔ¿ÉÄܵİ취£º
1)? ͨ¹ý USB ×°Öÿª·ÅÐÔÍøÂç×°ÖÃÇé¿ö (Èç¹ûÔ¤ÏÈδװÖÿª·ÅÐÔÍøÂç×°ÖÃÇé¿öµÄÇé¿ö)
2)? Æô¶¯½»»»»ú²¢ÔÚ¿ª·ÅÍøÂç×°ÖÃÇé¿öÖÐÑ¡ÔñÐèÒªµÄ²Ù×÷
a)? ×°ÖòÙ×÷ϵͳ
b)? ·­¿ªÃüÁîÐÐģʽ
c)? жÔزÙ×÷ϵͳ
3)? Éý¼¶¿ª·ÅÍøÂç×°ÖÃÇé¿ö
4)? Íê³É

¿ÉÒÔ¿´³ö £¬Í¨¹ý¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿ö £¬¿É¸üΪ±ãµ±µØÖÎÀíÍøÂçÉ豸 £¬Ê¡È¥ÁËƵ·±µÄÓ²¼þ²Ù×÷ £¬´Ó¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿ö²ãÃæʵÏÖÁËÍøÂç²Ù×÷ϵͳµÄ±ä»»¡£

ËäÈ» £¬Òª×é³É¿ª·ÅÐÍÍøÂç £¬³ýÁ˽â¾öÁË×°ÖÃÇé¿ö £¬»¹ÐèÒªÓ²¼þÖ§³Ö £¬ËäÈ»¿ª·ÅÐÍÍøÂçÐèÒª°üÀ¨¿ª·ÅµÄÅÌËãÓ²¼þ/¿ª·ÅµÄÍøÂçÓ²¼þ (Switches)¡£

1.5.4. ¿ª·ÅµÄÍøÂçÓ²¼þ(Open Switches)??[8]

1.5.4.1.ÔõôÀí½âÓ²¼þ¿ª·Å?
¿ª·Å¿ÉÒÔ´ú±íÐí¶à¹¤¾ß £¬´Ó×°Öòî±ðµÄÍøÂç²Ù×÷ϵͳµ½ÏòÃñÖÚÌṩÍêÕûµÄÉè¼Æ°ü £¬×î¾ß´ú±íµÄÊÇ¡°Ô´ÓÚ¿ª·ÅÅÌËãÏîÄ¿ÍøÂç×顱 £¬¶Ô £¬¾ÍÊÇÎÒÃÇÇ°ÃæÌáµ½µÄÄǸö×éÖ¯ Open Compute Project (OCP) £¬ÍøÂç×齨Á¢ÓÚ2013Äê £¬Ó²¼þÉè¼ÆТ¾´Õß°üÀ¨ Edge-Core, Quanta, Facebook, Mellanox µÈ¡£ÆäÖÐËùÓÐÌá½»µÄÉè¼Æ¶¼ÊÇ¿ª·ÅµÄ £¬°üÀ¨¹¹½¨ÍøÂçÉ豸ËùÐèµÄÊý¾Ý¡£

1.5.4.2.³£¼ûµÄ¿ª·ÅÓ²¼þ

ÎÒÃdz£¼ûµÄ¿ª·ÅÓ²¼þÓÐÒÔÏÂÁ½ÖÖ£º
1)? Brite-BOX
Dell ON Series, HPE Altoline, Arista, Broadcom
ÓÉ´÷¶ûºÍ HPE µÈÖªÃû³§ÉÌÏúÊÛµÄÆ·ÅÆÖ§³Ö½»»»»ú
ͨ³£´øÓг§É̵ÄÍøÂç²Ù×÷ϵͳ £¬µ«Ò²¿ÉÒÔÔËÐÐÆäËûÍøÂç²Ù×÷ϵͳ, Ðí¶àÕâÀàÐͽ»»»»úÊÇÓÉ°×Åƽ»»»»ú¸ïжøÀ´¡£

2) White-Box
Mellanox, Edge-Core, Quanta ͨÓõĽ»»»»úºÍÓ²¼þÖ§³Öͨ³£¾ß±¸¿ª·ÅÐÍÍøÂç×°ÖÃÇé¿ö¡£

1.5.5. ¿ª·ÅµÄÍøÂçÈí¼þ (Open Networking Software)??[9]

1.5.5.1. ¿ªÔ´ÍøÂç²Ù×÷ϵͳ
Ç°ÃæÎÒÃǽ²ÁË¿ª·ÅÐÔÍøÂç×°ÖÃÇé¿ö £¬ËüÊǸø¿ª·ÅÍøÂç²Ù×÷ϵͳ׼±¸µÄ £¬ÏÖÔÚÎÒÃÇÀ´Á˽âÒ»ÏÂËü¡£
¿ª·ÅÍøÂç Linux (ONL, Open Networking Linux), ¼´½»»»»úƽ̨֧³ÖµÄÍøÂç²Ù×÷ϵͳ¡£
ONL ÓÉÓÚÁ¼ºÃµÄÌåÏÖ·ºÆðÁË¿ç¶àƽ̨Á÷´«ÏÖÏó £¬NTT, Facebook, Google, Cord, Stratum µÈ¶à¼Ò¹«Ë¾µÄƽ̨¶¼ÌṩÁËÖ§³Ö £¬²¢ÇÒ²î±ðµÄÍøÂçÉ豸¶¼¿ªÊ¼Ö§³Ö ONL¡£

1.5.5.2. ʲôʹµÃÍøÂçÈí¼þ¿ª·Å£¿
ÍøÂç²Ù×÷ϵͳ Linux»¯ £¬Ê¹µÃ Linux Ϊ»ù´¡µÄÍøÂç £¬ÆäÌṩÁËÓ²¼þºÍÍøÂçµÄÁýͳµÄÂß¼­ £¬²¢Ê¹ÓÿªÔ´µÄÍøÂçÕ»¡£
ÀýÈç: FRR, BIRD
ËäÈ»´ó´ó¶¼³§É̶¼ÓÐһЩ·Ç¿ª·ÅµÄÒÀÀµ £¬ÈçÓ²¼þÖ¸Á £¬×ª·¢ ASIC API/SDK £¬ÒÔ¼°Ò»Ð©ÁýͳµÄÍøÂç¿ØÖƼ¯ £¬Ò»°ãÆÕ±é»ùÓÚ Debian Linux,
ÀýÈç: OPX, SONIC, ONL, µÈµÈ¡£
OpenSwitch(OPX), Dell OS10 Open Edition (Debian + CPS) + Quagga/FRR, focused on Dell Open Networking switches
CoRD, ONOS Controller with Indigo agent on switchesFRR, Routing suite used by most open networking software
ÕâÀïÌرðÌá³ö SAI ÊǵÚÒ»¸ö¿çƽ̨µÄ¿ªÔ´½»»»»úÁýͳ¡£(ºóÃæÎÒÃÇ»á½âÊÍʲôÊÇ SAI)

1.6.¿ªÔ´ÍøÂç²Ù×÷ϵͳÆÊÎö??[10]
ÎÒÃÇÏÈÀ´¿´Ò»¸ö¼Ü¹¹Âß¼­À´Àí½âһϿªÔ´ÍøÂç²Ù×÷ϵͳԭÀí£º

Ó¢¹ú¡¤ÍþÁ®Ï£¶û(williamhill)ΨһÖÐÎĹٷ½ÍøÕ¾

ÕâÀï £¬ÎÒÃÇ¿ÉÒÔ¿´³öÂÌÉ«²¿·ÖÊôÓÚ¿ªÔ´²¿·Ö £¬×ÏÉ«²¿·Öʹ±ÕÔ´²¿·Ö £¬ÇàÉ«²¿·Ö Linux £¬Ç³À¶É«ÎªÓ²¼þ²ã £¬´óÖ·ÖΪӲ¼þ £¬Æ½Ì¨ £¬Ó¦ÓòãÈý¸ö²ãÃæ £¬¶øƽ̨²ãÃæµÄÇý¶¯ºÍÓ²¼þ¿ØÖƽӿÚÊDZÕÔ´µÄ £¬¿ÉÊÇÓ¦ÓòãÃæÒѾ­°Ñ´«¸ÐÆ÷½ø³Ì £¬ÍøÂçÖÎÀí £¬ÍøÂç¿ØÖÆЭÒé²ãÁýͳ³öÀ´¡£

1.7.¿ª·ÅµÄÍøÂç²Ù×÷ϵͳ (Network Operating System)??[11]

ËäÈ»ÍøÂç²Ù×÷ϵͳ×é¼þ²¢²»ÊÇÍêÈ«¿ªÔ´ £¬ËäÈ»Ðí¶àоƬ³§É̹ØÓÚ½»»»»úµÄÁýͳ½Ó¿ÚÕÕ¾ÉÖ»Ö§³Ö¶þ½øÖÆ £¬¿ÉÊÇËæ×ÅSAIºÍP4µÄ·ºÆ𠣬ÎÒÃÇ·¢Ã÷ÁËһЩ±ä¸ï £¬ÎÒÃÇÒ²ÓÐÀíÓÉÏàÐÅδÀ´»áÔ½À´Ô½ºÃ £¬ÏÂÃæ¸ø¸÷ÈË×öÒ»¸ö±ÈÕÕ£º

OpenNSL

·Ç¿ªÔ´ ½ö¿ª·ÅAPI
OF-DPA ·Ç¿ªÔ´ ¼æÈÝOpenFlow vX ±ê×¼
SAI ·Ç¿ªÔ´ ¼æÈÝSAI vX ±ê×¼
P4 Runtime ·Ç¿ªÔ´ ¼æÈÝP4 vX ±ê×¼
SDKLT ¿ªÔ´SDK
OtherCavium OpenXPS ¿ªÔ´

¼æÈÝ SAI ±ê×¼

˵µ½¿ª·ÅµÄÍøÂç²Ù×÷ϵͳ £¬²»µÃ²»Ìáµ½ÒÔϼ¸¸öÀý×Ó£ºMicrosoft Azure SonicOpen Network Linux, Network API (SAI, OpenNSL), OpenSwitch (OPX).
Õâ¸öÎÒÃÇ·¢Ã÷Ðí¶àÖ§³ÖSAI±ê×¼ £¬ÄÇôʲôÊÇ SAI?

1.8.SAI (Switch Abstraction Interface)??[12]

½»»»»úÁýͳ½Ó¿Ú (SAI) , ËûÊÇ¿çƽ̨µÄ½»»»»úƽ̨½Ó¿Ú £¬¿ÉÒÔ¿´³ÉÊÇÒ»¸öÓû§¼¶µÄÇý¶¯ £¬½»»»»úÁýͳ½Ó¿Ú (SAI) ÊÇÒ»ÖÖ±ê×¼»¯µÄ API £¬API º­¸Ç¶àÖÖ¹¦Ð§ £¬Ê¹ÓÃÕß²»ÐèÒªµ£ÐÄÓ²¼þ³§É̵ÄÔ¼Êø £¬²»±ØÌåÌùÆä½»»»×¨Óü¯³Éµç·¡¢ÍøÂç´¦Àíµ¥Î»»òÆäÊÇÒ»¸öÈí¼þ½»»»»ú £¬¶¼¿É½ÓÄÉͳһµÄ·½·¨ÖÎÀí¡£ÆäÄ¿µÄ¶¼ÊÇΧÈƼò»¯³§ÉÌ SDK¡£
½»»»»úÁýͳ½Ó¿Ú (SAI) ÔÚËùÓÐÓ²¼þÉÏÔËÐÐÏàͬµÄÓ¦ÓóÌÐò»õ²Ö £¬ÕâʹµÃ SAI ½Ó¿Ú¾ß±¸¼òµ¥ÐÔ £¬Ò»ÖÂÐÔ¡£Ê¹ÓÃÕß²»ÐèÒªÌåÌùÍøÂçÓ²¼þ¹©Ó¦É̵ÄÓ²¼þÌåϵ½á¹¹µÄ¿ª·¢ºÍ¸ïР£¬Í¨¹ýʼÖÕÒ»ÖÂÐԵıà³Ì½Ó¿Ú¿ÉÒÔºÜÈÝÒ×µÄÓ¦ÓÃ×îÐÂ×îºÃµÄÓ²¼þ £¬²¢ÇÒеÄÓ¦ÓóÌÐò¿ÉÒÆÖ²ÐÔ¸üÇ¿ £¬bug ¸üµÍ¡£ÕâÆäÖÐÒÔ Microsoft, Dell, Facebook, Broadcom, Intel, MellanoxΪ´ú±í¡£

1.8.1.SAI Éú³¤Ñ¸ËÙ

Ó¢¹ú¡¤ÍþÁ®Ï£¶û(williamhill)ΨһÖÐÎĹٷ½ÍøÕ¾

1.8.2.SAI ÁýͳµÄ½»»»»úϵͳµÄϵͳ¼Ü¹¹

Ó¢¹ú¡¤ÍþÁ®Ï£¶û(williamhill)ΨһÖÐÎĹٷ½ÍøÕ¾

ÎÒÃÇ¿ÉÒÔ¿´µ½ SAI Êǽ¨Á¢ÔÚ¿ª·ÅµÄ ASIC Áýͳ֮ÉϵÄ £¬API ͨ¹ý C ÓïÑÔ½Ó¿ÚÓëÍøÂçרÓÃоƬͨÐÅ £¬½Ó¿Ú´óÖ·ÖΪ¼¸À๦Ч£º
ÐëÒª¹¦Ð§ £¬Ñ¡Å书Ч £¬×Ô½ç˵¹¦Ð§

1.8.3.SAI Ö§³ÖµÄ¹¦Ð§ÕªÒª
ÎÒÃÇÀ´¿´Ò»Ï SAI Ö§³ÖµÄ¹¦Ð§ÕªÒª£º

ÐëÒª¹¦Ð§ ÃèÊö
sai_switch_api_t Top-level switch object
sai_port_api_t Port management
sai_fdb_api_t Forwarding database
sai_vlan_api_t VLAN management
sai_vr_api_t Virtual router
sai_route_interface_api_t Routing interface
sai_route_api_t Routing table
sai_neighbor_api_t Neighbor table
sai_next_hop_t Next hop table
sai_next_hop_api_t Next hop group
sai_qos_api_t Quality of service
sai_acl_api_t ACL management
LAG, STP, Control packet send/recevie

²Î¿¼ÎÄÏ×£º
[1] https://en.wikipedia.org/wiki/Software-defined_networking
[2] https://en.wikipedia.org/wiki/Open_source
[3] https://en.wikipedia.org/wiki/Open-source_software
[4] https://www.opencompute.org/about
[5] https://aptira.com/what-is-open-networking/
[6] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[7] https://www.opencompute.org/wiki/Networking/ONIE
[8] https://www.openswitch.net/about/
[9] http://opennetlinux.org/
[10] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[11] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[12] https://www.opencompute.org/documents/switch-abstraction-interface
[13] https://github.com/Azure/SONiC/wiki/Architecture
[14] https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning

ÏÂһƪ
ÐÂÒ»´ú¿ªÔ´ÍøÂç²Ù×÷ϵͳSONiC Ö®¶þ
ÉÏһƪ
ר·ÃÍþÁ®Ï£¶û¹ÙÍø CEO ¿ÂÎĴÖÎÀíÊÇƽºâµÄÒÕÊõ
ÍøÕ¾µØͼ