51学通信论坛2017新版

标题: 基于Mininet的VxLAN实验 [打印本页]

作者: admin    时间: 2017-9-17 12:12
标题: 基于Mininet的VxLAN实验
</p>1.实验目的

本实验中本实验用VxLAN连接两个独立的mininet环境,并通过在mininet环境中设置搭建VxLAN,显示VxLAN的优势。并且在没有控制器的条件下,通过下发流表的方式确保网络的连通性。

2.实验原理

VxLAN控制平面隧道的实现方式主要分为三种:通过数据平面自学习、通过控制协议学习和通过SDN Controller实现。本实验中通过SDN控制器实现两个mininet环境的通信,并且关闭控制器,下发流表引导数据包转发。

3.实验任务

如下图所示,在两台虚拟机中利用mininet创建两个网络,利用VxLAN连通这两个mininet环境。关闭默认的控制器后,通过下发流表确保网络的连通性。本实验要求ovs版本在2.0.1以上。

[attach]776[/attach]


4.实验步骤

虚拟机1的IP:
[attach]777[/attach]
虚拟机2的IP:

[attach]778[/attach]

分别在vm1和vm2中创建网络拓扑,包含1台主机和1个交换机:
Shell
$ sudo mininet –topo=single,1
分别在vm1和vm2中创建vxlan接口:
Shell
mininet> sh ovs-vsctl add-port s1 vxlan
配置vm1和vm2中的vxlan接口: vm1:
Shell
mininet> sh ovs-vsctl set interface vxlan type=vxlan option:remote_ip=10.0.0.7 option:key=5566 ofport_request=9
vm2:
Shell
mininet> sh ovs-vsctl set interface vxlan type=vxlan option:remote_ip=10.0.0.6 option:key=5566 ofport_request=9
Vm1:

[attach]779[/attach]

Vm2:

[attach]780[/attach]

设置vm1中的主机IP:
Shell
mininet> h1 ifconfig h1-eth0 10.0.0.1
设置vm2中的主机IP:
Shell
mininet> h1 ifconfig h1-eth0 10.0.0.2
用vm1中的主机ping vm2中的主机:
Shell
mininet> h1 ping –c 5 10.0.0.2

[attach]781[/attach]

分别关闭vm1和vm2中默认的控制器:
再次用vm1中的主机ping vm2中的主机:
停止控制器后,两个vm中的主机无法通信,为了使两个主机能够通信,分别在vm1和vm2中下发流表: Vm1:
Shell
mininet>sh ovs-ofctl add-flow s1 ‘in_port=1,actions=set_field:5566->tun_id,output:9’
Mininet>sh ovs-ofctl add-flow s1 in_port=9,tun_id=5566,actions=output:1
mininet>sh ovs-ofctl dump-flows s1

[attach]782[/attach]

mininet>sh ovs-ofctl add-flow s1 in_port=9,tun_id=5566,actions=output:1
mininet>sh ovs-ofctl dump-flows s1

[attach]783[/attach]

再次用vm1中的主机ping vm2中的主机:

[attach]784[/attach]


5.实验结论


VxLAN是一种overlay的网络技术,可扩展局域网。VxLAN学习地址依旧保持的二层协议的特征,节点之间不会周期性交换路由表,遇到不认识的MAC地址则通过组播的方式获取路径,在SDN网络中,则向SDN控制器寻求帮助。本实验中,VxLAN先是依靠控制器实现地址学习,当关闭控制器后,则通过下发流表的方式引导数据包传播。
声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。




欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3