Ä¿¡¡Â¼

1 OpenFlow.. 1

1.1 Ö°ÄܽéÉÜ... 1

1.1.1 OpenFlow¸ÅÊö... 1

1.1.2 ¹¤×÷µÀÀí... 1

1.1.3 ºÍ̸¹æ·¶... 4

1.2 ÅäÖÃÏ޶ȺÍÁìµ¼... 4

1.3 ÅäÖù¤×÷¸ÅÀÀ... 4

1.4 ÅäÖÃOpenFlow.. 4

1.4.1 Ö°Äܼò½é... 4

1.4.2 ÅäÖÃOpenFlow.. 4

1.4.3 ÅäÖÃOpenFlow¶à½ÚÔìÆ÷ģʽ... 5

1.4.4 ÅäÖÃOpenFlowËͽÚÔìÆ÷±¨ÎĵÄvlan±êÇ©... 5

1.4.5 ÅäÖÃOpenFlow±¨ÎÄ´¦ÖÃģʽ... 6

1.4.6 ÅäÖÃOpenFlowÔ´IP. 6

1.5 ¼à¶½ÓëÊØ»¤... 6

1.6 µäÐÍÅäÖþÙÀý... 7

1.6.1 ¼¯ÖнÚÔìÅäÖþÙÀý... 7

 


1 OpenFlow

1.1?? Ö°ÄܽéÉÜ

1.1.1? OpenFlow¸ÅÊö

OpenFlowÊÇSDN(Software Defined Network£¬Èí¼þ½çËµÍøÂç)¼Ü¹¹Öнç˵µÄÒ»¸ö½ÚÔìÆ÷Óëת·¢²ãÖ®¼äµÄÍøÂç´«ÊäºÍ̸¡£OpenFlowÔÊÐí½ÚÔìÆ÷Ö±½Ó½Ó¼ûºÍ²Ù×÷ÍøÂçÉ豸µÄת·¢Ã棬ÕâЩÉ豸¿ÉÄÜÊÇÎïÀíÉϵÄ£¬Ò²¿ÉÄÜÊÇÐé¹¹µÄ¡£

OpenFlowͨ¹ý³ß¶ÈµÄͨѶºÍ̸½«É豸µÄ½ÚÔìÃæºÍת·¢ÃæÏà·ÖÀ룬ÈÃÍøÂçÉ豸רһÓÚת¿¯ÐÐΪ£¬¶øÕûÍøµÄ½ÚÔìÐÐΪ¼¯ÖÐÔÚһ̨½ÚÔìÆ÷ÉÏ¡£É豸Óë½ÚÔìÆ÷³ÉÁ¢OpenFlowÏνÓ£¬ÓɽÚÔìÆ÷ÌìÉúת·¢¹æ¶¨²¢Í¨¹ýOpenFlowÏνÓÒÔÁ÷±íµÄ´ó¾ÖÏ·¢¸øÍøÂçÉ豸£¬´Ó¶øÊµÏÖÍøÂç½ÚÔìÃæµÄ¼¯ÖÐÖÎÀí£¬½µµÍÊØ»¤ÖÎÀí³É±¾¡£

1.1.2? ¹¤×÷µÀÀí

1.    ¸ù»ù¸ÅÏë

l  Á÷±í

Á÷±íÊÇÉ豸½øÐÐת·¢Õ½Êõ½ÚÔìµÄÖ÷ÌâÊý¾Ý½á¹¹£¬É豸ƾ¾ÝÁ÷±íÀ´¾ö²ß¶Ô½øÈëÉ豸µÄÍøÂçÁ÷Á¿²ÉÈ¡¶ÔÓ¦µÄÐÐΪ¡£

һ̨É豸Äܹ»Ô̺¬Ò»¸ö»òÕß¶à¸öÁ÷±í£¬µ±Ç°É豸ֻ֧³ÖÒ»¸öÁ÷±í¡£Ò»¸öÁ÷±íÓɶà¸öÁ÷±íÏî×é³É¡£

ÔÚOpenFlowºÍ̸ÖУ¬Á÷±íÏîÓÉÈý¸ö²¿ÃÅ×é³É£ºheader¡¢counter¡¢action¡£

