ãã®æçš¿ã§ã¯ãã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã«æé©ãªãããã¯ãŒã¯ãœãªã¥ãŒã·ã§ã³ã®æ€çŽ¢ãšãOpenFlowã䜿çšããããšã«ããçç±ã«ã€ããŠèª¬æããŸãã

ã¯ããã«
ã¯ã©ãŠãã®æŠå¿µã¯ããªãœãŒã¹ã®å質ä¿èšŒãšçžäºåé¢ãšãã2ã€ã®æœè±¡åãšå¯æ¥ã«é¢é£ããŠããŸãã ãããã®æŠå¿µãã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ã®ãããã¯ãŒã¯ããã€ã¹ã«ã©ã®ããã«é©çšãããããæ€èšããŠãã ããã ãªãœãŒã¹ã®åé¢ã¯ ã次ã®ããšãæå³ããŸãã
- ãªãããŸãé²æ¢ã
- ãã©ã€ããŒããããã¯ãŒã¯ã»ã°ã¡ã³ãã®å²ãåœãŠã
- ãããªãã¯ã»ã°ã¡ã³ãããã£ã«ã¿ãªã³ã°ããŠãå€éšã®åœ±é¿ãæå°éã«æããŸãã
ãªãœãŒã¹ã®ä¿èšŒå質㯠ãäžè¬çãªæå³ã§ã®QoSã§ããã€ãŸããã¯ã©ãŠããããã¯ãŒã¯å ã§å¿ èŠãªåž¯åå¹ ãšå¿ èŠãªå¿çãæäŸããŸãã 次ã«ãã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã«ãããäžèšã®æŠå¿µã®å®è£ ã®è©³çŽ°ãªåæã§ãã
ãã©ãã£ãã¯åé¢
- OpenVSwitchã®iptables / ebtablesãŸãã¯éçã«ãŒã«ã䜿çšããã¹ããŒãã£ã³ã°é²æ¢ïŒæãå®äŸ¡ãªãœãªã¥ãŒã·ã§ã³ã§ãããå®éã«ã¯äžäŸ¿ã§ã-Linuxããªããžã«ãŒã«ãlibvirtã®nwfilterã¡ã«ããºã ã䜿çšããŠäœæãããä»®æ³ãã·ã³ã®èµ·åæã«èªåçã«åŒ·åãããå Žåãovsã®å Žåãéå§æéã远跡ããŠovsããã§ãã¯ããå¿
èŠããããŸããŸãã¯ãã¹ã€ããå
ã®å¯Ÿå¿ããã«ãŒã«ãæŽæ°ããŸãã ã¢ãã¬ã¹ã®è¿œå ãŸãã¯åé€ããŸãã¯ä»®æ³ãã·ã³ã®ç§»è¡ã¯ãã©ã¡ãã®å ŽåãéèŠãªã¿ã¹ã¯ã«å€ããããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®ããžãã¯ã«ç§»è¡ããŸãã ãµãŒãã¹ãå
¬éããŠäœ¿çšããããã«ãnwfilter [ 1 ]ã䜿çšããŸãããããœãªã¥ãŒã·ã§ã³å
šäœã®æè»æ§ãäžååãªãããOpenFlow 1.0ãžã®åãæ¿ããäœåãªããããŸããã ãŸãããã¹ããããã¯ãŒã¯ã¹ã¿ãã¯ïŒmacvtap / vfïŒãåé¿ãããã¯ãããžãŒã®ããããªã³ã¯ã䜿çšããŠãçºä¿¡ãã©ãã£ãã¯ããã£ã«ã¿ãªã³ã°ããããªããšããŸããã¯ãªæ¹æ³ã«èšåãã䟡å€ããããŸããããã¯ãé«ãåæ¥éèŠã«ãããããããäžåºŠã¯ã«ãŒãã«ã«åãå
¥ããããŸããã§ããã
- ä»®æ³ãã·ã³ã€ã³ã¿ãŒãã§ã€ã¹ãããã©ãã£ãã¯ãã³ããªã³ã°ã¡ã«ããºã ã®ããããã䜿çšããŠä»®æ³ãã·ã³ããŒããããŒãã¬ãã«ã§ç§»æ€ããå Žåãã©ãã¯ã¬ãã«ã¹ã€ããïŒToRã¹ã€ããïŒã®ã«ãŒã«ã䜿çšããã¹ããŒãã£ã³ã°é²æ¢ïŒäžå³ãåç
§ïŒã ãã®ãããªãœãªã¥ãŒã·ã§ã³ã®å©ç¹ãšããŠãã¹ã€ããã®ããžãã¯ã®çŠç¹==ã³ã³ãã¥ãŒãã£ã³ã°ããŒãã®ãœãããŠã§ã¢ã¹ã€ããããæ¡æ£ãããå¿
èŠããªãããšã«æ³šç®ã§ããŸãã 1ã€ã®ã³ã³ãã¥ãŒãã£ã³ã°ããŒãã®ãã·ã³éã®ãã©ãã£ãã¯ã«ãŒãã¯åžžã«ã¹ã€ãããééãããããå¿
ããã䟿å©ã§ã¯ãªãå ŽåããããŸãã
ToRãã£ã«ã¿ãªã³ã°Â©networkheresy
- OpenFlowãããã¯ãŒã¯ã®ãã£ãŒã«ãããã§ãã¯ãããšãã®ã¹ããŒãã£ã³ã°é²æ¢-ç©çããã³ä»®æ³ã®ãã¹ãŠã®ã¹ã€ãããããã©ãã£ãã¯ãã£ãŒã«ãã®ãªãã€ã¬ã¯ããšå€æã«å ããŠãèšç®ããŒãã®ãœãããŠã§ã¢ã¹ã€ããã®ã¬ãã«ã§ã¯ãªã¢ããã³ã³ãããŒã©ãŒã®ã°ã«ãŒãã«æ¥ç¶ãããŠããå Žåã éåžžã®ã¹ã€ããå
ã§ã®ããŒã¿ã°ã©ã ã®éä¿¡ããå§ãŸã絶察çã«ãã¹ãŠã®ããžãã¯ãã³ã³ãããŒã©ãŒã«è»¢éããããããããã¯å¯èœãªãªãã·ã§ã³ã®äžã§æãè€éã§æè»ã§ãã äžå®å
šãŸãã¯äžè²«æ§ã®ãªãã«ãŒã«ã¯ãæ¥ç¶æ§ã®æ
éãŸãã¯åé¢ã®æ
éã®ããããã«ã€ãªããå¯èœæ§ããããŸãããã®ãããNICE [ 2 ]ã®ãããªãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãåå¿æ§ïŒã¹ã€ããããã®èŠæ±ã«å¿ããŠåçã«èšå®ïŒã®å²åãé«ãã·ã¹ãã ããã¹ãããå¿
èŠããããŸã
- ãããã¯ãŒã¯ã»ã°ã¡ã³ãã®éžæã¯ã倧èŠæš¡ãªåçš®æ§é ã§å®è·µããããœãªã¥ãŒã·ã§ã³ã§ãããä»®æ³ãã·ã³ã®ã°ã«ãŒãã«ã¯ãç©çââãã·ã³ïŒããã³ç©çã¹ã€ããã®ããŒãïŒãŸãã¯ä»»æã®ã¿ã€ãã®ã«ãã»ã«åã¿ã°ïŒvlan / vxlan / greïŒãžã®ãã€ã³ãã£ã³ã°ãå²ãåœãŠãããŸãã ãã£ã«ã¿ãªã³ã°ã®å¢çã¯L2ã»ã°ã¡ã³ãã®ãžã£ã³ã¯ã·ã§ã³ã«ãããŸããã€ãŸãããµãããããŸãã¯ãµããããã®ã»ãããã»ã°ã¡ã³ãã«å²ãåœãŠããããããã眮ãæããããšãäžå¯èœãã©ããã¯ãããšãã°Novaãã€ããªãããã©ã€ããŒã䜿çšããªãOpenStack Neutronã®ã«ãŒãã£ã³ã°ã«ãã£ãŠæ±ºå®ãããŸã[ 3 ]ã ãã®ã¢ãããŒãã¯ãçè«äžã®æ·±ãé¢å¿ãåŒããã®ã§ã¯ãããŸããããä»®æ³ååã®æ代ããåãç¶ãããå¹
åºãå®çšçãªæ®åçãæã£ãŠããŸãã
亀é管ç
ãããã¯ãŒã¯ãªã³ã¯ãæ倧éã«æŽ»çšããããã«ã«ãŒããæé©åããïŒèšãæãããšãçžäºäœçšãããšã³ããã€ã³ãã®ãã¹ãŠã®ãã¢ã®éã¿ãã€ãŸãQoSåªå 床ãèæ ®ããŠãæå°ã«ããåèš[ 4 ]ã®æ倧å€ãèŠã€ããïŒã¯ãåæ£ãããã¯ãŒã¯ã§æãé£ããã¿ã¹ã¯ãšèŠãªãããŸãã ãã®åé¡ã解決ããããã«èšèšãããIGPã¯äžè¬ã«ååãªæè»æ§ããããŸããããã©ãã£ãã¯ã¯äºåã«å²ãåœãŠãããQoSã©ãã«ã«åºã¥ããŠã®ã¿ãœãŒãã§ããåçãªåæãšãã©ãã£ãã¯ã®ååé ã«ã€ããŠèããå¿ èŠã¯ãããŸããã OpenFlowã®å Žåãåã ã®ãã©ãã£ãã¯èŠçŽ ãåæããæ段ã¯ãããã³ã«ã®äžå¯æ¬ ãªéšåã§ããããããã®åé¡ã解決ããã®ã¯éåžžã«ç°¡åã§ã-åã ã®ãããŒ[ 5ã6 ]ã®æ£ããæ©èœããåé¡åãæ§ç¯ããã ãã§ååã§ãã ãã®å Žåã®OpenFlowã®ãã1ã€ã®æ確ãªå©ç¹ã¯ã転éæŠç¥ã®éäžèšç®ã§ãIGPæšæºã®ãããã«ãå«ãŸããŠããªãå€ãã®è¿œå ãã©ã¡ãŒã¿ãŒãèæ ®ããããšãã§ããããšã§ãã
ç°çš®ã³ã³ãã³ããå«ãå°ããªããŒã¿ã»ã³ã¿ãŒã®ãããã¯ãŒã¯ã®èšèšïŒãã·ã³ã°ã«ãŒããã©ãã¯ã«ç©ççã«ãªã³ã¯ããã«è€æ°ã®å°å£²ãŠãŒã¶ãŒãåæã«ç¶æïŒã¯ãæ¢åã®ã¡ã«ããºã ã®1ã€ã䜿çšããŠåæ£L2-over-L3ãããã¯ãŒã¯ïŒãªãŒããŒã¬ã€ãããã¯ãŒã¯ïŒ[ 7 ]ãæ§ç¯ããã¿ã¹ã¯ã«ã€ãªãããŸãåŸæ¥ã®æ¹æ³ã§ã¯ã1ã€ã®ãããŒããã£ã¹ãã»ã°ã¡ã³ãã«æ°äžå°ã®ä»®æ³ãã¹ããæè¡çã«é 眮ããããšã¯äžå¯èœã§ãã 瀺ãããæè¡ã«ããã転éããžãã¯ããã¢ã³ããŒããã§ããŸããããã¯ãæ©åšããŠãŒã¶ãŒãããã¯ãŒã¯ã®ãã©ã€ããŒãïŒããã³ãããªãã¯ïŒã»ã°ã¡ã³ãã®åå¥ã®ã¢ãã¬ã¹ã§ã¯ãªãããã¹ãã°ã«ãŒãã«å¯Ÿå¿ããã©ãã«ã§åäœããããã§ãã äœã³ã¹ããšæ¯èŒçç°¡åãªå®è£ ã®èåŸã«ãå°ãªããšããããã¯ãŒã¯æ©åšã®ã¡ãŒã«ãŒãšç©¶æ¥µã®é決å®æ§ãžã®ãªã³ã¯ããããŸã-詳现ãç¡èŠãããšããã¹ãŠã®ãªãŒããŒã¬ã€ãããã³ã«ã¯å¥ã®ã©ãã«å ã§ãã¬ãŒãã³ã°ãããã¹ã€ãããæäŸãããªãŒããŒã¬ã€ã»ã°ã¡ã³ãå ã®ãã©ãã£ãã¯ãæé©åããéã«ãã¢ã³ãã£ãã«ããå°é£ãåŒãèµ·ããå¯èœæ§ããããŸã第3ã¬ãã«ã®ã«ãŒãã£ã³ã°ãããã³ã«ãšãªãŒããŒã¬ã€ã¡ã«ããºã ã OpenFlowãéžæãããšããã¹ãŠã®ãã©ãã£ãã¯ç®¡çã1ã€ã®ã¬ãã«ã®ææ決å®-ãããã¯ãŒã¯ã³ã³ãããŒã©ãŒã«åæžãããŸãã ãã¡ããããªãŒããŒã¬ã€ãŸãã¯ãããã«ä»£ããç¬èªã®ã¡ã«ããºã ã¯ãã¹ã€ããã¢ã°ãªã²ãŒã¿ãŒïŒä»¥äžã®å³ã®ã¹ãã€ã³ïŒã®ã«ãŒã«ã®éãæžããäžã§åã圹å²ãæãããToRã¹ã€ããïŒãªãŒãïŒã®ãã©ãã£ãã¯æ¹åã®æé©åã¯ãä»»æã®ã¡ããªãã¯ã»ããã«åºã¥ããŠçºçããŸããåçŽãªãã©ã³ã·ã³ã°ããïŒäŸãã°ãECMPã§ïŒã

