zoukankan      html  css  js  c++  java
  • 《深入理解 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

     

     

  • 相关阅读:
    Open source cryptocurrency exchange
    Salted Password Hashing
    95. Unique Binary Search Trees II
    714. Best Time to Buy and Sell Stock with Transaction Fee
    680. Valid Palindrome II
    Java compiler level does not match the version of the installed Java project facet.
    eclipse自动编译
    Exception in thread "main" java.lang.StackOverflowError(栈溢出)
    博客背景美化——动态雪花飘落
    java九九乘法表
  • 原文地址:https://www.cnblogs.com/Lis-/p/14314236.html
Copyright © 2011-2022 走看看