*        header£º½ç˵ÁËÁ÷±íÏîµÄË÷Òý£¬Í¨³£Óɱ¨Îĵĸ÷¸ö×Ö¶Î×é³É£¬ºÃ±ÈÔ´MACµØÖ·¡¢Ö÷ÕÅMACµØÖ·¡¢ÒÔÌ«ÍøºÍ̸ÀàÐÍÓò¡¢Ô´IP¡¢Ö÷ÕÅIP¡¢IPºÍ̸ÀàÐÍÓò¡¢Ô´¶Ë¿Ú¡¢Ö÷ÕŶ˿ڵȸ÷¸ö×ֶΣ¬ÓÃÓÚÆ¥Å䱨ÎÄ,±¨ÎÄÉäÖÐÁ÷±íÏîµÄHeader×Ö¶Î,ÔòÅú×¢±¨ÎÄÆ¥Åäµ½¸ÃÁ÷±íÏî¡£

*        counter£ºÍ³¼Æ¼ÆÊý.ÓÃÓÚͳ¼ÆÓм¸¶à¸ö±¨ÎĺÍ×Ö½ÚÆ¥Åäµ½¸ÃÁ÷±íÏî¡£

*        action£º±¨ÎÄÆ¥ÅäºóµÄ×÷Ϊ£¬ÓÃÓÚ½ç˵¶ÔÆ¥Åäµ½Á÷±íÏîµÄ±¨ÎĵÄת¿¯ÐÐΪ£¬ÈçÅׯú¡¢¹ã²¥¡¢×ª·¢µÈ¡£

l  ÐÂÎÅ

OpenFlowºÍ̸֧³ÖÈýÖÖÐÂÎÅÀàÐÍ£ºcontroller-to-switch£¬asynchronousºÍsymmetric£¬Ã¿Ò»ÀàÐÂÎÅÓÖÓжà¸ö×ÓÐÂÎÅÀàÐÍ¡£¸÷ÐÂÎŵĵ¥Ò»ÃèÊöÈçÏ£º

*        controller-to-switch£ºÓɽÚÔìÆ÷ÌáÒ飬ÓÃÀ´ÖÎÀíÒÔ¼°»ñÈ¡ÍøÂçÉ豸״̬¡£ÐÂÎÅ×ÓÀàÐÍ×¢Ã÷¼û±í1-1¡£

*        asynchronous£ºÓÉÍøÂçÉ豸ÌáÒ飬ÓÃÀ´½«ÍøÂçÊÂÎñ»òÍøÂçÉ豸״̬±ä¶¯£¨×î³£¼ûµÄÊÇÍøÂç½Ó¿ÚµÄlink up/down±ä¶¯£©¸üе½½ÚÔìÆ÷¡£×ÓÐÂÎÅÀàÐÍ×¢Ã÷¼û±í1-2¡£

*        symmetric£º¿ÉÓÉÉ豸»ò½ÚÔìÆ÷ÈÎÒ»¶ËÌáÒé£¬ÖØÒªÓÃÓÚºÍ̸³õʼµÄÎÕÊÖÒÔ¼°ÏνÓ״̬̽²â¡£×ÓÐÂÎÅÀàÐÍ×¢Ã÷¼û±í1-3¡£

±í1-1     controller-to-switchÐÂÎÅ×ÓÀàÐÍ×¢Ã÷±í

×ÓÀàÐÍ

ÃèÊö

Features

ÓÃÓÚ½ÚÔìÆ÷·¢ËÍFeaturesÒªÇóÀ´ÏàʶÉ豸µÄÄÜÁ¦£¬É豸Ӧ´ð

Configuration

ÓÃÓÚ½ÚÔìÆ÷²éÎÊÉ豸µÄÅäÖã¬É豸ÔÚÊÕµ½²éÎÊʱӦ´ð

Modify-State

ÓÃÓÚÖÎÀíÉ豸µÄ״̬,ÈçÁ÷±íÏîºÍ¶Ë¿Ú״̬£¬¸ÃÐÂÎÅÖØÒªÓÃÓÚÔö³¤¡¢É¾³ý¡¢Åú¸ÄÉ豸ÄÚµÄÁ÷±í±íÏî¡¢×é±í±íÏîºÍÉ豸¶Ë¿ÚÊôÐÔ

Multipart

ÓÃÓÚ½ÚÔìÆ÷ÒªÇóÉ豸¸÷·½ÃæÐÅÏ¢£¬È統ǰÅäÖá¢Í³¼ÆÐÅÏ¢

Packet-Out

ÓÃÓÚ½ÚÔìÆ÷ÏòÉ豸·¢Ëͱ¨ÎÄ

Barrier