2ã¬ãã«ã®ã¹ãã€ã³ãªãŒã
Openflow
æåã®å·¥æ¥çã«å©çšå¯èœãªããŒãžã§ã³1.0ã®OpenFlowæšæºã¯ã1幎以äžåã«é補ã¹ã€ããã®äžéšãšããŠå©çšå¯èœã«ãªããŸãããããã®ããŒãžã§ã³ã«ã¯ã倧éæ¡çšã劚ããããã€ãã®ã¢ãŒããã¯ãã£äžã®å¶éããããæãåé¡ã®ãããã®ã¯ãåŠçã®ããã®è€æ°ã®ã·ãŒã±ã³ã·ã£ã«ããŒãã«ã®æ¬ åŠãã€ãŸã1ã€ã®ã«ãŒã«ã察å¿ããŠããããšã§ãè¿œå ã®å¶ç¶ã®äžèŽãèæ ®ããã«ãçžäºäœçšãããšã³ããã€ã³ãã®æ£ç¢ºã«1ã€ã®ãã¢[ 8 ]ã OpenFlow 1.0ãããã¢ã¯ãã£ãã«ïŒã€ãŸããå¿ èŠãªãã¹ãŠã®ã«ãŒã«ãäºåã«äœæããŠïŒäœ¿çšãããšãäžã®å³ã«ç€ºãããã«ãçžäºäœçšãããã¹ãã®æ°ããã«ãŒã«ã®æ°ã2次çã«å¢å ããŸãã

