• 《深入理解 OpenStack Neutron》- 发展和虚拟化


    Neutron的两种实现方式

    OpenStack Neutron实现

    最早期的实现是单一平面,路由器使用的还是物理路由器,代表一个共享网络必须在同一个网段 ,相当于实现了一个二层交换机功能

     到现在能够支持多租户隔离,多平面等功能,路由器和交换机都实现了虚拟化

    Neutron + SDN 实现

     因为单纯的虚拟化路由器和交换机在效率上还是不能和硬件相比,还有硬件厂商也不同意不然自家设备卖不出去,便一起出了这款模型,SDN控制器负责对物理设备进行管理,SDN控制面负责定义规则,数据面负责根据规则进行转发

    虚拟网络基础

    tap设备 : 虚拟网卡,绑定给虚机

     

    namespace : 和C++的namespace一样的作用,目的是将资源隔离,比如进程

    veth pair : 一对 tap设备,用于两台虚机通信

    Bridge : 用于多台机器间通信,因为多台机器如果只用veth pair的话需要建立很多对,就用了一个交换机坐中间点

     Router : 本身就是一个路由器

    tun 设备:目的是将不同地方的二层网络汇合成为一个大二层网络

     

    iptables : 实现防火墙 NAT功能 , iptables内置三张表  filter (防火墙),nat(NAT), mangle(流量整形,修改数据包内容)

     

     

     NAT:C类地址公网地址短缺,将私有IP映射到公网IP上获得上网的功能

    静态NAT: 一个私有ip 对应 一个公网ip,对应关系是确定的

    动态NAT: 用于私有ip数量> 公网ip数量的情况,但是同时上线的私有ip数量<=公网ip数量的情况,之间的对应关系是动态不确定的

    端口多路复用/PAT:用于只有一个公网IP的情况下,利用端口来区分不同的私有IP

    SNAT/DNAT:

      SNAT 内部地址要访问公网,内部地址自动转换为公有IP 

      DNAT 内部对外提供服务,外部访问内网时候,公网IP代为接收消息,然后内部再做地址转换

    Firewall:根据规则拦截放行包

     mangle

     

     

  • 相关阅读:
    转载-----nodejs内存定位
    node内存泄露排查转载
    git使用规范
    git的使用方法
    Sublime Text 3最好的功能、插件和设置
    Appium-Python-Windows环境搭建笔记
    MPI Note
    先装VS2008之后,又装了2013,然后启动VS2008提示“Tools Version”有问题?
    SQLite 编译错误
    WPF异常捕获三种处理 UI线程, 全局异常,Task异常
  • 原文地址:https://www.cnblogs.com/Lis-/p/14314236.html
Copyright © 2020-2023  润新知