ÓÃÓÚÈ·ÈÏBarrierÐÂÎÅ֮ǰµÄ×÷ΪÊÇ·ñ³É¹¦¡ £½ÚÔìÆ÷·¢ËÍBarrierÒªÇóÐÂÎÅ,µ±É豸ȷÈÏ֮ǰµÄ×÷Ϊ¶¼Òѳɹ¦Ê±»ØÓ¦´ðBrarrierÓ¦´ðÐÂÎÅ

Role-Request

ÓÃÓÚÉ豸ҪÇó½ÚÔìÆ÷µÄ½ÇÉ«

Asynchronous-Configuration

½ÚÔìÆ÷ʹÓøÃÐÂÎÅÉèÖÃÒì²½ÐÂÎŹýÂËÆ÷,ÓÃÓÚ½Ó¹ÜÖ»µ«Ô¸½Ó¹Üµ½µÄÒì²½ÐÂÎű¨ÎÄ,»òÏòÉ豸²éÎʸùýÂËÆ÷

 

±í1-2     asynchronousÐÂÎÅ×ÓÀàÐÍ×¢Ã÷±í

×ÓÀàÐÍ

ÃèÊö

Packet-in

ÓÃÓÚÉ豸·¢Ëͱ¨Îĵ½½ÚÔìÆ÷

Flow-Removed

¹«¸æ½ÚÔìÆ÷½«Ä³¸öÁ÷±íÏî´ÓÁ÷±íÖÐÒÆ³ý

Port-Status

¹«¸æ½ÚÔìÆ÷É豸¶Ë¿Ú״̬»òÅäÖòúÉúŤת

Error

¹«¸æ½ÚÔìÆ÷É豸³öµÄÎÊÌâ»òÃýÎó

 

±í1-3     symmetricÐÂÎÅ×ÓÀàÐÍ×¢Ã÷±í

×ÓÀàÐÍ

ÃèÊö

Hello

³ÉÁ¢OpenFlowÏνÓʱÉ豸ºÍ½ÚÔìÆ÷·¢ËÍHello½»»¥

Echo

± £»îÐÂÎÅ,½ÚÔìÆ÷ºÍÉ豸³ÇÊз¢ËÍEcho request/replyÐÂÎÅ

Experimenter

Ϊ½«À´Ð²ÎÓëµÄ¸öÐÔÔ¤ÁôµÄÐÂÎÅ

 

2.    ½ÚÔìÆ÷½ÇÉ«

±í1-4     ½ÚÔìÆ÷½ÇɫעÃ÷±í

½ÇÉ«

ȨÏÞ

Master

¸Ã½ÇÉ«µÄ½ÚÔìÆ÷Õ¼ÓнÚÔìÉ豸µÄÈ«ÊýȨÏÞ£¬Äܹ»Ï·¢Á÷±í\²éÎÊͳ¼ÆÐÅÏ¢,½Ó¹ÜÉ豸Éϱ¨µÄ״̬ÐÅÏ¢¡£ÔÚ½ÚÔìÆ÷¼¯Èº²¿Êðʱ,Ö»ÄÜÓÐһ̨½ÚÔìÆ÷ÊÇMaster

Equal

¸Ã½ÇÉ«½ÚÔìÆ÷ͬÑùÕ¼ÓÐÈ«ÊýȨÏÞ,Ïà±Å×ÚMaster½ÇÉ«£¬¼¯ÈºÊ±¿ÉÓжà¸ö½ÚÔìÆ÷´¦ÓÚEqual

Slave

¸Ã½ÇÉ«½ÚÔìÆ÷Óв¿ÃÅȨÏÞ,²¿ÃÅȨÏÞ±»ÏÞ¶È£¬Èç²»ÄÜÏ·¢Á÷±íÏî¡¢group±íÏî¡¢Meter±íÏî¡£²»ÔÊÐí¶©ÕýÉ豸ÅäÖᢲ»ÔÊÐí½øÐÐPacket Out²Ù×÷

 

3.    ½ÚÔìת·¢·ÖÀë

OpenFlowʵÏÖÁËÍøÂç½ÚÔìÃæµÄ¼¯ÖÐÖÎÀí£¬Ê¹µÃÕû¸öÍøÂç¿ÉÄܵÈÏУ¨Ïà¶ÔÓÚÏÖÓÐÍøÂçÇé¿ö¶øÑÔ£©µØÊµÏÖ¼¯ÖÐÖÎÀí£¬½ø¶ø¼ò»¯ÁËÊØ»¤ÖÎÀí³É±¾¡£