1.0ãš1.3ã®æ¯èŒÂ©Broadcom Corp
ç¶æ³ããæãåºãããã®éšåçãªæ¹æ³ã¯ãåŠç¿ã¹ã€ããã¡ã«ããºã ã䜿çšããããšã§ããã€ãŸããã¹ã€ãã転éããŒãã«ã«æ¢ã«é 眮ãããŠããã«ãŒã«ãšäžèŽããªãå Žåãããã³ç¹å®ã®TTLãã¹ã€ããããåé€ãããåŸã«ã«ãŒã«ãèŠæ±ããããã³ã«ãOpenFlowã¹ã€ãããªã¢ã¯ãã£ãæäœã䜿çšãããŸãã åé€æŠç¥ã¯ããããŒãã-ã«ãŒã«èšå®åŸã®æå®æéåŸã®åé€ããŸãã¯ããœããã-ç¹å®ã®ã¹ããªãŒã ã®ãå éšãã§äžå®æéã¢ã¯ãã£ããã£ããªãå Žåã«ã®ã¿åé€ããããšãã§ããŸãã OFã®äœ¿çšãéå§ããæç¹ã§ã¯ããªãŒãã³ãœãããŠã§ã¢ã³ã³ãããŒã©ãŒã¯ããããæ°ããããŒãžã§ã³ããµããŒãããŠããŸããã§ããããåè¿°ã®å¶åŸ¡ã¢ãããŒãã®æè»æ§ã®è¿œæ±ã¯1.0æšæºã«çŠç¹ãåãããŠããŸããã åŠç¿ã¹ã€ããã¢ãã«ã¯ãããªãã®éã®ã¯ãŒã¯ããŒãã§æ£åœåãããŸããã¹ã€ããã¬ãã«ã§æ¯ç§æ°çŸããã³æ°åã®äžæã®èŠæ±ãçæããã«ãŠã³ã¿ãŒãªã©ã®ã¢ããªã±ãŒã·ã§ã³ã®ã¿ãä¹ãè¶ããããªãé害ã«ãªããŸãããŸããè¿ éãªã¹ããŒãã£ã³ã°æ»æã®å¯Ÿè±¡ãšãªããŸã-äžæã®IP / MACèå¥åãæã€ãã±ãããçæããã¯ã©ã€ã¢ã³ããå°ãªããšããèšç®ããŒãã¬ãã«ã®ã¹ã€ãããåäœäžèœã«ããããšãã§ããŸããPACKET_INïŒã³ã³ãããŒã©ãŒã®ã¹ããªãŒã ãåŠçããããã®ã¡ãã»ãŒãžïŒãå¶éããåã«æ°ãã€ããªããã°ãã»ã°ã¡ã³ãå šäœ NTãããã¯ãŒã¯ã
ãããã¯ãŒã¯ã®ãã¹ãŠã®èŠçŽ ïŒOpenVSwitchã«åºã¥ãïŒãæšæº1.3ã䜿çšããã®ã«ååãªæŽæ°ãåãåã£ãåŸãããã«åãæ¿ããŠã³ã³ãããŒã©ãŒãã¢ã³ããŒããã転éããã©ãŒãã³ã¹ïŒå¹³åppsã«ããåèšç®ïŒã1.5ãã2æ¡åäžãããŸããå§åçãªéã®ãã©ãã£ãã¯ã«å¯ŸããŠããã¢ã¯ãã£ããªãããŒã«åãæ¿ããããšãèæ ®ããŠãã ããã åæ£ãã©ãã£ãã¯åæã®å¿ èŠæ§ïŒåŸæ¥ã®ãã¡ã€ã¢ãŠã©ãŒã«ãåããå°çšã®åé¡ããŒããä»ããŠããªã¥ãŒã å šäœããã³ãã³ã°ããããšãªãïŒã¯ããªã¢ã¯ãã£ããããŒã®äœå°ãæ®ããŸãã
ãã¬ãŒã³ãã«ã€ããŠ
æé ãªäŸ¡æ Œã®ToRãã¯ã€ãããã¯ã¹ãããã¯ãŒã¯æ©åšã®ã¡ãŒã«ãŒã«ããææ°ã®OpenFlowæšæºã®ãµããŒã[ 9 ]ã¯ãçŸåšãPica8ã¹ã€ããã®WindriverïŒIntelïŒãCumulusïŒDellïŒããã³Debianã«åºã¥ããœãªã¥ãŒã·ã§ã³ã«éå®ãããŠããŸããç¬èªã®äºææ§ã®ãªãæ¡åŒµæ©èœ/ã¡ã«ããºã ã æŽå²çãªçç±ãããPica8ãToRã¹ã€ãããšããŠäœ¿çšããŸãããGPLãã£ã¹ããªãã¥ãŒã·ã§ã³ãææãµãã¹ã¯ãªãã·ã§ã³ã«ç§»è¡ããã¡ãŒã«ãŒã®ããªã·ãŒã«ãããæœåšçãªçžäºäœçšã®é åãéåžžã«å¶éãããŸãã çŸåšããªãŒãã³ãªIntel ONSãŸãã¯Dellãã©ãããã©ãŒã ïŒ Trident IIã«åºã¥ãïŒã¯ãéåžžã«æé ãªäŸ¡æ ŒïŒ4 * 40G + 48 * 10Gã§<10,000ãã«ïŒã§ã1ã6 Tbã®1ã€ã®ç£æ¥ã©ãã¯ã®èŠæš¡ã§æ°äžå°ã®ä»®æ³ãã·ã³ã®ãã©ãã£ãã¯ã管çã§ããŸãã OpenFlowïŒ1.3+ïŒã䜿çšããã¡ã¢ãªã
æ¯ãè¿ã£ãŠã¿ããšããã®ãããªéçºã®è¿œå ã®å©ç¹-ãœãããŠã§ã¢å®çŸ©ã®ãµããããã®åé¡ãžã®æ²¡å ¥ãšç¬èªã®ãšã³ã·ã¹ãã ã®æ¡å€§ã«æ³šç®ããŸãã ãã©ãã£ãã¯ç®¡çã«OpenFlowã䜿çšããããŒã¿å¯çšæ§ãé«ããããã«CephãœãããŠã§ã¢ã¹ãã¬ãŒãžã䜿çšããããšã§ã ãœãããŠã§ã¢å®çŸ©ã®ããŒã¿ã»ã³ã¿ãŒã®å®è£ ãšããŠèªåèªèº«ã宣èšããããšãã§ããŸãããçæ³ãžã®éã¯ãŸã ãŸã ãããããããŸãã
ãæž èŽããããšãããããŸããïŒ
åç §è³æ
[1]ã libvirt-nwfilter
[2]ã ããã
[3]ã Openstack Neutron
[4]ã æ倧æµé/æå°ã«ãã
[5]ã B4-OpenFlowäžã®Google WANãããã¯ãŒã¯
[6]ã QoSæåã®TEã¢ã«ãŽãªãºã ã®1ã€ã®è©³çŽ°åæ
[7]ã ãªãŒããŒã¬ã€ãããã¯ãŒã¯ã«é¢ããè¯ãèšäº
[8]ã OFïŒ1.0察1.3ã®ããŒãã«ããã
[9]ã ãã¯ã€ãããã¯ã¹ã¹ã€ãããé©ããŠããçç±