Ä¿¡¡Â¼
1.4.3 ÅäÖÃOpenFlow¶à½ÚÔìÆ÷ģʽ
1.4.4 ÅäÖÃOpenFlowËͽÚÔìÆ÷±¨ÎĵÄvlan±êÇ©
1.4.5 ÅäÖÃOpenFlow±¨ÎÄ´¦ÖÃģʽ
OpenFlowÊÇSDN(Software Defined Network£¬Èí¼þ½çËµÍøÂç)¼Ü¹¹Öнç˵µÄÒ»¸ö½ÚÔìÆ÷Óëת·¢²ãÖ®¼äµÄÍøÂç´«ÊäºÍ̸¡£OpenFlowÔÊÐí½ÚÔìÆ÷Ö±½Ó½Ó¼ûºÍ²Ù×÷ÍøÂçÉ豸µÄת·¢Ã棬ÕâЩÉ豸¿ÉÄÜÊÇÎïÀíÉϵģ¬Ò²¿ÉÄÜÊÇÐé¹¹µÄ¡£
OpenFlowͨ¹ý³ß¶ÈµÄͨѶºÍ̸½«É豸µÄ½ÚÔìÃæºÍת·¢ÃæÏà·ÖÀ룬ÈÃÍøÂçÉ豸רһÓÚת¿¯ÐÐΪ£¬¶øÕûÍøµÄ½ÚÔìÐÐΪ¼¯ÖÐÔÚһ̨½ÚÔìÆ÷ÉÏ¡£É豸Óë½ÚÔìÆ÷³ÉÁ¢OpenFlowÏνӣ¬ÓɽÚÔìÆ÷ÌìÉúת·¢¹æ¶¨²¢Í¨¹ýOpenFlowÏνÓÒÔÁ÷±íµÄ´ó¾ÖÏ·¢¸øÍøÂçÉ豸£¬´Ó¶øÊµÏÖÍøÂç½ÚÔìÃæµÄ¼¯ÖÐÖÎÀí£¬½µµÍÊØ»¤ÖÎÀí³É±¾¡£
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 |
Ϊ½«À´Ð²ÎÓëµÄ¸öÐÔÔ¤ÁôµÄÐÂÎÅ |
±í1-4 ½ÚÔìÆ÷½ÇɫעÃ÷±í
½ÇÉ«
|
ȨÏÞ
|
Master
|
¸Ã½ÇÉ«µÄ½ÚÔìÆ÷Õ¼ÓнÚÔìÉ豸µÄÈ«ÊýȨÏÞ£¬Äܹ»Ï·¢Á÷±í\²éÎÊͳ¼ÆÐÅÏ¢,½Ó¹ÜÉ豸Éϱ¨µÄ״̬ÐÅÏ¢¡£ÔÚ½ÚÔìÆ÷¼¯Èº²¿Êðʱ,Ö»ÄÜÓÐһ̨½ÚÔìÆ÷ÊÇMaster
|
Equal
|
¸Ã½ÇÉ«½ÚÔìÆ÷ͬÑùÕ¼ÓÐÈ«ÊýȨÏÞ,Ïà±Å×ÚMaster½ÇÉ«£¬¼¯ÈºÊ±¿ÉÓжà¸ö½ÚÔìÆ÷´¦ÓÚEqual
|
Slave
|
¸Ã½ÇÉ«½ÚÔìÆ÷Óв¿ÃÅȨÏÞ,²¿ÃÅȨÏÞ±»ÏÞ¶È£¬Èç²»ÄÜÏ·¢Á÷±íÏî¡¢group±íÏî¡¢Meter±íÏî¡£²»ÔÊÐí¶©ÕýÉ豸ÅäÖᢲ»ÔÊÐí½øÐÐPacket
Out²Ù×÷
|
OpenFlowʵÏÖÁËÍøÂç½ÚÔìÃæµÄ¼¯ÖÐÖÎÀí£¬Ê¹µÃÕû¸öÍøÂç¿ÉÄܵÈÏУ¨Ïà¶ÔÓÚÏÖÓÐÍøÂçÇé¿ö¶øÑÔ£©µØÊµÏÖ¼¯ÖÐÖÎÀí£¬½ø¶ø¼ò»¯ÁËÊØ»¤ÖÎÀí³É±¾¡£
½ÚÔìÆ÷ÏòÍøÂçÉ豸·¢ËÍÁ÷±íÐÅÏ¢£¬ÓÃÓÚ½ÚÔìÍøÂçÊý¾Ý°üµÄת·¢·½Ê½ÒÔ¼°Ò»Ð©ÅäÖòÎÊý¡£¶øÍøÂçÉ豸»áÔÚÁ´Â·Öжϻò³öÏÖδָ¶¨×ª¿¯ÐÐΪµÄÊý¾Ý°üʱ£¬·¢ËÍÐÂÎÅ֪ͨ½ÚÔìÆ÷¡£½ø¶øÐγɶþÕߵĻ¥¶¯£¬×îÖÕ½ÚÔìÕû¸öÍøÂçµÄ´«ÊäÐÐΪ¡£
½ÚÔìÆ÷ºÍÍøÂçÉ豸֮¼äÆðͷʱ±ØÒªÊµÏÖÏ໥·¢ÏֵĹý³Ì£¬Æä¾ßÌåµÄÐÐΪÈçÏÂͼ1-1Ëùʾ£º
ͼ1-1 ½ÚÔìÆ÷ºÍÍøÂçÉ豸½»»¥µÀÀíͼ

