zoukankan      html  css  js  c++  java
  • Open vSwitch的VxLAN隧道网络实验

    实验参考

    Open vSwitch的VxLAN隧道网络实验

    实验步骤

    1 预先配置

    登录两台Mininet虚拟机或者是已安装OpenvSwitch的虚拟机。

    查看两台虚拟机IP

    #ifconfig
    

    验证OvS服务是否被启动好:

    # ps –ef|grep ovs
    

    OvS已启动

    步骤1:分别在两台机器上创建网桥:

    #sudo ovs-vsctl add-br br0  
    #sudo ovs-vsctl add-br br1  
    

    步骤2:mn虚拟机上将eth0的IP赋给br1:

    #ifconfig eth0 0 up
    #ifconfig br1 30.0.1.13 up
    

    给mn虚拟机的br1重新添加路由:

    #route add default gw 30.0.1.12
    

    mn的路由如下显示:

    #sudo ovs-vsctl add-port br1 eth0  
    #ovs-vsctl show
    

     

    步骤3:mn1虚拟机上将eth0的IP赋给br1:

    #ifconfig eth0 0 up
    #ifconfig br1 30.0.1.6 up
    

    给mn1虚拟机的br1重新添加路由:

    #route add default gw 30.0.1.5
    

      

    mn1虚拟机的路由显示如下:

    #ovs-vsctl add-port br1 eth0
    #ovs-vsctl show
    

    前期实验环境已准备好。

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

    在mn虚拟机上给br0配置一个IP:

    # ifconfig br0 30.0.0.2/8 up

    在mn1虚拟机上给br0配置一个与mn虚拟机上br0同一网段的IP地址:

    # ifconfig br0 30.0.0.3/8 up
    

    验证br1和br1的IP是否通信:Mn虚拟机的br1 ping mn1虚拟机的br1,是可以ping通的:

    mn虚拟机ping mn1虚拟机的br0,是ping不通的:

    Br0和另一台设备的br0不能通信,搭建隧道的目的就是让两台机器的br0(数据层面)能够实现通信。

    实验本身是在虚拟机中操作,所以实验中br0桥上没有再下挂主机,分别给两台虚拟机的br0指定两个相同网段的IP,然后通过搭建VxLAN隧道让这两个网桥能够实现通信,

    设置如下:验证mn虚拟机的br0和mn1虚拟机的br0是否通信:
    在mn虚拟机上创建VxLAN:

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

    在mn1虚拟机上创建VxLAN:

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

    验证mn虚拟机的br0和mn1虚拟机的br0是否通信:

    验证经过设置VxLAN后,两个虚拟机的同一网段数据层面是通信的。

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

    在mn虚拟机上给br0配置一个IP:

    # ifconfig br0 30.0.0.1/8 up
    

    在mn1虚拟机上给br0配置一个与mn虚拟机上br0不是同一网段的IP地址:

    # ifconfig br0 40.0.0.1/8 up
    

    验证mn虚拟机的br0和mn1虚拟机br0的IP是否通信:
    mn虚拟机ping mn1虚拟机的br0,是ping不通的:

    br0和另一台设备的br0不能通信,搭建隧道的目的就是让两台机器的br0(数据层面)能够实现通信。

    实验本身是在虚拟机中操作,分别给两台虚拟机的br0指定两个不同网段的IP,然后通过搭建VxLAN隧道及设置路由让这两个网桥能够实现通信,设置如下:

    在mn虚拟机上创建VxLAN:

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

    在mn1虚拟机上创建VxLAN:

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

    VxLAN设置好后,mn虚拟机的br0和mn1虚拟机的br0仍不能通信通信,需要设置静态路由才能通信,如下设置:
    在mn虚拟机上添加路由:

    # route add –net 40.0.0.0 netmask 255.0.0.0 gw 30.0.0.1 dev br0
    

    在mn1虚拟机上添加路由:

    # route add –net 30.0.0.0 netmask 255.0.0.0 gw 40.0.0.1 dev br0

    验证mn虚拟机的br0和mn1虚拟机的br0是否通信:

    验证经过设置VxLAN及路由后,两个虚拟机的不同网段数据层面是通信的。

    实验总结

        在实验参考中,我按照步骤来,但是两个虚拟机的ping总是无法连接。后来做了多次实验,发现将ifconfig br1 20.0.4.196/29 up 改为 ifconfig br1 20.0.4.196 up 才能连接。不知道为什么?

  • 相关阅读:
    关于使用css3属性:transform固定菜单位置,在滑动页面时菜单闪现抖动的问题
    使用iscroll.js插件时,遇到在Android端无法点击a超链的解决办法
    window.external的使用
    SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系
    chain.doFilter(request,response)含义
    巧用Ajax的beforeSend 提高用户体验
    getRequestDispatcher(path).forward(),,执行完,后面的代码居然还会执行!!!记得加return 啊亲
    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
    ajax修改表单的值后dom没更新的解决办法
    .net core json序列化首字符小写和日期格式处理
  • 原文地址:https://www.cnblogs.com/fcw245838813/p/12267436.html
Copyright © 2011-2022 走看看