Sign-inhere:http://tinyurl.
com/nanog57-rosterWorkshopSlides:http://tinyurl.
com/nanog57-slidescopyrightIndianaUniversityOpenflow90minutesIndianaCenterforNetworkTranslationalResearchandEducationtheresearcharmofInstructorsStevenWallacessw@iu.
eduChrisSmallchsmall@indiana.
edu31October2012Toolsthatwe'llbeusingtoday.
.
.
AmazonWebServices(EC2)OpenVSwitch-theOpenVSwitchdistributionincludesanOFcontroller(i.
e.
,ovs-controller)andausefulcommand-lineutilityovs-ofclt.
WireShark-anopensourcenetwork"sniffer"Mininet-opensourcevirtualnetworkondesktopTeachingHTMLtoexplaintheWWWOpenFlow'spromiseisitsapplication,notitsinternalworkingsYetmuchoftodayisaboutOpenFlow'sinternalworkings,andverylittlewillbepolishedexamplesofitsapplication.
LogisticsOpentherosterspreadsheet(http://tinyurl.
com/nanog57-roster)Findyourrownumber,callitXOpentwoterminalwindowsvia:sshopenflow@vmX.
training.
incntre.
orgUsername:openflowPassword:openflowPointyourbrowserto:http://vmX.
training.
incntre.
org:8090/guacamole%pWhatisOpenFlowIt'saprotocolforcontroltheforwardingbehaviorofEthernetswitchesinaSoftwareDefinedNetworkInitiallyreleasedbytheCleanSlateProgramatStanford,itsspecificationisnowmaintainedbytheOpenNetworkingForumMostoftoday'smaterialisbasedontheOpenFlow1.
0specificationInApril2012,OpenFlow1.
3wasapproved(seealso4/2012ONFwhitepaper)EthernetSwitchTable-based(e.
g.
,TCAM/CAM)high-speedforwardingengineEmbeddedOperatingSystemDataPlaneControlPlaneFeaturesValueAddCLI,SNMP,TFTPOpenFlowControllerTable-based(e.
g.
,TCAM/CAM)high-speedforwardingengineEmbeddedOperatingSystemimplementsOpenFlowDataPlaneControlPlaneFeaturesValueAddOpenFlowProtocolOpenFlowControllerFeaturesValueAddOpenFlowProtocolEachswitchconnectsdirectlywithOFControllerFlowTableHeaderFieldsCountersActionsIngressPortEthernetSourceAddrEthernetDestAddrEthernetTypeVLANidVLANPriorityIPSourceAddrIPDestAddrIPProtocolIPToSICMPtypeICMPcodePerFlowCountersReceivedPacketsReceivedBytesDurationsecondsDurationnanoseccondsForward(All,Controller,Local,Table,IN_port,Port#Normal,Flood)EnqueueDropModify-FieldPriorityFlowTableHeaderFieldsCountersActionsIfingressport==2DroppacketifIP_addr==129.
79.
1.
1re-writeto10.
0.
1.
1,forwardport3ifEthAddr==00:45:23addVLANid110,forwardport2ifingressport==4forwardport5,6ifEthType==ARPforwardCONTROLLERIfingressport==2&&EthType==ARPforwardNORMALPriority327683276832768327683276840000SpecialPortsController(sendspackettothecontroller)Normal(sendspackettonon-openflowfunctionofswitch)Local(canbeusedforin-bandcontrollerconnection)Flood(floodthepacketusingnormalpipeline)FlowTableHeaderFieldsCountersActionsIfingressport==2DroppacketifIP_addr==129.
79.
1.
1re-writeto10.
0.
1.
1,forwardport3Priority3276832768EachFlowTableentryhastwotimers:idle_timeoutsecondsofnomatchingpacketsafterwhichtheflowisremovedzeromeansnevertimeouthard_timeoutsecondsafterwhichtheflowisremovedzeromeannevertimeoutIfbothidle_timeoutandhard_timeoutareset,thentheflowisremovedwhenthefirstofthetwoexpires.
PopulatingtheFlowTableProactiveRulesarerelativelystatic,controllerplacesrulesinswitchbeforetheyarerequired.
ReactiveRulesaredynamic.
Packetswhichhavenomatcharesenttothecontroller(packetin).
Controllercreatesappropriateruleandsendspacketbacktoswitch(packetout)forprocessing.
ControllerandSwitchCommunicationMode-Controllervs.
ListenerTCPCommunication,whoinitiatesconversationModeandPopulatingFlowTableindependentExampleapplication:topologydiscoveryOpenFlowControllerBootstrappinganewswitchSwitchrequiresminimalinitialconfiguration(e.
g.
,IPaddress,defaultGW,andOpenFlowcontroller)Switchconnectstocontroller.
Controllerrequeststhingslikealistofports,etc.
Controllerproceedstodeterminetheswitch'slocation.
BootstrappinganewswitchControllerproactivelyplacesaruleintheswitch.
Ifether_type=LLDP,actions=output:controllerThenthecontrollercreatesanLLDPpacket,sendsittotheswitch,andinstructstheswitchtosenditoutaport(repeatforallports).
Sinceallswitchesinthecontroller'snetworkhavearuletosendLLDPpacketstothecontroller,thecontrollerisabletodeterminethetopology.
OpenFlow1.
0to1.
1FlowTableHeaderFieldsCountersActionsPriorityMatchFieldsPriorityCountersInstructionsCookie1.
01.
1mediadatapacketActionSetNewDataStructureinPipelineGroupIDTypeCountersActionBuckets.
.
.
.
.
.
.
.
.
.
PacketProcessing1.
0Doespacketmatchflowtableentry,ifso,performaction.
1.
1Doespacketmatchflowtableentry,ifso,lookatinstructions.
.
.
Actionsvs.
Instructions1.
1Flowentriescontaininstructions.
Instructionsmaybeimmediateaction(s),orinstructionsmaysetactionsintheactionsetInstructionscanalsochangepipelineprocessing:GototableXGotogrouptableentryxMoreTables1.
1AllowsformultipleflowtablesIncludesagrouptablewithmultiplegrouptabletypesInstructionscanjumptoothertables,butonlyinapositivedirectionOpenFlowQoSOF1.
0Optionalaction"Enqueue"Forwardspacketthroughaqueueattachedtoaport.
ThebehaviorofthequeueisdeterminedoutsidethescopeofOF.
HeaderfieldscanincludeVLANpriorityandIPToS,sotheycanbematchedagainstandre-written.
OpenFlowQoSOF1.
3Stufffrom1.
0Newtable"MeterTable"MeterIdentifierMeterBandsCounters32bitintegerusedtoidentifythemeterlistofmeterbandseachbandspecifiesrateandbehaviorOpenFlowQoS(1.
3cont.
)MeterIdentifierMeterBandsCountersMatchFieldsPriorityCountersInstructionsTimeoutsTimeoutsCookeNewinstructionMetermeter_idBandTypeRateCountersTypeSpecificArgumentsdroporremarkDSCPkb/sburstOpenFlowQoS(1.
3cont.
)MeterIdentifierMeterBandsCountersBandTypeRateCountersTypeSpecificArgumentsdroporremarkDSCPkb/sburstOneormoreMeterBandsperMeterTableEntry"themeterappliesthemeterbandwiththehighestconfiguredratethatislowerthanthecurrentmeasuredrate"Hands-onwithOpenFlow(quickreviewofthetable)HeaderFieldsCountersActionsIngressPortEthernetSourceAddrEthernetDestAddrEthernetTypeVLANidVLANPriorityIPSourceAddrIPDestAddrIPProtocolIPToSICMPtypeICMPcodePerFlowCountersReceivedPacketsReceivedBytesDurationsecondsDurationnanoseccondsForward(All,Controller,Local,Table,IN_port,Port#Normal,Flood)EnqueueDropModify-FieldPriorityHands-onwithOpenFlowOpenFlowControllerNormallyswitchinitiatesaconnectiontoitscontrollerAlthoughnotpartoftheOFspec,manyswitchessupportapassiveOFconnection,wheretheswitchlistensforaconnection.
ovs-ofctlWe'regoingtouseovs-ofctltoquerytheswitch'sstatus.
NewerversionsofOpenVSwitchdonotsupportremotepassiveconnections.
Somehardwaresupportspassiveconnectionandsomedoesn't.
Wewilluselocalconnectionsinthishands-ondemonstrationMininetWewillbeusingMininettosimulateswitchesandhostsinanetwork.
MininetusesOpenVSwitchastheswitchandcreatesLXCContainerVMsashostsOncestarted,themininetprompt"mininet>"allowscommandstoberunonitsvirtualhosts.
Forexamplemininet>h2pingh3causeshosth2topinghosth3Hosth2IP:10.
0.
0.
2eth0Hosth3IP:10.
0.
0.
3eth0Switchs1eth1eth2dp0Tostartmininetandconstructasimplenetwork,runthefollowinginoneoftheterminalwindows:$sudomn--mac--switchovsk--controllerremoteOpenFlowSwitchPeriodicallyattemptingtoconnecttocontrolleronlo:6633Alsolisteningondp0GettingWireSharkReady(somethinginterestingcomingup)configureWireSharktocaptureonthe"lo"interfaceType"of"(withoutthequotes)intheWireSharkFilterAbitaboutovs-ofctlpackagedwithopenvswitch-commonalternativetodpctl(openflowreferencecontroller)command-lineutilitythatsendsbasicOpenflowmessagesusefulforviewingswitchportandflowstats,plusmanuallyinsertingflowentriestoolforearlydebuggingTalksdirectlytotheswitchThisdoesnotrequireacontrollerSwitchmustsupportalistenerport(normallyviaTCP,butinourcaseviadp0FirstStep!
Run:$sudoovs-ofctlshowdp0The'show'commandconnectstotheswitchandprintsoutportstateandOFcapabilitiesWhatweretheresultsType:$sudoovs-ofctldump-flowsdp0Needtosudowhenusingalocaldatapathsocket(dp0)becauseMininet/OpenVSwitchcreatesitasrootNoflowStartthepingagainusingmininetandrecheckovs-ofctl-show$sudoovs-ofctlshowdp0OFPT_FEATURES_REPLY(xid=0x1):ver:0x1,dpid:0000000000000001n_tables:255,n_buffers:256features:capabilities:0xc7,actions:0xfff1(s1-eth1):addr:3a:e2:98:4e:fe:aaconfig:0state:0current:10GB-FDCOPPER2(s1-eth2):addr:36:29:c4:d7:a4:c1config:0state:0current:10GB-FDCOPPERLOCAL(dp0):addr:ca:5d:78:2d:b6:40config:PORT_DOWNstate:LINK_DOWNOFPT_GET_CONFIG_REPLY(xid=0x3):frags=normalmiss_send_len=0ovs-ofctldump-flowssudoovs-ofctldump-flowsdp0GivesusinformationabouttheflowsinstalledRuleitselfTimeoutsActionsPacketsandbytesprocessedbyflowovs-ofctldump-flows$sudoovs-ofctldump-flowsdp01.
NXST_FLOWreply(xid=0x4):2.
cookie=0x0,duration=30.
625s,table=4,n_packets=0,n_bytes=2612,idle_timeout=180,priority=33000,in_port=1actions=output:23.
cookie=0x0,duration=22.
5s,table=4,n_packets=0,n_bytes=2612,idle_timeout=180,priority=33000,in_port=2actions=output:1ovs-ofctldump-ports$sudoovs-ofctldump-portsdp0-Givesphysicalportinformation-Rx,txcounters-Errorcounters1.
OFPST_PORTreply(xid=0x1):14ports2.
port2:rxpkts=25211,bytes=3856488,drop=0,errs=0,frame=0,over=0,crc=0txpkts=7144,bytes=767594,drop=0,errs=0,coll=03.
port5:rxpkts=18235,bytes=3142702,drop=0,errs=0,frame=0,over=0,crc=0txpkts=0,bytes=0,drop=0,errs=0,coll=0Hosth2IP:10.
0.
0.
2eth0Hosth3IP:10.
0.
0.
3eth0Switchs1eth1eth2dp0OpenFlowSwitchPeriodicallyattemptingtoconnecttocontrolleronlo:6633Alsolisteningondp0Exercise#1Solet'sseeifthenetworkisworking.
Pingh2fromh3usingthefollowingcommand:mininet>h2pingh3Afterabityoucantypecontrol-Ctostoptheping.
WhathappenedIntheotherterminalwindowsstarttheovs-controller:$sudoovs-controllerptcp:&Nowtrythepingsagain.
CheckoutWireShark!
Hosth2IP:10.
0.
0.
2eth0Hosth3IP:10.
0.
0.
3eth0Switchs1eth1eth2dp0ovs-controllerLearningSwitchOpenflowLearningSwitchCheckflowtable$sudoovs-ofctldump-flowsdp0LearningSwitchWhatisthestateoftheflowtableWhatistheovs-controllerworkflowWhathappenswhenabroadcastpacketgetssentMulticastControl-Covs-controllerInthatwindowwhereyoustartedovs-controller,enter"fg"thenacontrol-Ctokillthecontroller.
We'llgetbacktoitlater.
Exercise#2Usingovs-ofctltoinsertsimple,port-basedrulesLet'smakesureswitchhasnoexistingflows:$sudoovs-ofctldel-flowsdp0Hosth2IP:10.
0.
0.
2eth0ovs-ofctlprocess$sudoovs-ofctladd-flowdp0idle_timeout=180,priority=33000,in_port=1,actions=output:2$sudoovs-ofctladd-flowdp0idle_timeout=180,priority=33000,in_port=2,actions=output:1mininet>h2pingh3Hosth3IP:10.
0.
0.
3eth0Switchs1eth1eth2dp0Port-basedRulesDothepingsworkWhatdoyouseewith$sudoovs-ofctldump-flowsdp0DothecountersincreaseasexpectedWhat'sgoingonwiththetimeoutsExercise#3-Movingupthestack.
.
.
Firstrulewasport-based.
NextruleisIPsourceaddress-based.
type:$sudoovs-ofctladd-flowdp0idle_timeout=180,priority=33001,dl_type=0x800,nw_src=10.
0.
0.
2,actions=output:2$sudoovs-ofctladd-flowdp0idle_timeout=180,priority=33001,dl_type=0x800,nw_src=10.
0.
0.
3,actions=output:1Hosth2IP:10.
0.
0.
2eth0ovs-ofctlprocessHosth3IP:10.
0.
0.
3eth0Switchs1eth1eth2dp0IPAddress-basedRulesDothepingsworkDidtheport-basedrulestimeoutIftherearenoport-basedrules,whywouldthepingsfailCanyouverifythishypothesisbylookingatthecountersExampleofOpenFlow'sGameChangingPotentialif"FloorPlanEntropy"hasgotyourbisectionbandwidthdown,buildfattreenetworksbasedonlow-costswitchesbyprogrammingthenetworkforthedatacenterviaOpenflow(e.
g.
,PortLand)
OneTechCloud发布了本月促销信息,全场VPS主机月付9折,季付8折,优惠后香港VPS月付25.2元起,美国CN2 GIA线路高防VPS月付31.5元起。这是一家2019年成立的国人主机商,提供VPS主机和独立服务器租用,产品数据中心包括美国洛杉矶和中国香港,Cera的机器,VPS基于KVM架构,采用SSD硬盘,其中美国洛杉矶回程CN2 GIA,可选高防。下面列出部分套餐配置信息。美国CN...
关于HostDare服务商在之前的文章中有介绍过几次,算是比较老牌的服务商,但是商家背景财力不是特别雄厚,算是比较小众的个人服务商。目前主流提供CKVM和QKVM套餐。前者是电信CN2 GIA,不过库存储备也不是很足,这不九月份发布新的补货库存活动,有提供九折优惠CN2 GIA,以及六五折优惠QKVM普通线路方案。这次活动截止到9月30日,不清楚商家这次库存补货多少。比如 QKVM基础的五个方案都...
Hostodo在九月份又发布了两款特别套餐,开设在美国拉斯维加斯、迈阿密和斯波坎机房,基于KVM架构,采用NVMe SSD高性能磁盘,最低1.5GB内存8TB月流量套餐年付34.99美元起。Hostodo是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,美国三个地区机房,支持支付宝或者PayPal、加密货币等付款。下面列出这两款主机配置信息。CP...
www.6633.us为你推荐
哈利波特罗恩升级当爸哈利波特七中罗恩和哈利吵架时,罗恩去哪儿硬盘的工作原理硬盘的工作原理?是怎样存取数据的?百度关键词价格查询百度推广关键词怎么扣费?百度关键词工具常见百度关键词挖掘方法分别是什么请列举?长尾关键词挖掘工具怎么挖掘长尾关键词,可以批量操作的那种www.119mm.comwww.kb119.com 这个网站你们能打开不?www.javmoo.comjavimdb怎么看抓站工具一起来捉妖神行抓妖辅助工具都有哪些?33tutu.comDnf绝望100鬼泣怎么过sodu.tw今天sodu.org为什么打不开了?
域名备案 拜登买域名批特朗普 hawkhost优惠码 韩国俄罗斯 美元争夺战 cloudstack 国外空间服务商 国外免费空间 服务器架设 魔兽世界台湾服务器 英文站群 卡巴斯基永久免费版 合肥鹏博士 上海域名 hostker 网通服务器托管 爱奇艺会员免费试用 中国电信宽带测速器 国外视频网站有哪些 免费mysql数据库 更多