实验参考:
基于Mininet的VxLAN实验
实验步骤:
1. 如下图所示,在两台虚拟机中利用mininet创建两个网络,利用VxLAN连通这两个mininet环境。关闭默认的控制器后,通过下发流表确保网络的连通性:
2. 先查看两台虚拟机的IP 地址:
虚拟机vm1(192.168.0.109):
虚拟机vm2(192.168.0.105):
3. 分别在vm1和vm2中创建网络拓扑,包含1台主机和1个交换机:
$ sudo mininet –topo=single,1
4. 分别在vm1和vm2中创建vxlan接口,并对其进行配置:
1 mininet> sh ovs-vsctl add-port s1 vxlan 2 mininet> sh ovs-vsctl set interface vxlan type=vxlan option:remote_ip=<对方的IP> option:key=5566 ofport_request=9
设置完成后,进行查看:
虚拟机vm1(192.168.0.109):
虚拟机vm2(192.168.0.105):
5. 设置二者的主机IP:
mininet> h1 ifconfig h1-eth0 <IPaddress> #两者的IP地址要处于同一网段且不重复
6. 执行ping操作,用vm1去pingvm2:
7. 关闭二者的控制器:
1 $ ps -aux|grep controller #查找控制器进程id 2 $ sudo kill <id> #填入root的对应id
再次进行ping操作:
8. 下发流表,指定数据转发端口,使二者能够连通:
虚拟机vm1(192.168.0.109):
虚拟机vm2(192.168.0.105):
再次进行ping操作:
实验结论:
VxLAN是一种overlay的网络技术,可扩展局域网。VxLAN学习地址依旧保持的二层协议的特征,节点之间不会周期性交换路由表,遇到不认识的MAC地址则通过组播的方式获取路径,在SDN网络中,则向SDN控制器寻求帮助。本实验中,VxLAN先是依靠控制器实现地址学习,当关闭控制器后,则通过下发流表的方式引导数据包传播。