½ÚÔìÆ÷ÏòÍøÂçÉ豸·¢ËÍÁ÷±íÐÅÏ¢£¬ÓÃÓÚ½ÚÔìÍøÂçÊý¾Ý°üµÄת·¢·½Ê½ÒÔ¼°Ò»Ð©ÅäÖòÎÊý¡£¶øÍøÂçÉ豸»áÔÚÁ´Â·Öжϻò³öÏÖδָ¶¨×ª¿¯ÐÐΪµÄÊý¾Ý°üʱ£¬·¢ËÍÐÂÎÅ֪ͨ½ÚÔìÆ÷¡£½ø¶øÐγɶþÕߵĻ¥¶¯£¬×îÖÕ½ÚÔìÕû¸öÍøÂçµÄ´«ÊäÐÐΪ¡£

½ÚÔìÆ÷ºÍÍøÂçÉ豸֮¼äÆðͷʱ±ØÒªÊµÏÖÏ໥·¢ÏֵĹý³Ì£¬Æä¾ßÌåµÄÐÐΪÈçÏÂͼ1-1Ëùʾ£º

ͼ1-1     ½ÚÔìÆ÷ºÍÍøÂçÉ豸½»»¥µÀÀíͼ

image011

 

½ÚÔìÆ÷ºÍÍøÂçÉ豸Ï໥·¢ËÍOpenFlow½ç˵µÄHello±¨ÎĽøÐÐÎÕÊÖ¡£ÎÕÊֳɹ¦ºó£¬½ÚÔìÆ÷½«ÒªÇóÉ豸µÄ¾ßÌåÐÅÏ¢ÀýÈçÉ豸µÄ¶Ë¿ÚÊýÁ¿¡¢¸÷¶Ë¿ÚµÄÄÜÁ¦µÈ£¨Èçͼ1-1ÖеÄFeature Request/Reply£©£¬Ëæºó½ÚÔìÆ÷½«Ï·¢Óû§ÅäÖõ½¾ßÌåµÄÍøÂçÉ豸ÉÏ(Èçͼ1-1ÖеÄSet Config)¡£µ±ÏνӳÉÁ¢ºó£¬½ÚÔìÆ÷½ç˵¸÷¸öÁ÷ÒÔ¼°Æ¥ÅäÁ÷µÄ´¦Ö÷½Ê½²¢Í¨¹ýÁ÷±íÏ·¢µ½É豸¡£Ã¿¸öÊý¾Ý°üÔÚ½øÈëÉ豸ºó½«ÒÀÕÕ½ÚÔìÆ÷Ô¤ÏÈÉ趨µÄÁ÷±í¹æ¶¨Æ¥ÅäÁ÷±í²¢Ö´ÐжÔÓ¦µÄ×÷Ϊ£¨×÷ΪÔ̺¬£º×ª·¢¡¢Åׯú¡¢Åú¸Ä±¨ÎÄÄÚÈÝ£©£¬Í¬Ê±¶ÔÓ¦µÄ¼ÆÊýÆ÷½«¸üР£»ÈôÊÇûÄÜÕÒµ½Æ¥ÅäµÄ±íÏÔòת·¢¸ø½ÚÔìÆ÷¡£

ÍøÂçÉ豸»áÔÚ±¾µØÊØ»¤½ÚÔìÆ÷Ï·¢µÄÁ÷±í£¬ÈôÊÇҪת·¢µÄÊý¾Ý°üÔÚÁ÷±íÖÐÒÑÓнç˵£¬ÔòÖ±½ÓÔÚÍøÂçÉ豸ÉÏʵÏÖת¿¯ÐÐΪ £»ÈôÔÚÁ÷±íÖÐδÄܲéÕÒµ½£¬ÔòÊý¾Ý°ü¾Í»á±»·¢Ë͵½½ÚÔìÆ÷½øÐд«Êäõè¾¶¼òÖ±ÈÏ£¨Äܹ»Àí½âΪ½øÐнÚÔìÃæ½âÎö£¬½ø¶øÌìÉúÁ÷±í£©£¬ÔÙÆ¾¾Ý½ÚÔìÆ÷Ï·¢µÄÁ÷±í½øÐÐת·¢¡£

1.1.3? ºÍ̸¹æ·¶

l  OpenFlow Switch SpecicationVersion 1.0.0

l  OpenFlow Switch SpecicationVersion 1.3.0

1.2?? ÅäÖÃÏ޶ȺÍÁìµ¼

l  Á÷±íÏÞ¶È£º²»Ö§³Ö¶à¸öÁ÷±í,Ö»Ö§³ÖTable 0Á÷±í¡£

