onos教程Word文档下载推荐.docx
- 文档编号:21098971
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:20
- 大小:950.12KB
onos教程Word文档下载推荐.docx
《onos教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《onos教程Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
虚拟机内的GuestOS帐号和密码如下:
USERNAME:
tutorial1
PASSWORD:
2.3重要的命令提示符
ONOS的命令提示符:
onos>
Mininet的命令提示符:
mininet>
2.4重置
桌面上的Reset快捷方式用户快速重置Tutorial所做的所有改动为初始状态。
2.5启动Mininet
本教程所有的联系都是使用相同的网络拓扑(如下图所示)。
网络中有6台交换机,4台外边的交换机上连接了6台主机,这4台交换机又连接到中间互连的2台交换机上。
启动Mininet(双击桌面的Mininet图标)即可启动此网络拓扑。
3激活数据包转发(ReactiveForwarding)
双击桌面上的ONOS图标,打开一个ONOS命令行提示符。
3.1Noping?
Why?
上面的网络拓扑中主机之间是不能ping通的。
在mininet提示符中输入下面的命令:
h11ping-c3h41
得到如下的结果:
h11ping-c3h41
PING10.0.0.19(10.0.0.19)56(84)bytesofdata.
From10.0.0.1icmp_seq=1DestinationHostUnreachable
From10.0.0.1icmp_seq=2DestinationHostUnreachable
From10.0.0.1icmp_seq=3DestinationHostUnreachable
---10.0.0.19pingstatistics---
3packetstransmitted,0received,+3errors,100%packetloss,time2009ms
“ReactiveForwarding”是一个非常简单的SDN应用程序,它为每一个被送到控制器的数据包安装流表。
但是此应用默认没有被加载。
使用如下命令查看已经被加载的应用程序列表:
list
110|Active|80|1.0.0.SNAPSHOT|onos-rest
116|Active|80|1.0.0.SNAPSHOT|onos-of-api
117|Active|80|1.0.0.SNAPSHOT|onos-of-ctl
118|Active|80|1.0.0.SNAPSHOT|onos-lldp-provider
119|Active|80|1.0.0.SNAPSHOT|onos-host-provider
120|Active|80|1.0.0.SNAPSHOT|onos-of-provider-device
121|Active|80|1.0.0.SNAPSHOT|onos-of-provider-packet
122|Active|80|1.0.0.SNAPSHOT|onos-of-provider-flow
136|Active|80|1.0.0.SNAPSHOT|onos-cli
137|Active|80|8.1.15.v20140411|Jetty:
:
Websocket
138|Active|80|1.0.0.SNAPSHOT|onos-gui
151|Active|80|1.0.0.SNAPSHOT|onos-core-net
152|Active|80|1.0.0.SNAPSHOT|onos-core-trivial
3.2加载ReactiveForwarding应用
在ONOS提示符中输入如下命令(可以使用tab键提示输入内容):
ONOS>
feature:
installonos-app-fwd
在Mininet提示符中再次输入ping命令,即可ping通:
h11pingh41
64bytesfrom10.0.0.19:
icmp_req=1ttl=64time=9.12ms
3.3启动和停止
在ONOS命令行提示符中输入如下的命令停止和启动应用:
stoponos-app-fwd
停止应用程序后,不能ping通。
startonos-app-fwd
启动应用程序后,能ping通。
4ONOSCLI命令
ONOS有很多命令,本节学习最常用命令。
获得命令行帮助的方法如下:
helponos
4.1devices命令
如果没有设备去控制的话,SDN控制器就没什么用。
列出控制其中现有的设备列表:
devices
id=of:
0000000000000001,available=true,role=MASTER,type=SWITCH,mfr=Nicira,Inc.,hw=OpenvSwitch,sw=2.1.3,serial=None,protocol=OF_10
0000000000000002,available=true,role=MASTER,type=SWITCH,mfr=Nicira,Inc.,hw=OpenvSwitch,sw=2.1.3,serial=None,protocol=OF_10
000000000000000b,available=true,role=MASTER,type=SWITCH,mfr=Nicira,Inc.,hw=OpenvSwitch,sw=2.1.3,serial=None,protocol=OF_10
000000000000000c,available=true,role=MASTER,type=SWITCH,mfr=Nicira,Inc.,hw=OpenvSwitch,sw=2.1.3,serial=None,protocol=OF_10
000000000000000d,available=true,role=MASTER,type=SWITCH,mfr=Nicira,Inc.,hw=OpenvSwitch,sw=2.1.3,serial=None,protocol=OF_10
4.2links命令
显示系统中设备间的连接信息:
links
src=of:
000000000000000e/1,dst=of:
0000000000000001/5,type=DIRECT,state=ACTIVE
000000000000000d/1,dst=of:
0000000000000001/4,type=DIRECT,state=ACTIVE
。
0000000000000001/1,dst=of:
0000000000000002/1,type=DIRECT,state=ACTIVE
4.3hosts命令
列出网络中的主机列表:
hosts
id=00:
00:
01/-1,mac=00:
01,location=of:
000000000000000b/3,vlan=-1,ip(s)=[10.0.0.1]
13/-1,mac=00:
13,location=of:
000000000000000e/
4.4flows命令
流命令允许你查看系统中当前注册的流表项,流表项有如下几个状态:
∙PENDING_ADD
–流被提交和转发给交换机。
∙ADDED
–流已被添加到交换机。
∙PENDING_REMOVE
–请求删除已被提交和转发给交换机的流。
∙REMOVED
–流表规则已被删除
首先,在网络中开始发送一些流量:
接着在ONOS的提示符中输入流命令,以查看流表信息:
flows
deviceId=of:
0000000000000001,flowRuleCount=1
id=30000b889cb32,state=ADDED,bytes=8722,packets=89,duration=89,priority=10,appId=org.onlab.onos.fwd
selector=[ETH_TYPE{ethType=800},ETH_SRC{mac=00:
01},ETH_DST{mac=00:
13},IN_PORT{port=2}]
treatment=[OUTPUT{port=5}]
0000000000000002,flowRuleCount=1
id=30000b889cf4d,state=ADDED,bytes=8624,packets=88,duration=88,priority=10,appId=org.onlab.onos.fwd
13},ETH_DST{mac=00:
01},IN_PORT{port=5}]
treatment=[OUTPUT{port=2}]
000000000000000b,flowRuleCount=2
id=30000b88a8321,state=ADDED,bytes=8722,packets=89,duration=89,priority=10,appId=org.onlab.onos.fwd
01},IN_PORT{port=2}]
treatment=[OUTPUT{port=3}]
id=30000b88a833e,state=ADDED,bytes=8722,packets=89,duration=89,priority=10,appId=org.onlab.onos.fwd
13},IN_PORT{port=3}]
treatment=[OUTPUT{port=1}]
000000000000000c,flowRuleCount=0
000000000000000d,flowRuleCount=0
000000000000000e,flowRuleCount=2
id=30000b88a8e45,state=ADDED,bytes=8722,packets=89,duration=89,priority=10,appId=org.onlab.onos.fwd
13},IN_PORT{port=1}]
id=30000b88a8e82,state=ADDED,bytes=8722,packets=89,duration=89,priority=10,appId=org.onlab.onos.fwd
01},IN_PORT{port=3}]
从上面的输出中可以看出,ONOS提供了很多交换机上流表的详细信息。
例如:
每一条流表项定义一个“selector”和一个“treatment”,他们被流表项进行流量匹配,和匹配的流量如何被处理。
每一个流表项被appId标记,指出此流表项被那个应用程序安装,这是非常有用的特性,因为它能帮助管理员区分那个应用程序行为不当或耗费较多的资源。
4.5apps命令
列出当前在ONOS上运行的应用程序列表:
apps
id=1,name=.intent
id=2,name=org.onlab.onos.fwd
如上所示,目前为止,本tutorial加载了2个应用程序。
4.6paths命令
对于给定的网络拓扑,ONOS计算所有任意两个节点见的最短路径。
这一点对于那些获取路径信息用于流表安装的应用程序特别有用。
当然也可用于其他用途。
paths命令有两个参数(分别是两个设备)。
可以使用ONOS的tab键的命令补全功能。
paths<
TAB>
of:
0000000000000001of:
0000000000000002of:
000000000000000b
000000000000000cof:
000000000000000dof:
000000000000000e
ONOS会列出可用的设备列表,方便找到你需要的设备。
下面是paths命令的一个输出结果示例:
pathsof:
000000000000000bof:
000000000000000e
000000000000000b/1-of:
0000000000000001/2==>
0000000000000001/5-of:
000000000000000e/1;
cost=2.0
000000000000000b/2-of:
0000000000000002/2==>
0000000000000002/5-of:
4.7Intent命令
ONOS中的intent命令允许我们查看系统中的intents。
“intents”存在如下几个状态:
–
SUBMITTED
–“intent”已经被提交,很快将被处理。
COMPILING
–“intent”正在被编译,这是一个瞬态(transientstate)。
INSTALLING
–安装的“intent”正在被处理。
INSTALLED
–安装的“intent”安装成功。
.
RECOMPILING
–“intent”遭遇失败后,正在被重新编译。
WITHDRAWING
–“intent”正在被撤销。
WITHDRAWN
–“intent”已经被删除。
FAILED
–由于“intent”不能被满足,而处于失败状态。
更多关于Intents的详细,参考:
//wiki.onosproject.org/display/ONOS/The+Intent+Framework
intents
id=0x0,state=INSTALLED,type=HostToHostIntent,appId=org.onlab.onos.gui
constraints=[LinkTypeConstraint{inclusive=false,types=[OPTICAL]}]
id=0x1,state=WITHDRAWN,type=HostToHostIntent,appId=org.onlab.onos.cli
使用上面的命令在添加“intent”之前,是看不到任何“intent”。
在本教程的下一节中,你将加载“intentreactiveforwarding”应用程序,它可以在需要的时候自动添加intents。
下面的命令(intents-i)能输出intent被编译后的“sub-intents”。
intents-i
id=0x2,state=INSTALLED,type=HostToHostIntent,appId=org.onlab.onos.ifwd
installable=[
PathIntent{id=0x4,appId=DefaultApplicationId{id=2,name=org.onlab.onos.ifwd},
selector=DefaultTrafficSelector{criteria=[ETH_SRC{mac=00:
0D},ETH_DST{mac=00:
07}]},
treatment=DefaultTrafficTreatment{instructions=[]},constraints=[LinkTypeConstraint{inclusive=false,types=[OPTICAL]}],
path=DefaultPath{src=ConnectPoint{elementId=00:
0D/-1,portNumber=0},
dst=ConnectPoint{elementId=00:
07/-1,portNumber=0},type=INDIRECT,state=ACTIVE,durable=false}},
PathIntent{id=0x5,appId=DefaultApplicationId{id=2,name=org.onlab.onos.ifwd},
07},ETH_DST{mac=00:
0D}]},
treatment=DefaultTrafficTreatment{instructions=[]},constraints=[LinkTypeConstraint{inclusive=false,types=[OPTICAL]}],
07/-1,portNumber=0},
0D/-1,portNumber=0},type=INDIRECT,state=ACTIVE,durable=false}}]
例如,对于“hosttohost”的“intent”已经被编译成2条“pathintents”,这2条“pathintents”具有适当的流量选择和动作(withtheappropriatetrafficselectionsandactionscomputedonyourbehalf)
5IntentReactiveForwarding
ONOS中的另一个范例应用是“intentreactiveforwarding”。
与前面看到的,基于每个数据包推送流表项不同,“intentreactiveforwarding”应用提供“intent”。
特殊的,它提供一个“hosttohost”的“intent”(一个简单的connectivityintent),用于两个主机间的连通性。
5.1除旧迎新
首先,移除原先加载的“reactiveforwarding”应用,并且加载“intentreactiveforwarding”应用。
feature:
uninstallonos-app-fwd
installonos-app-ifwd
注意两个应用的名字差了一个“i”。
:
)
OK,查看一下应用是否加载正确:
id=0,name=.intent
id=1,name=org.onlab.onos.fwd
id=2,name=org.onlab.onos.ifwd
如上所示,“intentreactiveforwarding”被正确加载。
TheappId“ReactiveForwarding”应用的appId还在,所以如果你重新加载此应用,它将得到与先前相同的appId。
5.2IntentionallyReact
接下来,让我们转发一些流量:
h21pingh31
PING10.0.0.13(10.0.0.13)56(84)bytesofdata.
64bytesfrom10.0.0.13:
icmp_seq=1ttl=64time=25.7ms
icmp_seq=2ttl=64time=1.73ms
64bytesfr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- onos 教程