½ÚÔìÆ÷ºÍÍøÂçÉ豸Ï໥·¢ËÍOpenFlow½ç˵µÄHello±¨ÎĽøÐÐÎÕÊÖ¡£ÎÕÊֳɹ¦ºó£¬½ÚÔìÆ÷½«ÒªÇóÉ豸µÄ¾ßÌåÐÅÏ¢ÀýÈçÉ豸µÄ¶Ë¿ÚÊýÁ¿¡¢¸÷¶Ë¿ÚµÄÄÜÁ¦µÈ£¨Èçͼ1-1ÖеÄFeature Request/Reply£©£¬Ëæºó½ÚÔìÆ÷½«Ï·¢Óû§ÅäÖõ½¾ßÌåµÄÍøÂçÉ豸ÉÏ(Èçͼ1-1ÖеÄSet Config)¡£µ±ÏνӳÉÁ¢ºó£¬½ÚÔìÆ÷½ç˵¸÷¸öÁ÷ÒÔ¼°Æ¥ÅäÁ÷µÄ´¦Ö÷½Ê½²¢Í¨¹ýÁ÷±íÏ·¢µ½É豸¡£Ã¿¸öÊý¾Ý°üÔÚ½øÈëÉ豸ºó½«ÒÀÕÕ½ÚÔìÆ÷Ô¤ÏÈÉ趨µÄÁ÷±í¹æ¶¨Æ¥ÅäÁ÷±í²¢Ö´ÐжÔÓ¦µÄ×÷Ϊ£¨×÷ΪÔ̺¬£º×ª·¢¡¢Åׯú¡¢Åú¸Ä±¨ÎÄÄÚÈÝ£©£¬Í¬Ê±¶ÔÓ¦µÄ¼ÆÊýÆ÷½«¸üУ»ÈôÊÇûÄÜÕÒµ½Æ¥ÅäµÄ±íÏÔòת·¢¸ø½ÚÔìÆ÷¡£
ÍøÂçÉ豸»áÔÚ±¾µØÊØ»¤½ÚÔìÆ÷Ï·¢µÄÁ÷±í£¬ÈôÊÇҪת·¢µÄÊý¾Ý°üÔÚÁ÷±íÖÐÒÑÓнç˵£¬ÔòÖ±½ÓÔÚÍøÂçÉ豸ÉÏʵÏÖת¿¯ÐÐΪ£»ÈôÔÚÁ÷±íÖÐδÄܲéÕÒµ½£¬ÔòÊý¾Ý°ü¾Í»á±»·¢Ë͵½½ÚÔìÆ÷½øÐд«Êäõè¾¶¼òÖ±ÈÏ£¨Äܹ»Àí½âΪ½øÐнÚÔìÃæ½âÎö£¬½ø¶øÌìÉúÁ÷±í£©£¬ÔÙÆ¾¾Ý½ÚÔìÆ÷Ï·¢µÄÁ÷±í½øÐÐת·¢¡£
l OpenFlow Switch SpecicationVersion 1.0.0
l OpenFlow Switch SpecicationVersion 1.3.0
l Á÷±íÏÞ¶È£º²»Ö§³Ö¶à¸öÁ÷±í,Ö»Ö§³ÖTable 0Á÷±í¡£
l ÏνӽÚÔìÆ÷ÊýÁ¿ÏÞ¶È£º×î¶àÖ»Ö§³ÖÏνÓ3̨½ÚÔìÆ÷¡£
(1)
ÅäÖÃOpenFlow
(2)
£¨¿ÉÑ¡£©ÅäÖÃOpenFlow¶à½ÚÔìÆ÷ģʽ
(3)
£¨¿ÉÑ¡£©ÅäÖÃOpenFlowËͽÚÔìÆ÷±¨ÎĵÄvlan±êÇ©
(4)
£¨¿ÉÑ¡£©ÅäÖÃOpenFlow±¨ÎÄ´¦ÖÃģʽ
(5)
£¨¿ÉÑ¡£©ÅäÖÃOpenFlowÔ´IP
OpenFlowÊÇÒ»ÖÖÍøÂç´«ÊäºÍ̸£¬ÔËÐÐÔÚ°²È«´«Êä²ãºÍ̸(TLS)»òÎÞ±£»¤TCPÏνÓÖ®ÉÏ£¬½ç˵Á˽ÚÔìÆ÷ÓëÍøÂçÉ豸֮¼äµÄ½»»¥ÐÐΪ¡£
ÅäÖÃÉ豸ΪOpenFlowת·¢Ä£Ê½£¬µ±É豸¿ªÆôOpenFlowÖ°ÄÜʱ£¬¶Ô±¨ÎĵÄת·¢½ÚÔìÕ½ÊõÓɽÚÔìÆ÷ÌìÉú²¢Ï·¢¡£
l µ±ÒªÇл»½ÚÔìÆ÷µÄµØÖ·Ê±£¬Ó¦ÏȹعØOpenFlowÖ°ÄÜ£¬ÔÙ¿ªÆôOpenFlowÖ°ÄÜ¡£
l ¿ªÆôOpenFlowÖ°ÄÜʱ£¬±ØÒª½«É豸×ÔÉíµÄLLDPÖ°Äܹعأ¬²»È»½ÚÔìÆ÷Ï·¢µÄLLDP±¨ÎÄÎÞ·¨·¢³ö¡£
(1) ½øÈëÌØÈ¨Ä£Ê½¡£
enable
(2) ½øÈëÈ«¾ÖÅäÖÃģʽ¡£
configure terminal
(3) ¿ªÆôOpenFlowÖ°ÄÜ¡£
of controller-ip ipv4-address [ port
port-number ] [ aux ] interface interface-type interface-number
ȱʡÇé¿öÏ£¬OpenFlowÖ°ÄÜ´¦ÓڹعØ×´Ì¬¡£
ÅäÖÃÉ豸¶à½ÚÔìÆ÷ģʽ£¬Äܹ»Í¬Ê±ÏνӶà¸ö½ÚÔìÆ÷¡£
ÅäÖÃÉ豸¶à½ÚÔìÆ÷ģʽʱ£¬±ØÒªÏȹعØOpenFlowÖ°ÄÜ£¬ÔÙÅäÖÃΪ¶à½ÚÔìÆ÷ģʽ£¬ÔÙ¿ªÆôOpenFlowÖ°Äܺó²ÅÉúЧ¡£
(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Ãë¡£
ÉèÖÃÉ豸ËͽÚÔìÆ÷µÄ±¨ÎÄÊÇ·ñЯ´øvlan±êÇ©¡£È±Ê¡Çé¿öÏÂÉ豸ËͽÚÔìÆ÷µÄ±¨ÎÄЯ´øvlan±êÇ©¡£
ÅäÖÃʵÏÖºóÂíÉÏÉúЧ¡£
(1) ½øÈëÌØÈ¨Ä£Ê½¡£
enable
(2) ½øÈëÈ«¾ÖÅäÖÃģʽ¡£
configure terminal
(3) ÅäÖÃOpenFlowÉ豸ËͽÚÔìÆ÷±¨ÎÄÊÇ·ñЯ´ø±êÇ©¡£
of packet vlantag
ȱʡÇé¿öÏ£¬OpenFlowÉ豸ËͽÚÔìÆ÷µÄ±¨ÎÄЯ´øvlan±êÇ©¡£
ÉèÖÃÉ豸ÊÕµ½µÄ±¨ÎÄÊÇ·ñ½øÐвé±í¡£È±Ê¡Çé¿öÏ£¬É豸ÊÕµ½±¨ÎĺóÏȽøÐвé±í£¬Æ¾¾ÝÉäÖеıíÏî´¦Öñ¨ÎÄ£¬ÈôÊÇδÉäÖбíÏîÔò±¨Îı»Åׯú¡£
ÅäÖÃʵÏÖºóÂíÉÏÉúЧ¡£
(1) ½øÈëÌØÈ¨Ä£Ê½¡£
enable
(2) ½øÈëÈ«¾ÖÅäÖÃģʽ¡£
configure terminal
(3) ÉèÖÃOpenFlowÉ豸ÏνӽÚÔìÆ÷ģʽ¡£
of packet table-lookup
{ enable | disable }
ȱʡÇé¿öÏ£¬É豸±¨ÎĵĴ¦ÖÃģʽΪ²é±íģʽ¡£
ÉèÖÃÉ豸ÏνӽÚÔìÆ÷ʱµÄÔ´IP¡£Ä¬Èϲ»ÅäÖã¬Ê¹ÓÃÏνӶ˿ڵÄIP¡£
ÅäÖÃʵÏÖºóÂíÉÏÉúЧ£¬É豸ºÍ½ÚÔìÆ÷»á¶Ï¿ª£¬Ê¹ÓÃÔ´IP³ÁнøÐÐÏνӡ£
(1) ½øÈëÌØÈ¨Ä£Ê½¡£
enable
(2) ½øÈëÈ«¾ÖÅäÖÃģʽ¡£
configure terminal
(3) ÅäÖÃOpenFlowÏνӽÚÔìÆ÷µÄÔ´IP
of source-ip ipv4-address
ȱʡÇé¿öÏ£¬²»ÅäÖÃÔ´IP£¬Ä¬ÈÏÒÔÏνӽӿڵÄIPΪԴIPÏνӽÚÔìÆ÷¡£
Äܹ»Í¨¹ý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 |
OpenFlowÄܹ»ÊµÏÖ½ÓÈëÉ豸ÈÏÖ¤µÄ¼¯ÖÐÖÎÀí¡£ÒÔͼ1-2ΪÀý£¬ÔÚ½ÓÈ뻥»»É豸Éϲ¿Êð½ÚÔìÆ÷ʵÏÖ¶Ô½ÓÈëÉ豸µÄÈÏÖ¤½ÚÔ죬ʹµÃÔÏȱØÒªÔËÐÐÔÚ½ÓÈëÉ豸ÉϵÄÈÏÖ¤Ö°ÄÜ£¨½ÚÔìÃæ£©Òƽ»µ½½ÚÔìÆ÷ÉÏʵÏÖ¡£

l É豸¿ªÆôOpenFlowÖ°ÄÜ£¬Óë½ÚÔìÆ÷³ÉÁ¢OpenFlowÖÎÀíͨ·¡£
l ÔÚ½ÓÈëÉ豸ÉÏÔËÐÐOpenFlow Client£¬ÊµÏÖÓë½ÚÔìÆ÷»¥Áª¡£
l ½ÚÔìÆ÷ÒªÇó½ÓÈëÉ豸½«ÈÏÖ¤±¨ÎÄͨ¹ýOpenFlowºÍ̸·¢Ë͵½½ÚÔìÆ÷ÉÏ¡£
l ÓɽÚÔìÆ÷ʵÏÖÈÏÖ¤¹ý³Ì²¢½«ÈÏÖ¤Á˾Öͨ¹ýOpenFlowºÍ̸Ï·¢µ½¾ßÌåµÄ½ÓÈëÉ豸ÉÏ£¬ÊµÏÖÖÕ¶ËÓû§µÄ×¼Èë½ÚÔì¡£
# ÅäÖÃÉ豸¶Ë¿ªÆô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
# ²é¿´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
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
l ½ÚÔìÆ÷IPµØÖ·ÅäÖÃÃýÎó¡£
l ½ÚÔìÆ÷TCP¶Ë±êÓïÅäÖÃÃýÎó¡£