1 实验目的

该实验通过Open vSwitch构建Overlay的VxLAN网络,更直观的展现VxLAN的优势。在实验过程中,可以了解如何建立VxLAN隧道并进行配置,并实现相同网段和不同网段之间的通信。

2 实验原理

VxLAN 是 Virtual eXtensible LANs 的缩写,它是对 VLAN 的一个扩展,是非常新的一个 tunnel 技术,在Open vSwitch中应用也非常多。Linux 内核的 upstream 中也刚刚加入 VXLAN 的实现。相比 GRE tunnel 它有着很好的扩展性,同时解决了很多其它问题。

从数量上讲,它把 12 bit 的 VLAN tag 扩展成了 24 bit。从实现上讲,它是 L2 over UDP,它利用了UDP 同时也是 IPv4 的单播和多播,可以跨 L3 边界,很巧妙地解决了 GRE tunnel 和 VLAN 存在的不足,让组网变得更加灵活。

3 实验任务

基于Open vSwitch的VxLAN隧道,实现了相同和不同网段内设备的通信,启动OpenvSwitch服务,创建VxLAN隧道,本实验主要是通过在OpenvSwitch上手动命令操作设置连接VxLAN来实现相同和不同网段的通信;

因实验平台中在虚拟机中没有创建数据层面下的虚拟机,如图中的VM1、VM2,所以通过在数据层面Br0上实现不同网段通信,以达到和VM1、VM2相同和不同网段通信的目的。此实验将创建两个网桥,一个作为控制层面,如包含eth0端口的Br1;一个作为数据层面,如Br0,两台Mininet虚拟机的Br0在实验中分别属于相同和不同的网段。

首先先对Vxlan有一个了解:

https://blog.csdn.net/zhipingxi/article/details/78741942

网段的定义:

通常使用同一物理层的设备之间必然通过相同的传输介质直接相互连接,(如交叉双绞线直接连接的两台主机),但是两组其传输介质并非直接相连的网络设备,如果它们的传输介质通过工作在物理层的扩展设备如中继器集线器等转接连接,则仍然被视为同一物理层中的设备,是一个而非两个网段。另外,工作在数据链路层或更高层的设备如网桥交换机路由器等等,由它们连接起来的两组设备仍然分别处于各自独立的物理层,因此是两个网段。

网桥实现两个网段的桥接功能,同时也起到重发器的作用,即延长线路距离及信号再生和转发。交换机原理上也工作在数据链路层,可实现多个网段的信息交换,网桥和交换机可以隔离两个网段,可以防止在某一个网段的数据被无条件地广播到另一网段,这是因为网桥接到数据帧后,判断接收到的数据帧目的地址是否和源地址在同一网段,是的话,就不再转发。交换机被称为多端口网桥,交换机的每个端口可以连接一个网段。 [1]

前面所讨论的学术定义是“网段”在物理层的严格定义,“网段”还有一些不严格的含义,比如指代以太网上的一个广播域,这是数据链路层上一个独立的内部相互作用区域。

4.1 预先配置好两个虚拟机

4.1.1   ifconfig

4.1.2  分别在两台机器上创建网桥

ovs-vsctl add-br br0 #数据层面

ovs-vsctl add-br br1 #控制层面

4.1.3   将ens33的IP赋予给这个网桥br1

 ifconfig ens33 0 up

ifconfig br1 20.0.4.196/29 up

4.1.4  给mn虚拟机的br1重新添加路由并添加端口ens33

route add default gw 20.0.4.193

ovs-vsctl add-port br1 ens33 

另一台虚拟机也是如此:

 ovs-vsctl add-br br0

ovs-vsctl add-br br1

ifconfig ens33 0 up

ifconfig br1 20.0.4.195/29 up

route add default gw 20.0.4.193

ovs-vsctl add-port br1 ens33

ovs-vsctl show

4.2  设置VxLAN实现同一网段的通信

4.2.1 给两台虚拟机上的br0配置一个IP

ifconfig br0 30.0.0.2/8 up #第一个虚拟机

ifconfig br0 30.0.0.3/8 up #第二个虚拟机

可发现两个的br1是可以ping通的:

而一号机ping二号机的br0是不通的:

4.2.2  开通Vxlan隧道

我们需要搭建一个隧道让两机的br0连接起来这样就可以ping通啦(如下:第一行是一号机第二行是二号机)

ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.195

ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.196

两机互ping:

抓包测试:

sudo tcpdump -i ens33

4.4 设置VxLAN实现不同网段的通信

重新设置两机的br0的地址:

 ifconfig br0 30.0.0.1/8 up

 ifconfig br0 40.0.0.1/8 up

