1 实验目的
熟悉Postman的使用;
熟悉如何使用OpenDaylight通过Postman下发流表,建立VxLAN隧道,实现通信。
2 实验原理
VXLAN 是Virtual eXtensible LANs 的缩写,它是对VLAN的一个扩展,是非常新的一个 tunnel 技术,在Open vSwitch中应用也非常多。Linux 内核的upstream中也刚刚加入 VXLAN的实现。相比GRE tunnel 它有着很好的扩展性,同时解决了很多其它问题。
Postman插件充当着交互方式的“桥梁”,它可以利用Chrome插件的形式把各种模拟用户HTTP请求的数据发送到服务器,以便开发人员能够及时地作出正确的响应。
3 实验任务
本实验通过OpenDaylight及Postman下发关于VxLAN的流表,实现相同网段内的设备通信。实验拓扑如下:
4 实验步骤
4.1 搭建环境
步骤1:创建虚网:1 在首页单击“创建虚网”,本次实验虚网名为“Slice5”,虚网名只能包括数字、字母和下划线。
2 单击“下一步”,选择网络拓扑,再单击“下一步”,确认虚网清单。
3 单击“创建”,成功创建虚网。
步骤2:添加控制器
1 单击虚网名(这里是“Slice5”),进入“虚网详情”页。
2 单击“控制器”部分的“”按钮,请根据实际情况选择控制器。由于启动虚网必须要创建一个控制器,此处的控制器选择不影响实验结果(这里选择的是Floodlight控制器),接着按照提示直到创建成功。
步骤3:添加网关
单击“网关”部分的""按钮,添加网关。
步骤4:创建虚拟机
本实验需要创建三个虚拟机,这里分别取名odl、mininet1、mininet2。虚拟机odl选择OpenDaylight镜像作为控制器,虚拟机mininet1和mininet2选择Mininet镜像作为所需的Mininet(注意:odl的内存大于4G。这里odl选择了2核,6G;mininet1和mininet2选择了1核,1G)。由于实验基于OpenDaylight锂版本和Postman,所以请按照如下显示进行镜像选择:
虚拟机odl选择的镜像:
虚拟机mininet1和mininet2选择的镜像:
创建成功后的虚网详情:
步骤5:启动虚网、网关和虚拟机
1 单击页面右上角的“”按钮,启动虚网,虚网启动成功后,控制器也会启动成功。
2 单击“网关”部分的“”按钮,启动网关。
3 选择“虚拟机”部分创建好的三台虚拟机,单击“”按钮启动。
4.2 配置环境
步骤1:查看mininet1和mininet2的IP信息
mininet1:
mininet2:
步骤2:验证OvS已经启动
1 |
#ps –ef|grepovs |
步骤3:分别在mininet1和mininet2上创建网桥br0(数据平面)、br1(控制平面),并且将端口eth0挂到br1上。
1 2 3 |
#sudo ovs-vsctl add-br br0 #sudo ovs-vsctl add-br br1 #sudo ovs-vsctl add-port br1 eth0 |
步骤4:在虚拟机mininet1上将eth0的IP赋给br1;给br1重新添加路由;给br0赋予IP(这里设置为40.0.0.1)
1 2 3 4 |
#ifconfig eth0 0 up #ifconfig br1 20.0.4.36/29 up #route add default gw 20.0.4.33 #ifconfig br0 40.0.0.1/8 up |
mininet1的路由如下:
查看交换机信息:
1 |
#ovs-vsctl show |
步骤5:在虚拟机mininet2上将eth0的IP赋给br1;给br1重新添加路由;给br0赋予IP(这里设置为40.0.0.2)
1 2 3 4 |
#ifconfig eth0 0 up #ifconfig br1 20.0.4.35/29 up #route add default gw 20.0.4.33 #ifconfig br0 40.0.0.2/8 up |
mininet2的路由如下:
查看交换机信息:
1 |
#ovs-vsctl show |
4.3 验证目前的通信情况
步骤1:验证mininet1的br1和mininet2的br1是通信的
步骤2:验证mininet1的br0和mininet2的br0是不能进行通信的
4.4 进行VxLAN设置,实现同一网段的通信
步骤1:给OpenDaylight安装组件,为Postman通过ovsdb下发流表作准备
1 2 3 |
feature:install odl-l2switch-all odl-ovsdb-all odl-base-all odl-aaa-authn odl-restconf-all odl-nsf-all odl-adsal-northbound odl-mdsal-apidocs odl-dlux-all feature:install odl-ovsdb-southbound-api odl-ovsdb-southbound-impl odl-ovsdb-southbound-impl-rest odl-ovsdb-southbound-impl-ui odl-openflowplugin-all-li odl-openflowplugin-adsal-compatibility-all |
步骤2:分别在mininet1和mininet2上手动设置manager,两个网桥自动与控制器相连。
1 |
#ovs-vsctl set-manager tcp:20.0.4.37:6640 |
mininet1:
mininet2:
步骤3:利用Postman下发流表信息,实现VxLAN网络
1获取节点信息。
GET http://20.0.4.37:8282/ovsdb/nb/v3/node
Header | Value |
Authorization | Basic YWRtaW46YWRtaW4= |
2 获取网桥的uuid,并且找到br0的uuid,在创建VxLAN端口的时候需要用到。
GET http:// 20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.35:60079/tables/bridge/rows/
Header | Value |
Authorization | Basic YWRtaW46YWRtaW4= |
GET http:// 20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.36:51067/tables/bridge/rows/
Header | Value |
Authorization | Basic YWRtaW46YWRtaW4= |
3 创建VxLAN端口(这里名为vtep)。
POST http:// 20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.35:60079/tables/port/rows
Header | Value |
Content-Type | application/json |
Body信息看下图(注意大小写),其中uuid就是上一步中获取的br0的uuid。
POST http:// 20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.36:51067/tables/port/rows
Header | Value |
Content-Type | application/json |
4获取VxLAN端口下自动生成的名为vtep的interface的uuid,下面更新接口的时候要用到。
GET http:// 20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.35:60079/tables/interface/rows/
Header | Value |
Authorization | Basic YWRtaW46YWRtaW4= |
GET http:// 20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.36:51067/tables/interface/rows/
Header | Value |
Authorization | Basic YWRtaW46YWRtaW4= |
5 更新VxLAN接口。
PUT http://20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.35:60079/tables/interface/rows/18c5e03c-6e08-401b-b3f2-ac92658f0fc1
Header | Value |
Content-Type | application/json |
Authorization | Basic YWRtaW46YWRtaW4= |
Body信息请看下图。
PUT http://20.0.4.37:8282/ovsdb/nb/v2/node/OVS/20.0.4.36:51067/tables/interface/rows/386c4610-4dad-4c21-9152-1557abac2e4a
Header | Value |
Content-Type | application/json |
Authorization | Basic YWRtaW46YWRtaW4= |
6 分别查看mininet1和mininet2上交换机信息,VxLAN隧道已经创建好。
mininet1:
mininet2:
7 将网桥与控制器断连。
8 再次分别查看mininet1和mininet2上交换机信息。
mininet1:
mininet2:
9 验证mininet1的br0和mininet2的br0能够通信。
Wireshark抓包截图如下:
5 实验结论
本实验基于OpenDaylight,通过Postman下发流表,实现VxLAN网络进行通信。
请输入评论内容