l  ÏνӽÚÔìÆ÷ÊýÁ¿ÏÞ¶È£º×î¶àÖ»Ö§³ÖÏνÓ3̨½ÚÔìÆ÷¡£

1.3?? ÅäÖù¤×÷¸ÅÀÀ

OpenFlowÅäÖù¤×÷ÈçÏ£º

(1)   ÅäÖÃOpenFlow

(2)   £¨¿ÉÑ¡£©ÅäÖÃOpenFlow¶à½ÚÔìÆ÷ģʽ

(3)   £¨¿ÉÑ¡£©ÅäÖÃOpenFlowËͽÚÔìÆ÷±¨ÎĵÄvlan±êÇ©

(4)   £¨¿ÉÑ¡£©ÅäÖÃOpenFlow±¨ÎÄ´¦ÖÃģʽ

(5)   £¨¿ÉÑ¡£©ÅäÖÃOpenFlowÔ´IP

1.4?? ÅäÖÃOpenFlow

1.4.1? Ö°Äܼò½é

OpenFlowÊÇÒ»ÖÖÍøÂç´«ÊäºÍ̸£¬ÔËÐÐÔÚ°²È«´«Êä²ãºÍ̸(TLS)»òÎÞ± £»¤TCPÏνÓÖ®ÉÏ£¬½ç˵Á˽ÚÔìÆ÷ÓëÍøÂçÉ豸֮¼äµÄ½»»¥ÐÐΪ¡£

1.4.2? ÅäÖÃOpenFlow

1.    Ö°Äܼò½é

ÅäÖÃÉ豸ΪOpenFlowת·¢Ä£Ê½£¬µ±É豸¿ªÆôOpenFlowÖ°ÄÜʱ£¬¶Ô±¨ÎĵÄת·¢½ÚÔìÕ½ÊõÓɽÚÔìÆ÷ÌìÉú²¢Ï·¢¡£

2.    ÅäÖÃÏÞ¶Å×ëÁìµ¼

l  µ±ÒªÇл»½ÚÔìÆ÷µÄµØÖ·Ê±£¬Ó¦ÏȹعØOpenFlowÖ°ÄÜ£¬ÔÙ¿ªÆôOpenFlowÖ°ÄÜ¡£

l  ¿ªÆôOpenFlowÖ°ÄÜʱ£¬±ØÒª½«É豸×ÔÉíµÄLLDPÖ°ÄܹعØ£¬²»È»½ÚÔìÆ÷Ï·¢µÄLLDP±¨ÎÄÎÞ·¨·¢³ö¡£

3.    ÅäÖò½Öè

(1)   ½øÈëÌØÈ¨Ä£Ê½¡£

enable

(2)   ½øÈëÈ«¾ÖÅäÖÃģʽ¡£

configure terminal

(3)   ¿ªÆôOpenFlowÖ°ÄÜ¡£

of controller-ip ipv4-address [ port port-number ] [ aux ] interface interface-type interface-number

ȱʡÇé¿öÏ£¬OpenFlowÖ°ÄÜ´¦ÓڹعØ×´Ì¬¡£

1.4.3? ÅäÖÃOpenFlow¶à½ÚÔìÆ÷ģʽ

1.    Ö°Äܼò½é

ÅäÖÃÉ豸¶à½ÚÔìÆ÷ģʽ£¬Äܹ»Í¬Ê±ÏνӶà¸ö½ÚÔìÆ÷¡£

2.    ÅäÖÃÏÞ¶Å×ëÁìµ¼

ÅäÖÃÉ豸¶à½ÚÔìÆ÷ģʽʱ£¬±ØÒªÏȹعØOpenFlowÖ°ÄÜ£¬ÔÙÅäÖÃΪ¶à½ÚÔìÆ÷ģʽ£¬ÔÙ¿ªÆôOpenFlowÖ°Äܺó²ÅÉúЧ¡£

3.    ÅäÖò½Öè

(1)   ½øÈëÌØÈ¨Ä£Ê½¡£

enable

(2)   ½øÈëÈ«¾ÖÅäÖÃģʽ¡£

configure terminal

(3)   ÉèÖÃOpenFlowÉ豸ÏνӽÚÔìÆ÷ģʽ¡£

of mode { single | multiple }

ȱʡÇé¿öÏ£¬OpenFlowÉ豸´¦ÓÚ¶à½ÚÔìÆ÷ģʽ¡£