然后设置静态路由:

 route add –net 40.0.0.0 netmask 255.0.0.0 gw 30.0.0.1 dev br0

 route add –net 30.0.0.0 netmask 255.0.0.0 gw 40.0.0.1 dev br0

HOWEVER设置静态路由的时候出了点小问题导致无法ping通

总结:了解了对网段,网关,网桥还有Vxlan隧道的概念

Open vSwitch系列实验(三):Open vSwitch的VxLAN隧道网络实验的更多相关文章

  1. 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告

    实验题目 1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 2.下载搭档实验二的Complex代 ...

  2. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  3. 学号 20175313 《实验三 敏捷开发与XP实践》实验报告

    目录 实验三 敏捷开发与XP实践 一.实验内容 二.实验步骤 四.心得体会 五.码云链接 六.参考资料 实验三 敏捷开发与XP实践 一.实验内容 (1)编码标准 在IDEA中使用工具(Code-> ...

  4. 20175211 《实验三 敏捷开发与XP实践》实验报告

    目录 一.实验内容 二.实验步骤 四.实验过程中遇到的问题及其解决方法 五.心得体会 六.码云链接 七.结对成员链接 八.参考资料 一.实验内容 (1)编码标准 (2)Git的使用 (3)重构 (4) ...

  5. 20145302张薇《Java程序设计》实验三报告

    20145302张薇<Java程序设计>实验三:敏捷开发与XP实践 实验内容 使用git上传代码 使用git实现代码开发实践 实现代码的重载 使用git上传代码 git init git ...

  6. 20165220 实验三 敏捷开发与XP实践 实验报告

    实验三 敏捷开发与XP实践-1 实验要求: 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA ...

  7. 2017-2018-2 20165303 实验三《Java面向对象程序设计》实验报告

    实验三 敏捷开发与XP实践-1 实验要求 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参 ...

  8. 2018-2019-2 20175230 实验三《Java面向对象程序设计》实验报告

    目录 实验三 实验三 敏捷开发与XP实践 实验内容 实验要求 实验步骤 (一) 编码标准 (二)敏捷开发与XP (三)敏捷开发与XP 实验体会 实验三 实验三 敏捷开发与XP实践 实验内容 1.XP基 ...

  9. 20165227 实验三《敏捷开发与XP实践》实验报告

    2017-2018-4 20165227 实验三<敏捷开发与XP实践>实验报告 实验内容 1.XP基础 2.XP核心实践 3.相关工具 实验要求 1.没有Linux基础的同学建议先学习&l ...

随机推荐

  1. SQL SERVER-Extendevent检测TempDB增长

    --创建Session收集数tempDB增长数据 CREATE EVENT SESSION [Database_Growth_Watchdog] ON SERVER ADD EVENT sqlserv ...

  2. Linux GRUB手动安装方法详解

    需要手工安装 GRUB 主要有两种情况: Linux 系统原先不是使用 GRUB 作为引导程序而现在想要使用 GRUB 来作为引导程序: MBR 中的引导程序被覆盖,需要在 MBR 中重新安装 GRU ...

  3. 基于yum的方式安装Cloudera Manager Agent(使用Mysql 8.0版本)

    基于yum的方式安装Cloudera Manager Agent(使用Mysql 8.0版本) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.选择CDH版本 1>.确认 ...

  4. Exchange 退信550 5.1.11 RESOLVER.ADR.ExRecipNotFound

    问题描述: 在Exchange 2013环境下,某客户将一个用户的邮箱test@abc.com禁用,过了几天又想连接该邮箱,但是却没有找到禁用的邮箱,然后客户就Enable-MailBox重新创建了一 ...

  5. 2013.6.24 - OpenNE第四天

    今天晚上跟师兄讨论,这那几篇论文,对于<领域多词表 达翻译对的自动抽取及其应用>那篇,我的感觉是跟实体识别不太吻合.他的大概意思就是先讲所有有可能的多词表达都找出来,然后在用C-value ...

  6. STL用法之set

    [C++::STL]之set的用法 c++ set求差集,并集,交集

  7. myeclipse修改内存大小不足tomcat内存不足

    myeclipse修改内存大小不足 打开Windows-> Preferences -> Java->Installed JREs 点击右侧的jdk,然后点击“Edit”按钮 Def ...

  8. GBDT(梯度提升树) 原理小结

    在之前博客中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 以下简 ...

  9. python递归的最大层数?

    Python的最大递归层数是可以设置的,默认的在window上的最大递归层数是 998. 可以通过sys.setrecursionlimit()进行设置,但是一般默认不会超过3925-3929这个范围 ...

  10. Hbase节点及原理

    1.Hbase架构:Clinet.Zookeeper.Master.RegionServer.Region.Store.MemStore.HLog 1.读过程 2.写过程 https://www.cn ...