查看Opendaylight控制器
登陆Opendaylight控制器,在查看控制器主机的6633端口监听状态
root@guest-virtual-machine:/home/guest# netstat -an|grep 6633
关闭防火墙
sudo ufw disable
访问WEB页面
在OVS主机(Miniet主机)中创建拓扑结构,并测试连通性
sudo mn --topo=single,3 --controller=remote,ip=192.168.123.10,port=6633 --switch ovsk,protocols=OpenFlow13
在控制器页面查看到的拓扑图
使用postman查看交换机id信息,交换机id为1
http://192.168.123.10:8080/restconf/operational/network-topology:network-topology
下发第一条流表
PUT
http://192.168.123.10:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/1
主机1的MAC地址:00:0c:29:91:9c:e6
主机2的MAC地址:42:59:6f:b2:ee:64
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<priority>200</priority>
<flow-name>Foo1</flow-name>
<idle-timeout>0</idle-timeout>
<hard-timeout>0</hard-timeout>
<match>
<ethernet-match>
<ethernet-source>
<address>00:0c:29:91:9c:e6</address>
</ethernet-source>
<ethernet-destination>
<address>42:59:6f:b2:ee:64</address>
</ethernet-destination>
</ethernet-match>
</match>
<id>1</id>
<table_id>0</table_id>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>2</output-node-connector>
</output-action>
</action>
</apply-actions>
</instruction>
</instructions>
</flow>
下发第二条流表
http://192.168.123.10:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/2
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<priority>200</priority>
<flow-name>Foo1</flow-name>
<idle-timeout>0</idle-timeout>
<hard-timeout>0</hard-timeout>
<match>
<ethernet-match>
<ethernet-source>
<address>42:59:6f:b2:ee:64</address>
</ethernet-source>
<ethernet-destination>
<address>00:0c:29:91:9c:e6</address>
</ethernet-destination>
</ethernet-match>
</match>
<id>2</id>
<table_id>0</table_id>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>1</output-node-connector>
</output-action>
</action>
</apply-actions>
</instruction>
</instructions>
</flow>
登陆交换机,查看流表
ovs-ofctl dump-flows s1
删除第一条流表
http://192.168.123.10:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/1
删除第二条流表
http://192.168.123.10:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/2
]]>主机名 | ip | 角色 |
---|---|---|
ovs | 192.168.123.10 | ovs |
首先连接SSH
用finalshell连接,需要提前配置好ip和网卡
上传ovs源文件,并解压
进入目录,执行./configure,生成Makefile文件
然后进入编译安装
make
make install
使用Opendaylight虚拟机
安装jdk1.8,并启动opendaylight
安装组件:
首先清理旧数据
DELETE http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/
然后CLI命令行里再次清理
sudo mn -c
生成拓扑并连接 OpenDaylight
sudo mn --topo=single,3 --controller=remote,ip=本机ip,port=6633 --switch ovsk,protocols=OpenFlow13
使用 Postman 填入 JSON 格式的 http 请求
//以下内容是Body中需要填写的
{
"flow": [
{
"id": "1",
"match": {
"in-port": "1",
"ethernet-match": {
"ethernet-type": {
"type": "0x0800"
}
},
"ipv4-destination": "10.0.0.3/32"
},
"instructions": {
"instruction": [
{
"order": "0",
"apply-actions": {
"action": [
{
"order": "0",
"drop-action": {}
}
]
}
}
]
},
"flow-name": "flow1",
"priority": "65535",
"hard-timeout": "5", //此处需要修改间隔,意味着h1 ping h3 有5秒时间是中断的
"cookie": "2",
"table_id": "0"
}
]
}
现在CLI中h1 ping h3,再去PUT数据链接
测试成功,结果符合预期
鸣谢:小桂哥,King
]]>