(4)   £¨¿ÉÑ¡£©ÅäÖÃOpenFlow³ÁÁ¬½ÚÔìÆ÷µÄ¹¦·ò¾àÀë¡£

of connect-interval interval

ȱʡÇé¿öÏ£¬OpenFlow³ÁÁ¬½ÚÔìÆ÷µÄ¹¦·ò¾àÀëΪ6Ãë¡£

(5)   £¨¿ÉÑ¡£©ÅäÖÃOpenFlow·¢ËÍecho requestµÄ¹¦·ò¾àÀë¡£

of echo-interval interval

ȱʡÇé¿öÏ£¬OpenFlow·¢ËÍecho requestµÄ¹¦·ò¾àÀëΪ5Ãë¡£

1.4.4? ÅäÖÃOpenFlowËͽÚÔìÆ÷±¨ÎĵÄvlan±êÇ©

1.    Ö°Äܼò½é

ÉèÖÃÉ豸ËͽÚÔìÆ÷µÄ±¨ÎÄÊÇ·ñЯ´øvlan±êÇ©¡£È±Ê¡Çé¿öÏÂÉ豸ËͽÚÔìÆ÷µÄ±¨ÎÄЯ´øvlan±êÇ©¡£

2.    ÅäÖÃÏÞ¶Å×ëÁìµ¼

ÅäÖÃʵÏÖºóÂíÉÏÉúЧ¡£

3.    ÅäÖò½Öè

(1)   ½øÈëÌØÈ¨Ä£Ê½¡£

enable

(2)   ½øÈëÈ«¾ÖÅäÖÃģʽ¡£

configure terminal

(3)   ÅäÖÃOpenFlowÉ豸ËͽÚÔìÆ÷±¨ÎÄÊÇ·ñЯ´ø±êÇ©¡£

of packet vlantag

ȱʡÇé¿öÏ£¬OpenFlowÉ豸ËͽÚÔìÆ÷µÄ±¨ÎÄЯ´øvlan±êÇ©¡£

1.4.5? ÅäÖÃOpenFlow±¨ÎÄ´¦ÖÃģʽ

1.    Ö°Äܼò½é

ÉèÖÃÉ豸ÊÕµ½µÄ±¨ÎÄÊÇ·ñ½øÐвé±í¡£È±Ê¡Çé¿öÏ£¬É豸ÊÕµ½±¨ÎĺóÏȽøÐвé±í£¬Æ¾¾ÝÉäÖеıíÏî´¦Öñ¨ÎÄ£¬ÈôÊÇδÉäÖбíÏîÔò±¨Îı»Åׯú¡£

2.    ÅäÖÃÏÞ¶Å×ëÁìµ¼

ÅäÖÃʵÏÖºóÂíÉÏÉúЧ¡£

3.    ÅäÖò½Öè

(1)   ½øÈëÌØÈ¨Ä£Ê½¡£

enable

(2)   ½øÈëÈ«¾ÖÅäÖÃģʽ¡£

configure terminal

(3)   ÉèÖÃOpenFlowÉ豸ÏνӽÚÔìÆ÷ģʽ¡£

of packet table-lookup { enable | disable }

ȱʡÇé¿öÏ£¬É豸±¨ÎĵĴ¦ÖÃģʽΪ²é±íģʽ¡£

1.4.6? ÅäÖÃOpenFlowÔ´IP

1.    Ö°Äܼò½é

ÉèÖÃÉ豸ÏνӽÚÔìÆ÷ʱµÄÔ´IP¡£Ä¬Èϲ»ÅäÖã¬Ê¹ÓÃÏνӶ˿ڵÄIP¡£

2.    ÅäÖÃÏÞ¶Å×ëÁìµ¼

ÅäÖÃʵÏÖºóÂíÉÏÉúЧ£¬É豸ºÍ½ÚÔìÆ÷»á¶Ï¿ª£¬Ê¹ÓÃÔ´IP³ÁнøÐÐÏνÓ¡£

3.    ÅäÖò½Öè

(1)   ½øÈëÌØÈ¨Ä£Ê½¡£

enable

(2)   ½øÈëÈ«¾ÖÅäÖÃģʽ¡£

configure terminal

(3)   ÅäÖÃOpenFlowÏνӽÚÔìÆ÷µÄÔ´IP

of source-ip ipv4-address

ȱʡÇé¿öÏ£¬²»ÅäÖÃÔ´IP£¬Ä¬ÈÏÒÔÏνӽӿڵÄIPΪԴIPÏνӽÚÔìÆ÷¡£

