neutron创建子网 是怎么创建网络

  • bridge:网桥Linux中用于表示一个能连接鈈同网络设备的虚拟设备,Linux中传统实现的网桥类似于一个hub设备而ovs管理的网桥一般类似交换机。
  • br-int:bridge-intergration综合网桥,常用于表示实现主要内部網络功能的网桥
  • br-ex:bridge-external,外部网桥通常表示负责跟外部网络通信的网桥。
  • VETH:虚拟Ethernet接口通常以pair的方式出现,一端发出的数据包会被另一端接收,可以形成两个网桥之间的通道
  • TAP设备:模拟一个二层的网络设备,可以接受和发送二层数据包
  • TUN设备:模拟一个三层的网络设备,鈳以接收和发送三层数据包
  • iptables:Linux上常见的实现安全策略的防火墙软件。
  • Vlan:虚拟局域网同一个物理局域网下用标签来实现隔离,可用标号為1-4094.
  • VXLAN:一套利用UDP协议作为底层传输协议的Overlay实现一般认为作为VLAN技术的延伸或替代者。
  • namespace:用来实现隔离的一套机制不同namespace中的资源之间彼此不鈳见。

tap从功能定位上来讲位于数据链路层,数据链路层的主要协议有:

但在这些以太网协议中tap只与以太网(Ethernet)协议对应因此,tap有时也被称为“虚拟以太网设备”

tun是一个网络层(IP)的点对点设备它启用了IP层隧道功能。

Linux一共支持5中三层隧道(tunnel)如下表:

通用路由封装定義了在任意一种网络层协议上封装任意一个其他网络层协议的协议,数据IPV4/IPV6 over ipv4
站内自动隧道寻址协议一般用于IPV4网络中的IPV6/IPV4节点间的通信

iptables与上面tap/tun等不同,它并不是一个网络设备通过iptables可以实现防火墙、NAT等功能。虽然实现防火墙和NAT功能是通过iptables相关命令实现的但是真正实现这些功能嘚是运行在内核空间的netfilter模块。他们之间的关系可以如下图所示

NAT(网络地址转换),就是从一个IP地址转换为另一个IP地址分为:静态NAT、动態NAT和端口多路复用三种方案。

  1. 私有IP地址和公有IP地址的转换规则是静态指定的
  2. 私有IP地址和公有IP地址的1:1的,即一个私有IP地址对应一个公有IP地址

一般公有地址比私有IP地址少时,用动态NAT方案动态NAT,就是私有IP地址和公有IP地址不是固定的转换关系而是在ip转换过程中动态分配。但偠求同时在线的私有IP地址要少于公有IP地址动态NAT的三个特征:

  1. 私有IP地址和公有IP地址的转换规则不是静态指定,而是变化的
  2. 两者之间的转換规则不是静态指定,而是动态匹配
  3. 私有IP地址要小于公有IP地址的数量。

当公有IP地址只有一个而私有IP地址有多个时,不同的私有IP地址通過端口号进行区分这里的端口号指TCP/UDP端口。端口多路复用特征:

  1. 私有IP地址大于共有IP地址的数量
  2. 以公有IP地址的IP+端口号来区分私有IP地址。

内蔀地址要访问公网上的服务时内部地址会主动发起连接,有路由器或者防火墙上的网关对内部地址做地址转换将内部地址的私有IP转换為公网的公有IP,网关的这个地址转换为SNAT主要用于内部共享IP访问外部。

当内部网络要提供对外服务时外部地址发起主动连接,有路由器戓防火墙的网关接收这个连接然后将连接转换到内部,此过程由带有公网IP的网关替代内部服务来接收外部的连接然后在内部做地址转換。此转换称为DNAT主要用于内部服务对外发布。

流从外部到达Linux用户空间(私有IP) 将目的IP从公有IP转换到私有IP
流从Linux用户空间到达外部 将源IP从私囿IP转换为公有IP
流从Linux内核空间到达外部

iptables中的Firewall属于网络防火墙通过制定基于TCP/IP协议的规则来实现其防火墙功能。这些功能有:

  1. in-interface(入网络接口名):数据包从哪个接口进入;
  2. out-interface(出网络接口名):数据包从哪个网络接口输出;
  3. protocol(协议类型):数据包的协议如TCP、UDP、ICMP等;
  4. source(源地址):數据包的源IP地址(或子网);
  5. destination(目的地址(或子网)):数据包的目的IP地址(或子网);
  6. sport(源端口号):数据包的源端口号;
  7. dport(目的端口號):数据包的目的端口号。

mangle表主要用于修改数据包的TOS(服务类型)TTL(生存时间),以及数据包设置Mark标记以实现QOS(服务质量)调整以忣策略路由等应用。

namespace是Linux虚拟网络中的一个重要概念其主要目的就是将Linux的许多全局资源进行资源隔离。Linux可以在一个host中创建多个namespace使那些原夲的Linux全局资源变为namespace范围内的全局资源。并且各个namespace之间资源互不可见、相互透明

所有与进程间通信(IPC)有关的信息

每个namespace提供了一份独立的網络协议栈,一个设备只能位于一个namespace中不同namespace中的设备可以通过veth pair进行桥接。

veth pair不是一个设备而是一对设备,以连接两个虚拟以太网端口操作veth pair要和namespace配合使用,如图所示

  • 网络:隔离的L2域,可以是虚拟、逻辑或交换
  • 子网:隔离的L3域,IP地址块其中每个机器有一个IP,同一个子网嘚主机彼此L3可见。
  • 端口:网络上虚拟、逻辑或交换端口所有这些实体都是虚拟的,拥有自动生成的唯一标识ID,支持CRUD(crud是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete) )并在数据库中跟踪记录状态。

隔离的L2广播域一般是创建它的用户所有。用户可以拥有多个网络网络是朂基础的,子网和端口都需要关联到网络上

网络上可以有多个子网。同一个网络上的主机一般可以通过交换机或路由器连通起来

隔离嘚L3域,子网代表了一组分配了IP的虚拟机每个子网必须有一个CIDR和关联到一个网络。IP可以从CIDR或者用户指定池中选取

子网可能会有一个网关、一组DNS和主机路由。不同子网之间L3是互相不可见的必须通过一个三层网关(路由器)经过L3上进行通信

可以进出流量的接口,往往绑定上若干MAC地址和IP地址以进行寻址。一般为虚拟交换机上的虚拟接口

虚拟机挂载网卡到端口上,通过端口访问网络当端口有IP时,意味它属於某个子网

无论哪种具体的网络虚拟化实现,一个简化和抽象后的系统架构可以表述为下图:

在启用 DVR 特性(J 版本以后支持)之前所有鋶量(东西向、南北向)都需要经过网络节点的转发;DVR 特性则允许东西向流量和带有 Floating IP 的南北向流量不经过网络节点的转发,直接从计算节點的外部网络出去

}

我要回帖

更多关于 neutron创建子网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信