1.5?? ¼à¶½ÓëÊØ»¤

Äܹ»Í¨¹ýshowºÅÁîÐв鿴ְÄÜÅäÖúóµÄÔËÐÐÇé¿öÒÔÑéÖ¤ÅäÖóÉЧ¡£

±í1-5     OpenFlow¼à¶½ÓëÊØ»¤

×÷ÓÃ

ºÅÁî

²é¿´µ±Ç°OpenFlowÉ豸Óë½ÚÔìÆ÷ÏνÓÇé¿ö

show of

²é¿´µ±Ç°OpenFlowÉ豸µÄ¶Ë¿Ú״̬

show of port

²é¿´µ±Ç°OpenFlowÉ豸µÄÁ÷±í

show of flowtable

²é¿´µ±Ç°OpenFlowÉ豸µÄ×é±í

show of group

²é¿´µ±Ç°OpenFlowÉ豸µÄmeter±í

show of meter

²é¿´µ±Ç°OpenFlowÉ豸µÄ¹é²¢Á÷±íÏî

show of mergedflow

 

1.6?? µäÐÍÅäÖþÙÀý

1.6.1? ¼¯ÖнÚÔìÅäÖþÙÀý

1.    ×éÍøÐèÒª

OpenFlowÄܹ»ÊµÏÖ½ÓÈëÉ豸ÈÏÖ¤µÄ¼¯ÖÐÖÎÀí¡£ÒÔͼ1-2ΪÀý£¬ÔÚ½ÓÈ뻥»»É豸Éϲ¿Êð½ÚÔìÆ÷ʵÏÖ¶Ô½ÓÈëÉ豸µÄÈÏÖ¤½ÚÔ죬ʹµÃÔ­ÏȱØÒªÔËÐÐÔÚ½ÓÈëÉ豸ÉϵÄÈÏÖ¤Ö°ÄÜ£¨½ÚÔìÃæ£©Òƽ»µ½½ÚÔìÆ÷ÉÏʵÏÖ¡£

2.    ×éÍøÍ¼

ͼ1-2     ¼¯ÖнÚÔìÅäÖÃ×éÍøÍ¼

image013

 

3.    ÅäÖÃÖØµã

l  É豸¿ªÆôOpenFlowÖ°ÄÜ£¬Óë½ÚÔìÆ÷³ÉÁ¢OpenFlowÖÎÀíͨ·¡£

l  ÔÚ½ÓÈëÉ豸ÉÏÔËÐÐOpenFlow Client£¬ÊµÏÖÓë½ÚÔìÆ÷»¥Áª¡£

l  ½ÚÔìÆ÷ÒªÇó½ÓÈëÉ豸½«ÈÏÖ¤±¨ÎÄͨ¹ýOpenFlowºÍ̸·¢Ë͵½½ÚÔìÆ÷ÉÏ¡£

l  ÓɽÚÔìÆ÷ʵÏÖÈÏÖ¤¹ý³Ì²¢½«ÈÏÖ¤Á˾Öͨ¹ýOpenFlowºÍ̸Ï·¢µ½¾ßÌåµÄ½ÓÈëÉ豸ÉÏ£¬ÊµÏÖÖÕ¶ËÓû§µÄ×¼Èë½ÚÔì¡£

4.    ÅäÖò½Öè

# ÅäÖÃÉ豸¶Ë¿ªÆôOpenFlowÖ°ÄÜ£¬Ö¸¶¨½ÚÔìÆ÷µÄIPµØÖ·Îª172.18.2.36/24£¬¶Ë±êÓïΪ65535£¬Í¬Ê±¹Ø¹ØÉ豸lldpÖ°ÄÜ¡£

Device> enable

Device# configure terminal

Device(config)# no lldp enable

Device(config)# interface mgmt 0

Device(config-if)# ip address 172.18.2.36 255.255.255.0

Device(config-if)# exit

Device(config)# of controller-ip 172.18.2.35 port 65535 interface mgmt 0

# ÅäÖÃÉ豸Ϊµ¥½ÚÔìÆ÷ģʽ¡£

Device(config)# of mode single

# ÅäÖÃËͽÚÔìÆ÷µÄ±¨ÎIJ»Ð¯´øvlan±êÇ©¡£

Device(config)# no of packet vlantag

# ÅäÖÃÉ豸Ϊ²é±íģʽ¡£

Device(config)# ofpacket table-lookup enable

# ÅäÖÃÉ豸µÄOpenFlowÔ´IPΪ192.168.197.25¡£

Device(config)# of source-ip 192.168.197.25

5.    ÑéÖ¤ÅäÖÃÁ˾Ö

# ²é¿´OpenFlowµÄÏνÓ״̬ÐÅÏ¢¡£

Device# show of

[0] Controller ID=0 Info=tcp:172.18.2.35 port=6653 interface Mgmt 0, Main is Connected, Aux is Disabled

# ²é¿´OpenFlowµÄ¶Ë¿Ú״̬¡£

Device# show of port

ID¡¡¡¡IFX¡¡¡¡INTERFACE¡¡¡¡¡¡¡¡¡¡¡¡SPEED¡¡¡¡ LINK¡¡¡¡DUPLEX¡¡¡¡ TX_PKT¡¡¡¡¡¡ RX_PKT¡¡¡¡¡¡ CONFIG

1¡¡¡¡ 1¡¡¡¡¡¡GigabitEthernet 0/1¡¡Unknown¡¡ DOWN¡¡¡¡Unknown¡¡¡¡0¡¡¡¡¡¡¡¡¡¡¡¡0¡¡¡¡¡¡¡¡¡¡¡¡NA¡¡

2¡¡¡¡ 2¡¡¡¡¡¡GigabitEthernet 0/2¡¡Unknown¡¡ DOWN¡¡¡¡Unknown¡¡¡¡0¡¡¡¡¡¡¡¡¡¡¡¡0¡¡¡¡¡¡¡¡¡¡¡¡NA¡¡

# ²é¿´OpenFlowµÄÁ÷±í״̬¡£

Device# show of flowtable

/***************** openflow flow table[0]---flow number[2] *******************/

 

{table="0", duration_sec="5222", priority="0", flags ="0x1",idle_timeout="0", hard_timeout="0", cookie="0x0", packet_count="0", byte_count="0". match=oxm{all match} instructions=[apply{acts=[output{port="controller", max_len="3333"}] }] }

xid=472, sync_flag=0x0, ss_index=0x7b6

 

{table="0", duration_sec="5222", priority="66", flags ="0x1",idle_timeout="0", hard_timeout="0", cookie="0x0", packet_count="0", byte_count="0". match=oxm{eth_dst="00:25:64:c4:54:e4", eth_type="0x800", ipv4_dst="1.1.0.0", ipv4_dst_mask="255.255.240.0"} instructions=[apply{acts=[output{port="controller", max_len="65535"}] }] }

xid=473, sync_flag=0x0, ss_index=0x7b1

 

/****************************** openflow flow table end ****************************************/

flow total number = 2

# ÅäÖÃÉ豸Ϊµ¥½ÚÔìÆ÷ģʽ£¬Ö»ÄÜÏνÓÒ»¸ö½ÚÔìÆ÷£¬³¬¹ýÒ»¸öʱ»áÓÐÃýÎóÌáÐÑ¡£

Device(config)# no of controller-ip

Device(config)# of mode single

Device(config)# of controller-ip 172.18.122.24 interface gigabitEthernet 0/1

Device(config)# of controller-ip 172.18.122.25 interface gigabitEthernet 0/1

Controller Mode is Single, can't connected

# ͨ¹ýshow ofºÅÁî²é¿´µ±Ç°Ä£Ê½Îª²é±íģʽ£¬Ô´IPΪ192.168.197.25¡£

Device# show of

version:openflow1.3, controller[0]:tcp:172.18.105.11 port 6653 interface GigabitEthernet 1/0/7, main is connected, aux is disable, role is master.

Current controller mode : multiple.

Current packet process mode : Lookup all flow.

Datapath id = 897516188948

Source IP = 192.168.197.25

6.    ÅäÖÃÎļþ

hostname Device

alias exec sv show version

!

no lldp enable

!

of source-ip 192.168.197.25

of controller-ip 172.18.2.35 port 65535 interface Mgmt 0

no of packet vlantag

!

interface Mgmt 0

?ip address 172.18.2.36 255.255.255.0

?gateway 172.18.2.1

7.    ³£¼ûÃýÎó

l  ½ÚÔìÆ÷IPµØÖ·ÅäÖÃÃýÎó¡£

l  ½ÚÔìÆ÷TCP¶Ë±êÓïÅäÖÃÃýÎó¡£

l  ½¡ÍüÅäÖñ¾»úµÄÖÎÀíͨ·IPµØÖ·¡£

¡¾ÍøÕ¾µØÍ¼¡¿